RyotaTsunoiの職務経歴書

RyotaTsunoiの職務経歴書

View project on GitHub

職務経歴書

基本情報

項目名 内容
名前 角井 亮太
生年月 1991 年 8 月
居住地 静岡県
資格 応用情報技術者, CertifiedScrumMaster®
更新日 2024/5/22

自分の強みが生きる業務

レガシーシステムのモダナイゼーション

私の強みは、事業の成長を支えるシステム基盤の構築を通じて企業のデジタルトランスフォーメーションを推進することです。

これまで、私は様々な規模のシステム開発に携わってきました。その中でも、特に力を入れてきたのがレガシーシステムの刷新です。例えば、30 年以上運用されてきた基幹システムの刷新プロジェクトでは、ドキュメント不足や複雑なロジックといった課題に直面しました。これらの課題を解決するために、現行システムの挙動を丁寧に調査し、ユーザー部門へのヒアリングを重ねることで、業務要件を明確化しました。

この経験を通じて、システム開発における課題の本質を見抜き、適切な解決策を提案する能力を身につけました。また、ユーザー部門とのコミュニケーションを重視することで、業務要件を正確に理解し、システムに反映させる力も養いました。

課題の明確化と要件定義をする上で、マイクロサービスアーキテクチャの採用とモダンな技術スタックの活用により、メンテナンス性と拡張性に優れたシステムを構築する手法を確立しました。この取り組みは、将来の変化にも柔軟に対応できるシステム基盤の土台となります。

企業の成長には、ビジネスの変化に迅速に対応できる柔軟なシステム基盤が不可欠です。私の持つスキルと経験を活かすことで、時代に適合した技術を取り入れ、ビジネスの発展を力強く支えるシステムを構築できると考えています。

フルスタック開発

私の強みは、システム全体を俯瞰しながら設計・開発を進められることです。

私は、フロントエンドからバックエンド、インフラまで幅広い領域の開発経験を積んできました。あるプロジェクトでは、技術選定から設計、開発、テスト、運用まで、プロダクト開発のあらゆるフェーズに関わりました。これらの経験を通じて、システム全体を見渡しながら、最適なアーキテクチャを設計し、開発を進める能力を身につけました。

フルスタック開発の経験は、特にリソースが限られたプロジェクトにおいて威力を発揮します。例えば、スタートアップ企業での開発では、スピード感を持って機能を実装し、市場に投入することが求められます。そのような状況下でも、私はフルスタック開発の知見を活かし、効率的かつ高品質なシステム開発を実現してきました。

また、フルスタック開発の経験から、ユーザー視点に立ったシステム設計の重要性を深く理解しています。ユーザーが抱える課題や要望を的確に捉え、それを技術的な観点から解決策を導き出す力を養ってきました。これにより、ユーザーに価値を届けるシステムの構築ができます。

事業の成長には、市場の変化に素早く適応し、ユーザーのニーズに応えるシステムが不可欠です。私のフルスタック開発の経験と、システム全体を俯瞰する視点を活かすことで、ビジネスの成功を支える柔軟かつ高品質なシステムを提供できると自負しています。

アジャイル開発とチームマネジメント

私の強みは、アジャイル開発のプロセスを通じて、チームのパフォーマンスを最大化することです。

私は、スクラムマスターとしての経験を通じて、アジャイル開発の本質を追求してきました。アジャイル開発では、変化に適応しながら、継続的に価値を提供していくことが重要です。そのためには、開発チームとビジネスサイドとの密接なコミュニケーションが欠かせません。私は、両者の橋渡し役となり、プロジェクトのゴールを共有しながら、チームを導いてきました。

また、アジャイル開発では、チームのパフォーマンスがプロジェクトの成否を左右します。私は、メンバー一人ひとりの強みを引き出し、チームとしての相乗効果を生み出すことに注力してきました。心理的安全性の高い環境を作ることで、メンバーが自発的に意見を出し合い、創意工夫を凝らせるチームを築くことができました。

