2022年の仕事ふりかえり

2021年12月は無職を満喫し、1月から Treasure Data で職を得て働き始めた。

 

手を動かして学んだ Ruby と Rails

技術面では「なんでもやりまっせ」という思いで、あまり選り好みせずに就職活動していた。最終的に Ruby on Rails が主要技術のチームのオファーを受けることにしたので、RoR を初めて仕事でやることになった。思っていたよりスムーズに習得できた感触があった。

まず何と言っても、担当するバックエンドサービスについては前任者らがテストをそこそこに整備してくれており(ラインカバレッジ80〜90%)、かなり安心してコードを変更できるのが大きかった。おかげで早いトライ&エラーサイクルでコードを試せた。また考慮漏れがあっても、各種サービスを第三者的にびしびしチェックしていく QA チームの厳しい目もあって、安心感があった。

Rails や Ruby の学習面では、日本語英語どちらも充実したRails ガイドがとても役に立った。 黒魔術と聞いていた Rails のテクニックの多くは、書籍『メタプログラミング Ruby』で理解が進んだ。この本は語り口がかなりおもしろく、Ruby の柔軟さに感動を覚えるほどだった。Ruby らしい書き方、Rails らしい書き方については linter 兼 formatter である RuboCop やそのルール集 rubocop-rails に従い、何とかなった。また、ぼくのあとに入社してきた Rails 暦の長い人たちからも、大いに教わることができた。 

長年愛用している JetBrains IDE の Ruby サポートがなかなか強力なことも分かった。完璧ではないものの、独自の型推論やコードに基づく補完がまずまず動き、コーディングやリーディングを助けてくれた。今後、Ruby エコシステムで整備されていった型情報を活用し、Scala や TypeScript 並の開発支援が受けられることを期待している。

また自分は手を動かして覚えたいタイプなので、担当サービス以外にも何かいいコーディングの題材はないかな……と OSS を物色した。当時 Treasure Data に在籍していた k0kubun さんが数年前に開発し、社内でも一部使われている rspec-openapi を見つけた。これを自分の担当サービスでも導入するにあたって、この機能はマストで欲しいな……と思って色々実装し、k0kubun さんからレビューを受けるのも、RoR のよい勉強機会になった。


 

AWS 他インフラ周りとの格闘

Treasure Data での IT インフラ周りは、サービス担当のバックエンドエンジニアが自分たちでインフラも面倒を見て、SRE が全社的に支援するような体制になっていた(少なくともぼくのチームは)。VPC、Security Group、ALB など、これまでまったく触ってこなかったネットワーク周りの AWS もおかげで 触ることができた。

ミスるとまずい部分・記述が冗長な部分などは SRE チームが Terraform モジュールとしてカプセル化してくれていた。少量の設定を記述すれば、わりとサクサク新規サービスのインフラを構築できるのがよかった。

いささかレガシーを感じたのは、Docker + EC2 + CodeDeploy で組まれたアプリのパッケージングやデプロイメントの仕組みだった。これはまあ、ECS/EKS/AppRunner などが成熟されるよりずっと前から改善しつづ運用されてきたので、しかたなさそうだった。幸い、2022年から EKS 化プロジェクトが始まっており、ぼくも2023年には EKS 化をやらせてもらうことになっている。 

 

担当サービス

今年1年は、抽象的に言うと「外部のクラウドリソースをプロビジョンし、他の社内サービスとインテグレーションして付加価値を生むようなサービス」を2ライン、開発・運用した。

その一部について、久々のオフラインイベントで話すこともできた。

 

テキストコミュニケーション

仕事で何かに詰まっても、過去数年分の Slack のログや Confluence を検索し、注意深く読めば、だいたい一人ですぐ解決できることも多かった。過去のやりとりがテキストで残っており、高速に検索できることのありがたさだ。

過去のテキストからどうしても分からないときは、Slack でヘルプを投げるとチーム内・外からすぐにレスポンスがあり、困り続けることはほとんどなかった。Treasure Data の社員はアジア太平洋・ヨーロッパアフリカ・北米に分散しているので、たとえば日本で夜中に書き込んでも、わりとすぐに答えがきた。ときには VPoE までもが助けてくれた。

詰まって解決したことは Slack に流したり、Confluence に書き込んだりして、あとで誰かが検索できるようにした。

自分で書く英語テキストのスペルや文法チェックには Grammarly の有料版が重宝した。

 

バーバルコミュニケーション 

社内は英語が公用語だが、英語で会話する機会はそこまで多くなかった。おおむね週に4時間、多いときでも8時間といったところだった。チーム内の英語話者がイギリスで働いており、日本に住む自分とはあまり労働時間が重ならず、基本的にチャットでの会話が中心なためだ。

そんな少ない時間でも、1 on 1、ペアプロ、ミーティングなど英会話の必要があるので、会社の補助でオンラインの英会話を受講し始めた。稼働日はほぼ毎日、1日に25分のレッスンを受けている。

いろいろ教材を試したが、自分にいちばん合ったのは英語ニュースだった。ニュースをチューターと一緒に読んで、どう思うか、お互いの国ではどうかなどを話し合う。ときにニュースから雑談にも脱線する。飽きずに語彙を増やしたり、会話の練習に良かった。

おかげさまで、入社時点の1月から比べれば、だいぶ英語で考えを喋れるようになった。少なくとも、これどう言えばいいんだろう」となかなか言葉が出せない場面がかなり減った。

 

全体

  • PHP + Scala から Ruby on Rails へ
  • 日本語のローカルな組織から英語のグローバルな組織へ
と、仕事面では大きな変更が2つあった。どちらも、まあまあやれてて楽しい、という感触だ。