Work

M&A事業部社内システム

M&A事業部の業務効率化を目的とした社内システムの自社開発に携わりました。業務で使用するさまざまな書類の作成機能や営業メールの自動送信機能、案件の企業にマッチした企業の検索機能などを実現しています。フロントエンドはTypeScriptとNext.jsを使用し、UIライブラリにはMUIを採用しました。バックエンドはRuby on RailsでGraphQL APIを実装し、フロントエンドからはApollo Clientを用いてデータを取得する構成です。データベースにはPostgreSQLを採用してGoogle Cloud上で運用し、BigQueryによる分析基盤も構築しました。プロジェクト開始当初は要件が曖昧で、M&Aに関する業務知識や専門用語への理解も不足していたため、営業担当者へのヒアリングを重ねて要望の本質を抽出し、仕様を具体化したうえで画面設計やAPI設計に反映しました。書類作成機能では入力フォームの操作性の向上に注力し、営業メールの自動送信機能では、ターゲット企業の条件に基づいてピンポイントでマッチングできる検索・通知ロジックを設計・実装しました。開発はアジャイル手法で進め、要件定義から画面設計、API開発、RSpecによるテストまで一貫して担当しました。導入後は書類作成や営業メール送信にかかる時間が大幅に短縮され、ユーザーからも「すごく時間が短縮された」という評価をいただきました。

Role
Front-end, Back-end

Language
TypeScript, Ruby

Framework
Next.js, Ruby on Rails

library & Tool
MUI, GraphQL, Apollo Client, Codegen, RSpec, GitHub Actions, Docker, PostgreSQL, Google Cloud, Heroku, BigQuery, Cube, Kintone, Claude Code, Slack

Developer
エンジニア4名

社内汎用APIバッチサーバー

社内の複数システムから利用される汎用APIとバッチ処理基盤の開発に携わりました。言語はRuby、フレームワークはRuby on Railsを使用し、データベースにはPostgreSQLを採用しています。主な機能として、Kintoneのデータを活用したSlack通知の定期実行機能や、求職者からのお問い合わせをSlack経由で受け取り、LLMを用いて自動で応答・分類する機能の開発を主導しました。特にLLMによる問い合わせの自動処理では、オペレーターの作業負荷を大幅に軽減し、1日あたり3〜4時間の業務時間の創出を実現しました。また、Google CloudのBigQueryと連携した大量データの分析処理も実装しています。このリポジトリは社内のお手本となる位置づけであったため、設計やファイル分割、メソッドの命名といったコード品質の維持を特に重視しました。アジャイル開発のスプリントサイクルの中で、継続的なコードレビューと設計の見直しやリファクタリングを行い、品質と開発スピードの両立を図りました。その結果、バグの発生率や運用コストの削減につながり、他プロジェクトへ技術を展開する基盤にもなりました。担当工程はAPI設計から実装、テスト、運用保守まで一貫して担当し、ドキュメントの整備などを通して後続メンバーのスムーズなキャッチアップも支援しました。

Role
Back-end

Language
Ruby

Framework
Ruby on Rails

library & Tool
RSpec, GitHub Actions, Docker, PostgreSQL, Google Cloud, Heroku, BigQuery, Slack API, Kintone, Claude Code, Slack

Developer
エンジニア4名

公式LINEチャットシステム

求職者とのやり取りに使用している公式LINEチャットシステムの運用改善と機能追加に携わりました。フロントエンドはTypeScriptとNext.js、UIライブラリにはMUIを使用し、バックエンドはRuby on Railsで構築されたシステムを、Heroku上で運用しています。既存のシステムは古く知見を持つメンバーが少ないうえ、担当者が固定されていない体制であったため、基本的にはエンジニア1名で要件定義から設計、実装、テスト、運用保守まで一貫して担当しました。主な機能開発として、営業職が対象の求職者を容易に特定できるユーザーの絞り込み機能や、職業別のシナリオを追加し、営業担当がメッセージのやり取りをせずに面談日程の調整まで完了できる自動化の仕組みを構築しました。また、Slack通知機能を導入して問い合わせの漏れや対応の遅れを防止しました。ユーザーの条件が複雑で、営業職からの問い合わせに対する調査の工数が多いことも課題であったため、仕様を段階的にドキュメント化し、システムの理解促進とナレッジの共有を進めました。あわせて定期的なリファクタリングによりコードの可読性と保守性を向上させ、担当者が変わっても継続的に改善できる状態づくりに貢献しました。

Role
Front-end, Back-end

Language
TypeScript, Ruby

Framework
Next.js, Ruby on Rails

library & Tool
MUI, GitHub Actions, Docker, PostgreSQL, Google Cloud, Heroku, LINE Messaging API, Kintone, Claude Code, Slack

Developer
エンジニア1名、担当者が固定なし

Kintoneカスタマイズ