さらに、アジャイル開発の経験は、不確実性の高いプロジェクトにおいても威力を発揮します。例えば、新規事業の立ち上げや、イノベーティブなプロダクト開発では、当初の計画通りに進まないことがしばしばあります。そのような状況下でも、私はアジャイルの考え方を適用し、仮説検証を繰り返しながら、プロジェクトを前進させてきました。

ビジネス環境が複雑化する中、アジャイル開発はより重要性を増しています。私のアジャイル開発の経験と、チームマネジメントのスキルを活かすことで、変化に強く、高い価値を生み出すチームを作ることができます。これにより、企業の成長と競争力強化に貢献できると期待しています。

自分の強みを発揮しやすい環境

変化を楽しみ、挑戦を後押しする組織文化

私は、変化を恐れず新しいことにチャレンジし、より良いものを生み出していくことに喜びを感じます。

そのため、過去の慣習にとらわれない柔軟な組織文化の中で働くことで、自分の強みを存分に発揮できると考えています。

失敗を恐れず挑戦し、そこから学びを得て成長していくことを大切にする環境が理想です。

技術の可能性を追求できる環境

私は、フルスタック開発の経験から、幅広い技術領域に興味を持つようになりました。

現場の課題に合わせて最適な技術を選択し、活用していくことにやりがいを感じます。

そのため、新しい技術トレンドを積極的に学び、それを実践に活かせる環境で働きたいと考えています。

また、技術選定の自由度が高く、現場の判断が尊重される風土のある職場だと、自分の力を十分に発揮できると考えています。

メンバーの多様性が尊重され、協力し合える職場

私は、アジャイル開発のリーダーを経験し、チームのコミュニケーションの重要性を実感してきました。

部門間の垣根が低く、様々な立場の人が建設的な議論を交わせる職場環境だと、自分のスキルを活かしつつ、チームのパフォーマンスを最大限に引き出せると考えています。

メンバー一人ひとりの個性や強みを尊重し合い、心理的安全性の高いチームを築いていける環境が理想です。

多様な視点から生まれるアイデアを大切にしながら、価値あるプロダクトを生み出していきたいと思います。

意欲・興味

保守・運用性に優れたシステム開発

私は、システムの保守・運用性を高めることに強い関心を持っています。

開発フェーズではともすれば機能の実装に注力しがちですが、システムの本当の価値は、リリース後の安定稼働と継続的な改善によって生まれると考えています。そのため、私は常に保守・運用フェーズを見据えたシステム設計を心がけています。

具体的には、モニタリングの仕組みを整備し、障害発生時には迅速に検知・対応できる体制を整えることに注力してきました。また、コードの品質を維持するために、わかりやすい命名やコメントの記述、適切な抽象化や分割することで、メンテナンス性の高いコードを書くことを心がけています。

さらに、システムの継続的な改善のために、定期的なリファクタリングを行うことも重要だと考えています。事業の成長に合わせて、システムを柔軟に進化させていくことが、競争力を維持する上で欠かせません。私は、リファクタリングを通じて、システムの保守・運用性を高め、将来の変更に備えてきました。

システムの価値を長期的に最大化するには、保守・運用性の確保が不可欠です。私の知見とスキルを活かすことで、長期的な視点に立ったシステム開発をして、ビジネスの成長を支える基盤を提供できるという思いを持って取り組んでいます。

ユーザー視点に立ったものづくり

技術的に優れたシステムを構築することは重要ですが、それだけでは不十分です。システムの真の目的は、ユーザーの問題を解決し、ユーザーに価値を提供することにあります。そのため、私は常にユーザーの視点に立ち、ユーザーが抱える課題や要望を深く理解することに努めています。

