History
技術スタック
メインでバックエンドサーバ開発、必要に応じてインフラやフロントエンドの業務を行ってきた。
- Go
- TypeScript
- PostgreSQL
- Docker
- GitHub Actions
- OpenAPI
- AWS
- Terraform
職務経歴詳細
会社ごとに、参加したプロジェクトを列挙する。
株式会社スタメン
| 項目 | 内容 |
|---|---|
| 概要 | セキュリティSaaSの開発 |
| 使用技術 | TypeScript, NestJS, React, GitHub Actions, AWS(ECS, Athena, S3…) |
| 期間 | 2026-02 ~ 現在 |
| チーム人数 | 5名 |
| 担当比率 | Backend 80% / Infra 20% |
状況
拡大フェーズのセキュリティSaaSに参画し、バックエンド中心に拡大対応の整備を担当した。
課題
少人数チームで開発されてきたなかで規模が拡大し、トラフィックに対応する必要やより安全性を高めつつ開発速度を上げていく必要があった。
行動と成果
機能開発に加えて、開発基盤と品質の改善に取り組んだ。
- 数百万/日のメッセージをさばく非同期処理サーバの処理を最適化し、1台あたりのスループットを倍にした。ピーク時間帯の必要台数を半分にした
- テスト時間を94%削減(11分->40秒)
- ボトルネックを特定し、並行実行でマシンの全CPUを活用できるようにした
- 開発者1人あたり月約20時間の待ち時間を削減
- 高速化と同時に、フレーキー率0%
- ビルド時間を80%削減(10分->2分)
- CIでのDockerキャッシュの最適化とイメージサイズの削減で高速化した
- チームで月約14時間(17時間->3時間)の待ち時間を削減
- 安全に並列処理するための根本改修、DBエラーの複数の根本解決と再発防止
- データベースのリファクタリング
- フィールドやテーブルについて、安全に変更/削除した
- マイグレーションフローの整備とガードレール整備
株式会社リアルグローブ
| 項目 | 内容 |
|---|---|
| 概要 | 政府向け地図SaaSの開発 |
| 使用技術 | Go, React, GitHub Actions, AWS(Lambda, CloudFront, Aurora…) |
| 期間 | 2024-09 ~ 2026-01 |
| チーム人数 | フルスタック2名 |
| 担当比率 | Backend 70% / Frontend 20% / Infra 10% |
状況
リリース直後フェーズの地図SaaSに参画し、バックエンド中心に新機能開発、変更対応、リファクタリングを担当した。
課題
顧客要件の変更に伴い、API/DB/UIを横断する権限構造の抜本的改修が必要となった。稼働中サービスへの影響を最小化しつつ、将来の要件変更にも対応できる設計が求められた。
- 行動
- 「ユースケース確認 → 設計 → 作業フロー設計 → 実装」のプロセスを徹底し、各段階でドキュメンテーションとレビューを実施した。
- 設計前に複雑な既存仕様の把握と整理のため、テスト強化・リファクタリングを先行実施した。
- 変更前にガードレール(Linter強化、CIでの自動検証)を整備し、大規模変更を安全に行える状態を構築した。
- 成果
- 仕様理解の齟齬や設計ミスによる手戻りをほぼゼロに抑制した。
- 稼働中サービスに影響を与えず、期限内に仕様変更を完了した。
- 将来的な人的ミスの防止に寄与する仕組みを整備した。
| 項目 | 内容 |
|---|---|
| 概要 | 自治体向け3D GIS1の新規開発 |
| 使用技術 | Go, Linux/Windows, PostgreSQL, Apache, GitHub Actions |
| 期間 | 2022-12 ~ 2024-09 |
| チーム人数 | Backend 1名 / 3D Frontend 5名(社外) |
| 担当比率 | Backend 100% |
状況
測量会社を通じて自治体へ提供する3D GISの新規開発にて、バックエンド全般を単独で担当した。
- 課題
- 短期間でGIS関連知識をキャッチアップしつつ設計を行う必要があった。
- 異なる専門領域を持つ複数の他社チームと合意形成しながら開発する必要があった。
- 複数OS・複数DB対応が求められた。
- 行動
- 書籍や他社の専門家からの属人知識を積極的に吸収し、GIS領域を短期間で習得した。
- 必要に応じて事業責任者/別チームの開発者と小規模で頻度の高い会議を設定した。 OpenAPI を用いたスキーマ駆動開発を推進し、仕様策定を円滑化した。
- DB・OSを交換可能なアーキテクチャとし、CIを設定し、各組み合わせの検証を自動化した。
- 成果
- ユースケースレベルで他チームと議論できる共通言語を獲得し、合意形成を高速化した。
- 異なる会社間のチームにおいて、細やかな情報共有によって認識の齟齬を少なく抑えた。
- 開発段階でOS/DB差異による問題を早期に検出し、安定した品質で提供した。
株式会社資格スクエア / 株式会社サイトビジット
⚠ 会社分割による移籍であり、業務内容は継続。
| 項目 | 内容 |
|---|---|
| 概要 | 難関資格向けオンライン学習サービスの開発 |
| 使用技術 | Ruby on Rails, ECS, EC2, GitHub Actions |
| 期間 | 2020-10 ~ 2022-08 |
| チーム人数 | フルスタック5名 |
| 担当比率 | Backend 50% / Frontend 20% / Infra 30% |
状況
複数年運用されたサービスにて、新機能開発、UI刷新、リファクタリング、インフラ改修を担当した。
課題
長期的な技術的負債や未整備の開発環境がボトルネックとなり、開発速度・品質の改善が必須だった。
- 行動
- 開発競争力向上のため基盤刷新を主導した。
- 開発環境を Docker 化し、環境差異を解消した。
- EC2 で稼働していた本番サービスを、ダウンタイムゼロで ECS へ移行した。
- コンテナ化に関連して、CI/CD・ログ基盤まで刷新した。
- 「テスト部長」としてコード品質改善を推進した。
- カバレッジを 78% → 90% に向上した。
- カバレッジ変動の自動通知、頻繁なテスト追加、ハンズオンを開催してテスト文化を定着した。
- 本番環境を使ったコール回数抽出の仕組みを導入し、数年分のレガシーコードを安全に削除した。
- 開発競争力向上のため基盤刷新を主導した。
- 成果
- コンテナ化により環境差異がなくなり、開発段階での検知率が向上した。 運用コスト削減と安全性向上を実現した。
- テスト文化が浸透し、PR には必ずテストが含まれる状態を実現した。 可読性と保守性が大幅に改善した。
- 大量の不要コード削除により認知負荷と将来のリスクを削減した。
展望
キャリアをどう考えているか
領域とキャリアの2つの軸で示す。
領域: バックエンド + SRE
ビジネスの根幹を支えるバックエンド領域に専門性を持つ。そのうえで、信頼性や性能の観点からアーキテクチャ設計や技術選定をリードしたい。課題解決のため、必要に応じてインフラ等も担当する。
キャリア: シニアエンジニア、スタッフエンジニア
マネジメントではなく、技術の専門職として影響範囲を広げていく道を考えている。具体的な技術的課題について考えることが、自身の根源的なモチベーションだからである。
目指す姿は2つの要素で構成される。
大きな範囲の責任を持てるレベルの技術力
プロダクトや事業を熟知し、長期的かつ広い視点で技術選定やアーキテクチャ設計できる。コードの品質を高く保てる。これらによってプロダクトに強い競争力をもたせられる。
チームを越えて貢献できる
開発プロセスや開発基盤の改善、メンバーの技術的な成長の支援によって、チームや組織全体のアウトプットを向上させられる。
会社選びの軸は何か
上から順にたどって選ぶ。
ポスト
バックエンド開発のなかでも、熱意と経験のある3つの領域でビジネスに貢献したいと考えている。この3つをミッションとして担えるポストを希望している。それぞれの領域には、次のように取り組む。
信頼性(Reliability)
根本原因まで把握し、再発をテストやビルド、アラートなどの仕組みで防ぐ。
性能(Performance)
まず計測する。大きな効果が出る箇所を特定し、優先順位をつけて取り組む。
可観測性(Observability)
推測ではなくデータで判断する。そのために、システム内部とビジネスの状態を見えるようにする。
会社
会社が競争力の源泉としてテクノロジーを上位に置いているかを、もっとも重視する。そうした会社では、テクノロジーの重視が評価や制度に表れ、その結果として優れた開発者が集まっていると考えている。
MUST評価: 売上やコストに金額換算できない成果も、別の指標として示せれば正当に評価されるSHOULD制度: 書籍やカンファレンス参加の支援、開発環境への投資などの福利厚生があるSHOULD人: 技術ブログでの発信、OSSへの貢献、カンファレンスでの登壇が活発で、ナレッジを共有する文化がある
パフォーマンスを最大化できる労働環境
仕事の品質を高めるために、希望している労働環境。
SHOULDマシンに直接Linuxをインストールして開発できること(仮想マシンではなく)。設定やキーバインドがすべてLinuxベースのため。今までの業務ではすべてLinuxマシンで開発していたSHOULD週1~2回の出社頻度であること。集中しやすい静かな環境での作業と、チームとの対面コミュニケーションのバランスを取るため
OSS活動
- MELPA, Rubygems, npm, Go Packagesでのソフトウェア公開
- 各種OSSへのコントリビュート
プライベート年表
趣味的なものを含む年表。
2025年
- 自作RPG ruinsの機能追加した
- 戦闘システムを追加した
- トレーディングカード風画像ジェネレーターtcgを作成した
- na2meを拡張した
- タグを機械的に追加する機能を追加した
- 画像を共通のサイズへ切り出し・フィルタ処理をかけられるようにした。背景画像の準備を楽にした
- 夏目漱石以外のほかの本も追加した
- しおり機能を追加した。ファイル/ローカルストレージによって永続化する
- 長期休暇を取り1ヶ月アメリカを旅した
- ロサンゼルス → ラスベガス → サンフランシスコ → シカゴ → ナイアガラ(アメリカ) → ナイアガラ(カナダ) → ニューヨーク
- ブラウザで動くバイナリビューワbviewを作成した
- 静的サイトジェネレータ型RSSビューワplanetizerを作成した
2024年
2023年
- GitHub Actionsライクなシンタックスで書けるタスクランナーgorunを作成した
- CLIでパズルゲームの倉庫番を楽しめるsokobanをスクラッチで作成した
- OpenAPIバリデーションツールoavを作成した
- ミニマルなCPUエミュレータminicpuを作成した。本を参考に、Goで書き直した
- nand2tetrisのアセンブラをGoで書いた
- 高速な通知ビューワgarbanzoを作成した
- 手作りのWebサーバgsrvを作成した
- 環境構築スクリプトをGoで書き直して、共通部分をライブラリ化した(silver)
- Gitタグを元にファイルに記載されたバージョンを書き換えるコマンドラインツールcarveを作成した
- Goのアセンブリコードを出力するorg-babel拡張ob-go-asmを作成した
- tinyfilemanagerにファイルアップロードするコマンドラインツールuplを作成した
- ブラウザでのアップロードが制限されている特殊環境で、Tiny File ManagerがAPIリクエスト非対応だったため作成した…
2022年
- このサイトの開発環境・自動テスト・デプロイをDockerコンテナで行うようにした(ビルドがEmacs, Ruby, Python, sqliteに依存する)。本番環境のGitHub Pagesへの展開と、ステージング用のHerokuへのコンテナデプロイ
- リポジトリの更新されていないファイルをコメントするGitHub Actions、 StaleFileを作成した。GitHub Marketplaceで公開した
- パーマリンクからコードを展開するEmacs拡張ob-git-permalinkを作成してMelpaに投稿し、マージされた。
- ローグライクdigger_rsの作成(WIP)
- 自分用にカスタマイズしたUbuntuのisoイメージを作成した。USBに焼いて、すぐ自分用のクリーンな環境のマシンを作れるようになった
- 設定ファイルからgit管理してgit cloneを行えるgcloneを作成した
- GitHubの活動統計をとるactを作成した
- actを使ってリポジトリに情報を蓄積するcentralを作成した
- GitHubの言語の色に基づいたSVGバッジを生成するmaruを作成した
- ライフゲームwebアプリgolifeを作成した
- GitHubのコードレビュー返信ツールgarを作成した
- Emacsの設定ファイルを文書化した
2021年
- Reactを学ぶためにカンバンアプリkanbanyを作成した。
- Slackの絵文字カウンターをGoogle App Scriptで作成した。kijimad/slack-emoji-counter
- Emacsパッケージcurrent-word-highlightを作成した。パッケージ管理システムリポジトリMelpaに投稿し、マージされた。(file: KDOC 354: ワード移動を可視化するパッケージを作る)
- Chrome拡張CreateLinkの、Emacsバージョンcreate-linkを作成した。Melpaに投稿し、マージされた。
- TextLintの、orgファイルに対応させる拡張textlint-plugin-orgを作成、npmで公開した。TextLintのREADMEにリンクを掲載した。
- Rubyでローグライクを作成した(未完)。kijimad/digger
- EmacsのプロンプトテーマのPRがマージされた。https://github.com/xuchunyang/eshell-git-prompt/pull/10
- Emacsの簡易ポータブル英和辞書を作成した。https://github.com/kijimad/ej-dict
- projectileのバグを修正するPRがマージされた。https://github.com/bbatsov/projectile/pull/1700
- projectileの機能追加のPRがマージされた。https://github.com/bbatsov/projectile/pull/1702
- projectileのバグ修正のPRがマージされた。https://github.com/bbatsov/projectile/pull/1713
- その他誤字、broken linkの修正などでcontributeした。
- GemfileをエクスポートするgemをRubyGemsで公開した。 https://github.com/kijimad/gemat
2020年
- 本のコードをベースに拡張し、Rubyでシューティングゲームを作った。 https://github.com/kijimad/ban-ban-don
- 鹿児島大学を卒業し、就職のため東京に引っ越した。
- フルタイムでプログラマーとして働きはじめた。少人数のチームだったため様々なことを行う必要があった。 Rails JavaScript React MySQL GAS RSpec Circle CI など。
- 初のOSSコントリビュートを行った。YouTube Analytics APIのドキュメントのリンクを修正するPRだった。 https://github.com/googleapis/google-api-ruby-client/pull/1649
2019年
- PHP Laravelで初めてのwebアプリを作った。本の買取で使用するために必要だった。
- DokuWikiのテーマを自作し、DokuWiki公式ページに公開した。https://github.com/kijimad/bs4simple
- 練習でWordPressのテーマを作成した。https://github.com/kijimad/wp_theme1
2018年
- 村上龍にハマり、彼のすべての小説、エッセイを読んだ。
2017年
- WordPressでサイトを運営していた。
2016年
- 鹿児島大学(法文学部/経済情報学科)に入学した。
- 北京の清華大学に語学留学した(半年間)。
2015年
- Linuxに出会い、メインOSとして使いはじめた(以後ずっと)。
- Emacsと出会い、学びはじめた。(きっかけは図書館にあったPerlの本で推していたこと)
Footnotes:
地理情報システム(Geographic Information System)。 地図を表示し、その上に付加的な情報を表示したり編集したりできるアプリケーション。Google Maps など。