営業職向けの基幹システムとして長年利用されているKintoneのカスタマイズに携わりました。業務の効率化と利便性の向上を目的に、TypeScriptとReactを用いてKintone上のUIや機能のカスタマイズを継続的に行っています。UIコンポーネントにはMUIを採用し、コードベースはTurborepoによるモノレポで管理、ビルドにはViteを使用しました。また、Vitestによるユニットテストの実装や、Sentryを活用したエラーモニタリング体制の構築も行いました。主な機能として、レコードの保存時に条件に一致した場合にSlackへ通知を送る機能を設計・実装しました。通知のトリガーやメッセージ内容は業務の優先度や緊急度に応じて柔軟に変更できる設計とし、営業職や企画職の作業漏れの解消につなげました。チームでは複数のメンバーが同じカスタマイズ箇所を同時に改修してしまう作業のバッティングが頻発していたため、作業対象の箇所をメンバー間で共有する運用ルールを取り入れ、品質トラブルの減少と開発効率の向上に貢献しました。開発はアジャイル手法による週次のスプリントで進め、要件定義から設計、実装、テスト、運用保守まで一貫して担当し、ユーザーからのフィードバックを反映しながら段階的に改善を重ねました。

Role
Front-end

Language
TypeScript

Framework
React

library & Tool
MUI, Turborepo, Vite, Vitest, GitHub, BigQuery, Sentry, Slack API, Claude Code, Slack

Developer
エンジニア4名

自治体防災システム

自治体向けの防災システムの研究開発に携わりました。フロントエンドはTypeScriptとVueを使用し、バックエンドはKotlinとSpring Bootで構築しています。フロントエンドでは、地図上にさまざまな情報を表示する必要があるため、Leafletなどのマップライブラリや、Turfといった空間分析ライブラリを積極的に活用しました。バックエンド開発では、初めてKotlin言語を使用し、主にWeb APIの作成よりもバッチ処理の作成・改修に注力しました。研究開発プロジェクトの特性上、実装後にユーザーからのフィードバックを受けて機能改善を行うサイクルが多く、新規開発よりも既存機能の改修が多かったと感じています。さらに、一部の既存バッチがTypeScriptで書かれていたため、これまでのTypeScriptの経験も活かすことができました。開発プロセスでは、メンバー同士でコードレビューをする体制をとっており、またコードの実装だけでなく、設計書の作成からユニットテストの実施まで、一連の開発工程を一貫して担当しました。

Role
Front-end, Back-end

Language
TypeScript, Kotlin

Framework
Vue, Spring Boot

library & Tool
Vuetify, Pinia, Leaflet, Turf, DOMA2, Bitbucket, SourceTree, Docker, MySQL, Postman, Backlog

Developer
エンジニア5名

某銀行⼈事システム

某銀行の社内人事システムの開発に携わりました。機能ごとにチームが分かれており、全6チームに分かれて開発を行ないました。私は主に帳票に関する画⾯とAPIの開発を⾏ないました。フロントエンドの言語はTypeScriptでフレームワークはNuxt(Vue)、バックエンドもフロントエンドと同じTypeScript言語でフレームワークはNestJSを用いた開発でした。担当行程は設計書作成から実装、Jestによるユニットテストまで担当しました。このプロジェクトでは、設計書と実装コードについて、開発者同士の相互レビューを行った後、チームリーダーによる最終レビューが行われるという開発体制を取っておりました。帳票に関連する画面とAPIの開発では、共通化できる処理を設計段階で見極め、担当者間での重複作業を避けるための調整を行いました。これにより、効率的かつ高品質なシステムの実現に貢献しました。

Role
Front-end, Back-end

Language
TypeScript

Framework
Vue, Nuxt, NestJS

library & Tool
Element Plus, TypeORM, Jest, GitLab, SourceTree, WSL2, Docker, Rancher Desktop, PostgreSQL, Postman, trac

Developer
エンジニア30名

マンションDXシステム

マンションのDX化を目指したシステムのフロントエンド開発に携わりました。このシステムは主にマンション管理者と利用者(マンションに立ち入る業者)が使用するものです。フロントエンド開発では、管理者と利用者のニーズを精査し、画面設計を行いました。主な技術スタックにはチーム内から指定があり、TypeScriptとReactを採用し、スタイリングにはTailwind CSSを使用しました。プロジェクトに参画した時点では、API開発がまだ進んでいなかったため、手元にデータを用意し、仮のデータを使って開発を進めました。ライブラリの選定においては、フロントエンドの専門家がチーム内に不在だったため、情報が豊富で信頼性の高いライブラリを選定することとし、ルーティングにはReact Routerを、状態管理にはReduxを採用しました。このプロジェクトでは、設計書を作成せず、実際の画面を通してフィードバックを得ながら改善を行うアプローチを取りました。この方法により、ユーザーの期待に沿った直感的で使いやすいシステムの実現に貢献しました。

Role
Front-end

Language
TypeScript

Framework
React

library & Tool
Tailwind CSS, React Router, Redux, Vite, GitHub, Redmine

Developer
リーダー1名、フロントエンド1名、バックエンド1名、組み込みエンジニア1名

Thank you for visiting my portfolio site.
If you're interested, reach out anytime.

Contact

© 2025 Kume Yuta