例えば、要件定義の段階では、ユーザー部門へのヒアリングを徹底的に行います。ユーザーの業務プロセスを詳細に把握し、システムに求められる機能や性能を明確化します。また、ユーザーインターフェースの設計では、ユーザーの使いやすさを追求します。ユーザーの行動パターンを分析し、直感的に操作できる設計を心がけています。

さらに、開発中も、ユーザーとの対話を重視しています。早い段階からプロトタイプを作成し、ユーザーに実際に触れてもらうことで、フィードバックを得ます。このフィードバックを基に、システムを改善することで、ユーザーの期待に応えるシステムを構築します。

事業の成功には、ユーザーに選ばれ、愛されるシステムが不可欠です。私のユーザー視点に立ったものづくりの姿勢と経験を活かすことで、ユーザーに真の価値を提供するシステムを開発し、ビジネスの発展に貢献できると信じています。

スキル

カテゴリ スキル 経験年数
プログラミング言語等 TypeScript 5 年 ~
  JavaScript 5 年 ~
  HTML/CSS 5 年 ~
  C# 5 年 ~
  SQL 5 年 ~
  Dart 3 年
  Golang 1 年
  ruby 1 年
  Swift 1 年
  Kotlin 1 年
フロントエンド React 5 年 ~
  Next.js 4 年
バックエンド Node.js 5 年 ~
  NestJS 3 年
  Koa 1 年
  Express.js 2 年
  .Net 5 年 ~
  Ruby on rails 1 年
モバイルアプリ Flutter 3 年
  SwiftUI 1 年
  Jetpack compose 1 年
クラウド AWS 2 年
  GCP 2 年
  Azure 3 年
  Firebase 2 年
  Supabase 1 年
データベース SQL Server -
  PostgreSQL -
  MySQL -
  Firestore -
インフラ・IaC Terraform 1 年
バージョン管理 Git 5 年 ~
  GitHub 5 年 ~
  Azure DevOps 3 年
通信プロトコル REST -
  GraphQL -
  gRPC -
テスト Jest -
  Mocha -
  Cypress -
  Selenium -
アーキテクチャ マイクロサービス -
  ドメイン駆動設計(DDD) -
  レイヤードアーキテクチャ -
方法論 アジャイル開発 -
  スクラム -
  ウォーターフォール -

※ 経験年数の記載が難しいものは、’-‘で表記しています。

プロジェクト経験

No.1 生命保険会社向け査定業務用ワークフローシステムの開発・運用

期間

2017/05 ~ 2024/03

チーム編成

  • プロダクトオーナー: 1 人
  • スクラムマスター: 1 人
  • エンジニア: 12 人

プロジェクトの背景と目的

元々査定で使っていたシステムは次の課題を抱えていました。

  • 査定の進捗状況や担当者が不明確で、業務の可視化が困難
  • 属人的で使いづらい UI により、査定スピードにばらつきが発生
  • 他システムとのデータ連携が手作業中心で、非効率な運用

これらの課題を解決し、査定業務の効率化と品質向上を目的としたシステム開発プロジェクトを立ち上げました。

担当業務と役割

  • 要件定義:ステークホルダーとの折衝を通じて、システムに求められる要件を明確化
  • 設計・開発:技術選定、アーキテクチャ設計、コーディングなどを主導
  • テスト:テスト計画の策定、テストケースの作成、品質管理のリード
  • 運用:ログやアラートの仕組み構築により、システムの安定稼働を実現

プロジェクトの途中では、スクラムマスターとしてアジャイル開発プロセスの定着を推進しました。 ビジネス部門やエンジニアチームとの交渉を通じて、スムーズなプロジェクト運営に貢献しました。

技術スタック

  • ワークフローエンジン:社内の方針により、指定のワークフローパッケージを採用
  • バックエンド:ワークフローエンジンと親和性の高い.Net を採用
  • フロントエンド:開発メンバーのスキルセットに合わせ、NextJS を採用
  • インフラ:社内で採用が認められているクラウドが Azure のみのため、Azure 上に構築

