10年勤めた航空自衛隊からSIerに異業種転職し、その後スタートアップ企業2社で開発業務を経験しました。
アイティエスエス(SIer)ではウォーターフォールでの開発を行い、プロジェクトによって異なりますが、基本設計〜結合テストまでの幅広い工程を経験しました。 主に Java を使った業務システム開発を行いました。
インテグリティ・ヘルスケアでは、9人目(エンジニアとしては3人目)の社員としてジョインし、漠然としたプロダクトの構想段階から様々な職種のメンバーで話し合い、仕様検討から開発・運用する経験しました。 またフルスタックな開発を行い、0からサービスを作り上げたり、AWSのインフラリプレースなどの経験をしました。 私が開発で使用した主な使用技術は、以下のとおりです。
コネヒトでは、一定規模に成長したプロダクトの継続的な改善や機能追加を経験しました。 また動画配信の立ち上げや TypeScript の導入を積極的にリードしてきました。 私が開発で使用した主な使用技術は、以下のとおりです。
キャディでは、図面活用ソフトウェア(B2B)の開発を行いました。 私が開発で使用した主な使用技術は、以下のとおりです。
CADDi DRAWER の新規機能開発と機能改善を行いました。 特に認証認可(認証は Auth0 を使用)周りを扱うことが多く、認可機能やユーザー管理機能の開発を行いました。
ママリの記事制作に使われているCMSをリプレースしました。 もともと CakePHP2 + Backbone.js で作られていたものを、CakePHP4 + React.js に置き換えています。
ママリアプリ内で商品の口コミを投稿できる、口コミ機能の開発・リリースを行いました。 (※2022/9現在、口コミ機能は諸事情により休止しています)
ママリ口コミ大賞の開発を行いました。
ママリ内で専門家に相談ができるスポンサードコンシェルジュをリニューアルするための仕様検討〜開発を行いました。
特定のユーザーにプレミアム機能を無料で長期間使えるプレミアムコード(佐賀県×ママリの妊娠・出産・育児支援などで使用)の仕様検討〜開発を行いました。 また関連会社(KDDI)との技術的な仕様調整なども行いました。
動画配信の仕組みを拡張して、ママリアプリ内で広告動画を配信するための実装を行いました。
ママリの継続的な改善を行いました。
動画配信を継続的に運用していくため、動画のアップロードや配信を設定するための管理画面を実装しました。
Apple, Google のリアルタイム課金通知の調査と実装を担当しました。 主に Apple の Server to Server Notification(現在は App Store Server Notifications に名前が変わったようです)部分を担当しました。
ママリのアプリ内で動画を配信するために、動画を配信するためのインフラ設計から実装まで行いました。 インフラ管理を楽にするために、AWSサービスを最大限活用しサーバーレスな構成にしました。
ママリ内で専門家に相談ができるスポンサードコンシェルジュの仕様検討〜開発を行いました。
ママリアプリの継続的な改善を行いました。
ママリの管理画面の改修をしました。(コネヒト入社時のオンボーディングの定番)
オムロンなどの通信機能付きの健康医療機器と連携した、オンライン保健指導向けプロダクト開発を行いました。
AWS で動かしていたインフラのリプレースを行いました。 既存のインフラは、一部 IaC 化されていますが、リリースにマニュアル作業が必要だったり、冪等性が担保できない IaC だったりと課題が多くありました。 それらを解消するため VPC ごと作り直し、RDS は AWS Database Migration Service を使ってデータ転送を行い、全てのリソースを入れ替える大規模なリプレースを行いました。 また、IAM の権限管理や Session Manager を使った SSH なしで管理されたのサーバー操作などのインフラ整備も行いました。
医療機関などで使われる問診機能が、複雑で機能追加が難しく、また別サービス内でも使いたいという要望があったため、アーキテクチャの変更と別サービスとして切り出す作業を行いました。
サントリーの保健指導向けにカスタマイズしたプロダクト開発を行いました。 (参考:社員の家族(後期高齢者)が利用できるオンライン診療システムを導入 2018年7月4日 ニュースリリース サントリー)
YaDoc Ver.2 をリリースし、継続的な改善を行いました。
既存の問診機能に追加して、オンライン診療(ビデオチャット)とモニタリング機能を追加し、UIなどを刷新した YaDoc Ver.2 のリリース準備を行いました。
WebRTC を使ったオンライン診療アプリ開発のプロトタイプ(Ruby on Rails, React Native)をエンジニア2名で実装・リリースしました。
※現在は「株式会社GrowEgg」に社名変更しています。
※航空自衛隊在籍期間中に個人で業務時間外に学習していました。
※航空自衛隊と提携しており業務の一部として学習していました。
業務ではフロントエンド JavaScript、バックエンドでは PHP, Ruby, Java の経験があります。 個人開発では TypeScript + Node.js をメインで使い、Deno や Rust などにも興味があります。 また、インフラは業務・個人開発ともに AWS を使った経験が多くあります。 サーバーレスなインフラ構成に興味関心があります。
Web技術のオープンさが好きです。 特にプライバシーサンドボックス について調べた時に感じました。 様々な人がオープンな場で意見交換をして仕様が決まっていくというのは、すごく理想的な世界だと感じました。
もちろん標準化プロセスも完璧ではないですが、 それでもどこかの一企業の意向で仕様が決まるより、長期的に見てよりよく続いてくものと信じています。
私は同じ作業を繰り返すことが苦手で嫌いです。 また後になってより手間がかかるようなことも嫌いなので、なるべく先に手を打ちたい性格です。 そのための手間であれば、基本的に惜しまずやるタイプです。 (いわゆるプログラマの三大美徳の一つ「怠惰(Laziness)」です)
わかりやすい例で言えば、ドキュメントはしっかり書く方だと思います。 他のエンジニアへの説明などはもちろん、将来的に自分が参照した時でも分かりやすく書くことで手間を省けるからです。 そのため Techpit 向けに教材を執筆したことがあるのですが、わかりやすいとの声を多くいただきました。
https://www.techpit.jp/courses/111 (2022-01-02時点)
手間を省くに通ずる部分もありますが、できることは仕組み化して、なるべく人手を介さずに自動化にします。 人のやる気に頼るのは悪手で、間違えるし続きにくいと思っています。 そのため、可能な限り手間を省いてやることに集中できるようにしています。
開発で CI や自動テスト、Lintツールなどを入れるのは、仕事・個人開発問わず基本的にやります。 それ以外でも、例えば以下のようなことを自動化しています。
Webエンジニアとしてプロダクトを開発することをメインとしてやっていますが、何のために作るのかを私は大事にしています。 特に社会に役立つプロダクトであることと、ユーザーの利益になることを考えて開発をしたいです。
私はまず動くものを作ってから、議論したり改善したりする開発が好きです。 というよりも考えすぎて手を動かさなくなる事もあるので、案ずるより産むが易しでまずは作ってみます。 そうすることで解像度も上がり、無駄に考えすぎていたことや考え漏れていたことが分かることも多いです。
技術的に難しい課題を解決するほうが私は面白いと感じてやる気が出ます。 これまでの仕事だと、動画配信を社内に誰も知見がない状況から自分で調査しまとめて、リリースまでメインで担当していたのは非常に面白かったです。 またWebRTCを使ったビデオチャット機能を実装したことも非常にチャレンジングで面白かったです。 そういった技術的な難しいことにチャレンジできる環境にいたいと思っています。