2019年に何したかと2020年に何するか

2019年の振り返りと2020年の話。

2019年の振り返り

2019年は簡単にまとめるなら技術の幅を広げた1年でした。 ちょうど7月で転職したので一年を転職前後に分けられるので、それぞれ振り返ります。

転職前

株式会社FiNC Technologiesを退職しますでも書いたように、1月から6月まで仕事をしていました。 とはいえ、Ruby on Railsエンジニアとしての活動はほぼ1月しかしておらず、だいたいの期間をSageMakerやAWS Glue等を利用したシステム開発をおこなっていました。

また、この期間には以下のような対外的な活動もしていました。 特にRubyKaigi直前まではJAWS DAYS+RailsDM+技術書典本+寄稿+転職活動が重なってかなり大変でした。 このうち、JAWS DAYS、RailsDM、RubyKaigiに関しては会社の業務として取り組めたので、許可してくれたFiNC Technologiesには感謝しています。 (業務時間使えなかったらリアルに破滅してた)

OpenAPIに関しては、発表以外にもプロダクション導入から検証・運用まで、かなり腰を据えて取り組むことができました。 また、prosの面が協調されやすいマイクロサービスに対して、consをしっかりと整理して理解できたのはかなりの糧になり、どこまでマイクロサービスに踏み込むかの感覚をまとめられたのは大変ためになりました。

有給消化中の6月後半はゼロから作るDeep Learningシリーズを読んだり、ポッドキャストに出演したり、普段読まない本を読んだりと様々な事に時間を費やせました。

転職後

7/1からPFNで働いています。 やっている事としてはWebアプリケーションエンジニア+フロントエンドエンジニア+インフラエンジニアで、いわゆる"一般的な意味での"フルスタックエンジニアになります1。 これまではほとんどWebアプリケーションの層のみを触っていましたが、現在はAWSのVPC構築からReactによるSPA開発などあらゆる範囲の事をやっています。

今は基本的にGoとTypeScriptによる開発をおこなっているため、Railsがうまく隠していてくれた部分と向き合ったり、これまでの知見をそのまま再利用することはできません。 ただし、きちんと知見を理解する事でコンセプトや思想などは応用できるため、ゼロからやり直しというよりかは強くてニューゲームに近いです。 むしろ今まで何となくわかっていたところに対して深い理解が必要になるため、より基礎の部分が強化されているように感じています。

Kubernetesに関しても入社してからかなり利用するようになり、現り利用しているEKSクラスターの構築・運用を行えるぐらいまではできるようになりました。 具体的にはBonfire Backend #4で社内GPUクラスタとは別にEKSクラスターを運用してる話をしたに書いています。
re:Invent 2019に参加しましたが、コンテナ周りの話はついていけるなど、かなりコンテナ技術に関してはレベルが上がったと思います。

また、B2Cの業界からB2Bの業界に移ったため様々な点で新しい学びがあります。 例えば不特定多数のユーザから特定小数のユーザに変わるため、フィードバックを得て改善を行う、お客様から課題を対話の中で直接引き出すといった点はB2Cと比べて相対的に重要度が上がりました。 一方で現状では必要としなくなった観点というのも存在します。 例えば前職ではライフログ周りの機能を作成していたため、ピーク時には相当なアクセス数を捌いていましたが、それと比べるとアクセス数やデータ数は数桁少ないため、大量アクセスを捌くといった観点は一時的に重要度が下がっています。 一方で推論時の高負荷といった面や、セキュリティ、監査などといった観点の重要度が上がっており、あまり使っていなかった筋肉を鍛えている感触を得ています。

【PR】 なお、この会社でいわゆるWebアプリケーションを開発するのはわりと少数派であり、あまりチームの人数も多くないので積極採用中です。是非( ゚∀゚)o彡゚
https://preferred.jp/ja/careers/

その他

OpenAPI 3に関して実装時にかなり読み込んだのもあって、技術書典7で使用の全てを解説する本を出しました。(技術書典7でOpenAPI 3の完全解説本を出しました)
紙の本はもうありませんが電子版はぽつぽつとお買い求め頂いており、様々な人のお役にたっているようで何よりです。

今年はご縁があってエンジニアHubに寄稿記事を書かせて頂きました。
マイクロサービスにおけるWeb APIスキーマの管理 ─ GraphQL、gRPC、OpenAPIの特徴と使いどころ
Webメディアへの寄稿は初めてだったので勝手がわからないのと、つい筆が乗ってしまって想定の倍ぐらい書いてしまったのですがとても良い経験でした。

技術書典でFlutterの本を書いたのが縁で、Flutter モバイルアプリ開発バイブルという本を商業出版させていただきました。 商業流通に乗る本をゼロから書いたのは初めて&個人的にFlutterが熱いので大変良い経験になりました。

転職してからは業務でRubyを書かなくなり、業務改善のためにOSS活動をするという手が使えなくなったため、committeeやOpenAPI周りの対応がかなり後手後手に回っています…

2020年どうするか

2019年はRuby on Railsエンジニアとしての活動はかなり少なく、OpenAPIやSageMaker、AWS Glue、Go、TypeScript、Kubernetes等、これまで触ってこなかった技術に振れてきました。 他にも登壇を増やしたり文章を書くなど、技術の深さや幅を大きく広げる一年でした。 一方で転職してからはキャッチアップを最優先にするために対外的な活動はかなり抑えめにするなど、かなり内側を向いた活動を行っていました。

変化の早いこの業界で具体的に目標を立てるのは難しいですが、とりあえずGo、TypeScript、Kubernetesの能力を上げつつ、機械学習側へのアプローチを続けていく感じになりそうです。 Kubernetes Meetup Tokyoといったコミュニティへの発表、KubeConへCFPを送る等といった対外的な活動もやっていきたいです。
情報発信はブログや技術書も色々やっていきたいので、来年は頑張りたいです。

技術書典8に受かったので、一旦はこれを目指してガンバリマス( ゚∀゚)o彡゚


  1. データセンターとかチップとかを作っている人がいるので、真のフルスタックエンジニアではない ↩︎