当初はワークフローパッケージ付属のノーコードツールで開発していましたが、パフォーマンスと UI の改善のため、一部をスクラッチ開発に切り替えました。

プロジェクトの課題と解決策

リリース直後は、ユーザーからの評価が低く、次のような課題が明らかになりました。

  • パフォーマンスの遅さ
  • UI の使いづらさ
  • 満たされていないユーザー要望

これらの課題に対し、次の施策を実施しました。

  • パフォーマンスと UI の改善:ノーコードツールで作成していた API や UI を、スクラッチ開発に切り替えました。
  • ユーザー要望への対応:ウォーターフォールからアジャイルに開発手法を変更し、ユーザーヒアリングの機会を増やしました。

プロジェクトの成果

  • ユーザー評価の向上:最初のユーザー評価が 4/10 点だったところを、リリース 1 年後に 7/10 点、2 年後には 8.5/10 点を達成しました。
  • API のパフォーマンス改善:外部 API や大量データ処理のレスポンスタイムを 15 秒から 5 秒に短縮しました。
  • デプロイ効率化:リリースサイクルを早め、ユーザーへの価値提供を早くするために、開発プロセスの見直しや自動化を実施し、リリースサイクルを月次から週次に高速化しました。

学びと成長

  • ユーザーとの対話の重要性:ユーザーの声に耳を傾け、要望を的確に捉えることの大切さを実感しました。
  • 開発効率化手法の習得:アジャイル開発、IaC など、生産性向上のための様々な手法を体得しました。
  • 今あるものに捉われない心 :”ノーコードツールだから仕方ない”ではなく、その制約の上でできる最大値は何か、を常に考えるようになりました。

No.2 効率的な Web ページの ScreenShot を提供するモバイルアプリ開発

期間

2021/03 ~ 現在

チーム編成

  • エンジニア: 2 人

プロジェクトの背景と目的

Web ページのスクリーンショット取得に関して、次のような課題を感じていました。

  • モバイル端末で、縦に長い Web ページ全体のスクリーンショットを取得する手段がない
  • Web ページの一部分だけをスクリーンショットとして保存するために、わざわざ”写真”アプリ等で編集する必要がある
  • スクリーンショットを”写真”フォルダに保存しても、その元となる Web ページの URL がわからない

これらの課題を解決するプロダクトを作ろうと考え、Enlarge 合同会社を立ち上げて初めてのプロダクト開発に取り組みました。

担当業務と役割

私は、要件定義から運用・保守、リリース後の継続的な改善まで、アプリ開発に関わる様々な工程を担当しました。アジャイル開発手法を採用し、開発したアプリを小さな単位で素早くリリースしては、ユーザーからのフィードバックをもとに改善を重ねていくサイクルを回していきました。

技術スタック

  • モバイルアプリ: 開発当初は Flutter で進めていましたが、パフォーマンスや機能面での課題が明らかになったため、Swift を用いたネイティブアプリの開発に切り替えました。
  • バックエンド: Firebase を活用することで、サーバーサイドの管理コストを最小限に抑えました。

プロジェクトの課題と解決策

  • Flutter では実現の難しい機能があったため、Swift への移行を決断:Flutter のみでは実装困難な機能があることを発見したため、Swift を用いたネイティブコードでの開発にシフトすることしました。
    また、スクリーンショット取得の速度を比較した結果、Swift 版の方が優れていたことも移行の決め手となりました。

  • メモリリーク問題によるアプリの安定性に課題:長い Web ページ全体のスクリーンショットを取得する際、Flutter 版ではメモリリークエラーが頻発しました。アプリの安定性を確保するためにも、この問題を解決する必要がありました。
    Native コードで同様の処理を実装した場合にもメモリリークが発生するか調査したところ、Swift を用いた実装ではメモリリークが起きないことが確認できました。そのため、Swift を用いたネイティブアプリの開発に移行することで、メモリ管理の問題を根本的に解消できました。

  • モバイル開発の知識不足により、アプリ公開の準備に苦戦:初めてのモバイル開発経験であったため、App Store へのアプリ公開に必要な知識が不足していたことが課題となりました。ガイドラインの理解と、必要な準備作業について、独学で知識を深める必要がありました。

