結婚 | ||
付き合って | ||
社会人 | ||
現職勤続 | ||
父親歴 |
※2022年4月18日現在
昨今の社会情勢もあり原則リモートワーク。18時以降は基本的に父親業優先。
2015 年 9 月より。
テックリードやスクラムマスター等を経験しつつ、 1 年間のマネージャ経験を経て、 2022 年度より再び開発メンバーとなり、 Java や Kotlin と戯れる日々。
プロダクトやサービス等の開発を通じて最高のリターンを最短で得るために、自分の技術力を投資することに価値を見出す。
ソフトウェアエンジニアの中心的な価値は、実際に動く・使えるモノを、誰の手も借りず許可も得ずに作れてしまうことだと考えており、 それを武器として刃を常に研ぎ澄ませつつ、他の専門家達とも対等に意見を戦わせながら、より良いリターンを求めていきたい。
特定の技術分野に拘りはなく、必要とされているが足りていない、という部分を補っていくスタンス。 拘りはないといっても、常に What に対する最高の How を求めており、 また、これまでの経歴から主にサーバーサイドやインフラなどバックエンドに強みは感じている。
個人的な指向としては、複雑な現実世界を何如にシンプルにモデリングしコードに落とし込めるか、ということを考えるのが楽しいのと、 読む人間に優しいイミュータブルで簡潔な実装を好む。 その文脈で、オブジェクト指向や DDD 、クリーンアーキテクチャのような話題にも関心がある。
また、個人ではなくチームで最良の成果を引き出せることがエンジニアとして求められることだと考えているため、 チーミングや開発プロセスといった人間的な部分にも興味がある。 これまでには、 Nexus を用いた複数チームにおけるスクラムマスターを担ったり、 Liberating Structures 等を参考にしたリモート環境下での課題設定を行う等の実践もしている。
シニア的な立場になってきたころ、全員の「よいコード」の認識を揃えるべく、 CODE COMPLETE を題材にした勉強会を行なった。そのときの資料は今でも指針として利用されている。
2020 年に、 〈完全なプログラミング〉を目指す会 2020 と題し、過去資料を リファインした上で公開 した。
各時点のサムネイルを選んでシークするという機能を、バックエンドからフロントエンドまで全て一人で対応した。
FFmpeg のシーンチェンジ検出結果を保存、配信し、それをネイティブクライアントが利用してシークする、というもの。
ネイティブ開発は初めてだったが、3ヶ月程で Android, iOS ともに対応することが出来た。
ひとつの機能をバックエンドからフロントエンドまで一気通貫で全て独力で実装する という貴重な経験だった。
S3 にファイルを直接アップロードすることによる負荷軽減や、 imgix と連携した画像配信、複数ファイルの非同期並列アップロード対応などのエンハンスを行った。
素の JS のままでは並列的な処理を書くのがしんどかったため、 React でリライトした。
それまで単一ファイルのみ受け付けていたものを複数対応させるには Rails モデルのリアーキテクトも必要だった。無停止で機能をリリースするため、事前に用意した新たなデータ構造に徐々に移行するという段取りを立て、実行を主導した。
Keen IO がそれまで提供していた BigQuery 連携機能を停止してしまったため(ベータとして提供されていたので仕方ない)、急遽対応したもの。
Keen が S3 にローデータを配置するのをトリガーとして Lambda を起動、 BigQuery にデータを連携する、というもの。 node-lambda を用いて実装した。
突発対応で急拵えだったが特に問題なく稼動し、ことなきを得た。
自分の中の技術の引き出しを増やすいい経験だった。
3ヶ月で開発を完了させなければならず、極力無駄を省くために、 Grape::Entity と grape-swagger を採用し、実装と同時に API 定義を生成し、クライアント側はその定義を元にライブラリを自動生成して実装を進める、というアプローチで開発を進めた。
結果として上手くいき、無事に期間内にサービスインすることが出来た。
Open API を活用する好事例だった。
.work
ドメインが安売りされていて yagni.work というドメインを安く取れたので、
屋号を YAGNI ワークとした。※2020年1月時点
名称 | 業務経験 | レベル感 |
---|---|---|
Ruby | 5年 | RoR アプリを一人で開発出来るし、指導もできる |
JavaScript | 2年 | React で基本的な実装や Lambda で Node.js の適当な機能は作れる |
Objective-C | 3年 | 実践的な実装スキルはあるが、プラットフォーム自体の知識はそこそこで、モダンなライブラリを豊富に使った開発経験も無い |
Swift | 3年 | 同上 |
Kotlin | 2年 | Android に関しては同上。サーバーサイドに関しては Spring Boot でそこそこ出来るはず |
Java | 2年 | Lambda や Stream を使ってテストも書きつつ一人で Spring Boot 開発出来る |
Scala | 2年 | Play! で基本的には一人で開発出来る。Scalazとかは怪しい |
Python | 2年 | Fabric 等で薄く触ってる程度 |
PHP | 5年 | PHP 6 の時代まで。もう忘れた |
Emacs Lisp | 10年 | https://github.com/yewton/.emacs.d を見てください |
※2020年1月時点
名称 | 業務経験 | レベル感 |
---|---|---|
MySQL(MariaDB) | 10年 | レプリケーションやらバックアップやらの一通りの運用や基本的なパフォーマンスチューニングは出来る。変わったところだと Galera クラスターの運用経験有り |
PostgreSQL | 2年 | Heroku についてるのである程度触れる程度 |
Redis | 5年 | キャッシュとして当たり前に運用する程度 |
Elasticsearch | 2年 | 日本語インクリメンタルサーチや表記揺れの対応が出来る程度 |
Docker | 5年 | 基本的には日々の開発で使うのみ。一部本番サービスでも運用したが堅牢性が求められるようなクリティカルな利用経験は無い |
※2020年1月時点
名称 | 業務経験 | レベル感 |
---|---|---|
AWS | 5年 | Webアプリ開発に必要な一通りは運用経験有り。サーバーレスとかはあんまり |
GCP | 2年 | BigQuery とか Vision API とかの単機能をたまに利用する程度 |