プロジェクトの成果

  • Web ページのスクリーンショット取得における課題を解決し、自分たちも日常的に使いたくなるようなアプリを開発できました。
  • リリース直後の DAU(Daily Active Users)は 5 人程度でしたが、継続的な改善を重ねることで、10 倍、100 倍と順調に成長を遂げています。

学びと成長

このプロジェクトを通じて、次のような学びと成長を得ることができました。

  • クロスプラットフォーム開発とネイティブ開発の特性を理解し、プロジェクトに適した技術選定をする判断力が身についた
  • 性能や品質の課題に直面した際、柔軟に方針を転換し、最適な解決策を導く適応力が養われた
  • 未経験の分野では、自ら学習し、実践を通じて知識とスキルを高めていくことの大切さを学んだ

今後も、ユーザーの声に耳を傾け、より良いプロダクトを目指して開発を続けていきたいと考えています。

No.3 建設機器レンタル・修理会社向け基幹システム刷新

期間

2021/05 ~ 2022/12

チーム編成

  • 1 人

プロジェクトの背景と目的

建設機器レンタル・修理会社では、次のような課題を抱えていました。

  • 帳票を手作業で記述し、それをもとに基幹システムへデータを手作業で入力する非効率な業務フロー
  • 人によって異なる帳票の書き方を統一したいというニーズ

これらの課題を解決し、業務効率化と帳票記述ルールの標準化を目的としたシステム開発プロジェクトを立ち上げました。

担当業務と役割

私一人で対応した案件であったため、要件定義から設計、開発、テスト、運用まで、プロジェクトに必要な全ての工程を担当しました。 ウォーターフォール開発手法を採用し、各工程で成果物を作成してユーザーレビューを受けながら、次の工程に進めていきました。

技術スタック

モバイルアプリと Web アプリの両方を構築する必要があり、一人で両方に対応するのはコスト面で難しいと判断しました。 そこで、クロスプラットフォーム開発が可能な Flutter を採用し、モバイルと Web の同時開発を実現しました。 インフラ部分も極力作業を少なくするため、mBaaS である Firebase や一部 Supabase を活用しました。

プロジェクトの課題と解決策

  • 現行仕様の調査に難航:帳票の記述ルールや、基幹システムへのデータ登録タイミングなどがまとまっておらず、現状の整理から始める必要がありました。まずは業務を知るためのユーザーヒアリングから始め、それをドキュメント化しレビューを受ける、という工程を複数回実施しました。
  • ランニングコストの圧縮:顧客からは常にコストカットを求められたため、セキュリティ上必要な部分は確保しつつ、RDB を NoSQL に変更するなど、開発コストが多少増えてもランニングコストを下げる設計を心がけました。

プロジェクトの成果

システム刷新の結果、次のような成果が得られました。

  • 統一された帳票: 手書き帳票でなくなったために、誰が作っても同じ形の帳票になった
  • ランニングコストの削減:元々 5 万円/月程度かかっていた基幹システムのインフラコストを、1 万円/月程度に圧縮
  • データ入力業務の削減:手書きの帳票を読み込んでデータ入力する作業がなくなったため、2 時間/日程度の業務量を削減

学びと成長

このプロジェクトを通じて、次のような学びと成長を得ました。

  • 必要なコストと不必要なコストの見極めと、それをもとにしたユーザー交渉の重要性
  • 現行システムの分析とドキュメンテーションの手法を習得しました
  • NoSQL を活用したデータ設計

No.4 製造メーカー向けプラント業務システム開発

期間

2023/01 ~ 2024/01

チーム編成

  • プロダクトオーナー: 1 人
  • ビジネスマネージャー: 1 人
  • エンジニア: 5 人

プロジェクトの背景と目的

プラント製造会社では、次のような課題を抱えていました。

  • プラントの組み上げに必要な多数の部品の状況を一目で把握できるチケット管理システムが欲しい(JIRA のようなもの)
  • 社内だけでなく、外部の関連会社からも使えるシステムにしたい

これらの要望に応えるため、プラント業務に特化したチケット管理システムの開発プロジェクトを立ち上げました。

担当業務と役割

このプロジェクトではアジャイル開発手法を採用しており、私は設計、開発、テストなど、タスクをこなすために必要な作業を領域を問わずに担当しました。 フロントエンド、バックエンド、インフラ、要件定義、ヒアリングなど、幅広い領域で貢献しました。

技術スタック

スイッチングコストを下げる目的から、フロントエンド・バックエンドともに TypeScript を採用しました。 フロントエンドには NextJS、バックエンドには NestJS を主に使用しています。 インフラは GCP 上に構築し、IaC の実践として Terraform を用いてインフラのコード化を進めています。

プロジェクトの課題と解決策

プロジェクトを進める上で、次のような課題に直面しました。

  • 正解がわからない中での開発: 製造業用のチケット管理システムは前例が少なく、正解がわからない状態での開発となりました。ビジネスを行っているユーザーへの頻繁なヒアリングを通じて、ニーズを見出し、それを解決するためのシステム作りを繰り返しました。

  • パフォーマンスの問題:100 以上のテーブルを持つ複雑なデータ構成と、大量のデータを扱う必要があったため、パフォーマンスの劣化が課題となりました。Redis を用いたキャッシュ戦略を導入することで、パフォーマンスの向上を図りました。

プロジェクトの成果

システム開発の結果、次のような成果が得られました。

  • パフォーマンスの向上:データ量の増加に伴い、レスポンスタイムが 30 秒程度かかっていた API を、適切なキャッシュ戦略を用いることで 3 秒程度まで短縮
  • 管理業務の削減: 今までの管理システムと比べ、管理目的の業務(データ入力や分析)が 50%ほど削減(*利用ユーザーの業務分析より)

学びと成長

このプロジェクトを通じて、次のような学びと成長を得ました。

  • ユーザーヒアリングの重要性:正解のない開発において、ユーザーとの対話を通じてニーズを汲み取ることの大切さを学びました。
  • キャッシュの必要性:大量のデータを扱うシステムにおけるキャッシュの重要性と、適切なキャッシュ戦略の設計スキルを身につけました。

自己 PR

私の強みは、技術力とコミュニケーション能力を活かして、チームとともに高品質なプロダクトを開発することです。 フルスタック開発の経験から、システム全体を俯瞰しながら、ユーザーにとって価値あるソリューションを提供することを常に心がけています。 特に、レガシーシステムのモダナイゼーションやアジャイル開発の経験から、変化に柔軟に適応し継続的な改善を通じて、ビジネスの成長に貢献できると自負しています。

また、私はユーザー視点でのものづくりに情熱を注いでいます。 ユーザーの課題を深く理解し、それを解決することにやりがいを感じます。 要件定義の段階から、ユーザー部門との密なコミュニケーションを通じて、真のニーズを引き出し、それをシステムに反映させることを大切にしています。

さらに、私はチームワークを重視しています。 アジャイル開発のスクラムマスターとしての経験から、チームメンバーの強みを引き出し、心理的安全性の高い環境を作ることで、チームのパフォーマンスを最大化できると信じています。 技術的な議論だけでなく、メンバーの思いに寄り添い、ともに成長していける関係を築くことを大切にしています。

技術の進歩とビジネス環境の変化が速い IT 業界において、私は常に学び続け、新しい価値を生み出していきたいと考えています。 貴社の理念とビジョンに共感し、私の技術力とチーム構築力を存分に発揮することで、ビジネスの発展に貢献していきたいと思います。