2021年振り返り

2020年

スキル変化

  • +Clojure
  • +Microservices:Tracing, Kubrnetes, Helm, AWS integration
  • +Terraform
  • +Web App development
  • +Design Web App Backend from scratch
  • +Collaboration
  • +(a little bit)React
  • +American English
  • -Node.js
  • -TypeScript
  • -CloudFormation, CDK
  • -Design system for a medium scale project

Updates

  • アメリカの会社で働き始めました
  • 4ヶ月くらい福岡、広島など自宅以外で過ごしました

アメリカの会社で働き始めました

日本でInternationalなチームで働いていて忙しくも楽しかったのですが、やむをえない事情でアメリカの会社に転職しました。転職のきっかけは誘いがあったことから。非常に感謝しています。前職は仕事はさておきこれまで史上最高のチームメンバー達でした。チームメンバー達がみんな幸せになってくれたら最高だなって祈り続けています。 いつか結婚のためにスウェーデンにいった同僚の家に遊びに行きたい。

前職では大量の重いリクエストを捌くためのシステムをメンテナンスしつつ刷新するプロジェクトに従事しており、新システムのデプロイをすませた段階で退職。システムデザインを0からできたことやキューを使った複雑なシステム連携について学ぶことができました。

現職はMicroservices上で動くWebアプリを作る仕事をしています。作るサービスの規模は下がったもののMicroServices特有の課題を学ぶことができたり久しぶりにWebアプリ作成を楽しんでいます。

現職でのチームは非常に優秀な人が多く、日々学ぶ事が多いです。前職で苦しんでたことの一つとしてシニアエンジニアとしてのロールモデルがいないことが挙げられますが、現職ではロールモデルばかりで楽しいです。

前職ですごく仲の良かった同僚も入社してきてSlackのDMで突然Hi!って言われたときはおもしろかった。

2020 Try

  • 仕事を選択・集中し、考える時間を増やす:ビジネスに貢献する中規模以上のタスクのみに集中する。インフラ管理は今やっているCDKの移行にとどめ、新規のタスクはチーム内のサポートのみにする。よい学習ができそうなタスクは移譲するようにする
  • クリティカルな貢献チャレンジをする: 2020年はシステム的な貢献だったが、ビジネス的にクリティカルなものを達成する、忙殺されない状態で 転職したため
  • 英語pairingを問題なくできるように:オンライン英会話の継続、特にNativeの人との英会話を問題なくできるようにする
  • チームの学習機会を増加させる:自分で手を動かすかわりによりチームにフォーカスし、こちらの芝はとても青いものだよという状態にする 転職したため

Keep

Infrastructure work

相変わらずクラウドインフラに関する仕事が人より速くてよくできている実感があります。強みは保持しつつチーム全体の底上げができたら幸い。

  • インフラチームが管理してるTerraform repositoryへの貢献
  • CI/CD
  • Observability向上

Collaboration

現職ではチームワークを重視していて、 - できるだけ限られたチケットにみんなでフォーカスすること - リモートワークでの仕事なのでオーバーコミュニケーションをすることで認識の齟齬を防ぐこと

などからよくペアプロする機会が増えました。チームの特性にもよりますが自分にはあってる働き方なのでチームで課題を解決することをより意識していきたいです。

ロールモデルが多い

Cross Team Collaboration god

彼は他チームの人との調整がとても迅速、上手です。なおかつ他チームへのヘルプも積極的に行っており、彼と他チームの間にある助け合いの循環がとても良く回っています。今後彼の動きを模倣していきたい。 これを達成するために阻害となっている英語力もできれば上げていきたい。

Team work god

Team workの管理が非常に上手な同僚がチーム内にいます。彼は情報をできるだけ明確にしチーム内に共有することやチーム内でのコミュニケーションの促進が非常にうまいです。チーム内での会話の時間が足りない問題に対しCoffee Chatの時間を設けたり、Onboardingや他チームが参照できる非常にわかりやすいドキュメントの作成してくれてありがたいです。

またペアプロがとても上手で不明点を明らかにし、その中で問題点と改善点を必ずとりあげてくれます。

PdM/PM god

PdMに必要な能力の一つとして迅速かつboldで良い意思決定ができることが挙げられるかと思いますが、非常にうまい同僚がいます。彼女はPMも兼任していてその問題定義能力、進捗管理や他の人へのプレゼン力など見習うところが多いです。とにかく頭の回転がめちゃくちゃ早い。

EM god

チームをうまく監視し自立的に動けるようにサポートしてくれるEngineering Managerがいます。必要なときはチームを助けてくれ、普段はチームメンバーの学びを最大限に高めてくれるための課題や助言を提供してくれます。彼がいるからチームがうまく回ってると思う。

英語

英語で仕事をしはじめてから2年、そこそこできるようになったかなと思いましたが、アメリカ出身の同僚達に囲まれてネイティブEnglishとほぼフルタイムで触れるのは今年からです。レベルが一段回上がったのを感じており、ネイティブの英語を聞く、読む機会を増やす必要があると感じています。

割とつらいのが相手のマイク環境によって難易度が上がるところ。とはいえネイティブ同士だと普通に会話できているので頑張って聞き取るしかないです。

英語むずいと感じる日々を送っていますがそれでも着実にレベルアップはできていると感じています。

広島にいたときの学習方法として映画を字幕なしで見るというのがありますが、割と良い気がしています。長時間英語にさらされつつも楽しくて続けることができるため。一人で映画をみる機会をもう少し増やしていきたい。

Clojure

Clojure、最初にやり始めた頃は読みにくいと思っていたのですが慣れるとすごい読みやすいです。

自分が思うClojureのPros and Cons

Pros:

  • 慣れるととてもわかり易い
  • 一度コードを作成するとそんなに修正しないで保ち続けられる(なぜだろう、シンプルにかけるからかな)

Cons:

  • ライブラリまわり
    • ドキュメント不足していることが多い。なぜか知らないがGitHub Wikiを多用している
    • デファクトが存在しない分野がありどれを使うがでために揉める

あとは以下観測していますが、言語とは関係ないかも。

  • シンプルに書かない傾向の人がいるとやばいコードができがち。Clojureでも防ぎきれなかったかという印象。
  • 古い巨大コードだとエディタプラグインが機能しない時がある(VSCode/Emacs/Vimで確認)

その他よいこと

  • 6kgやせた

Problem

弱い

優秀な人に囲まれることで色々問題点が浮き彫りになるのがとても良い。

以下あたりが課題

  • Cross Team Collaboration
  • 迅速な意思決定
  • 対象の求めていることを意識し、それに沿った説明をする
  • WhatとWhyへの意識
  • 英語
  • 改善案の継続的な提示
  • Kubernetes

特にCross Team CollaborationはStaff Software Engineerのロールで動いている自分としては必須だと思っている。2022年度はこの点を向上していきたい。そのためには普段から他のチームの人達とコミュニケーションをとることとヘルプが必要なときにヘルプをする必要がある。そのためには英語力が必要。

Try

  • 英語字幕なしで映画を見る
  • 普段から英語でしゃべる機会を増やす、e.g., ペアプロを積極的に誘う
  • ほかチームのヘルプを行うためにSlackのPublic Channelをちゃんとみる
  • 相手の求めていることを意識した行動をする
  • WhatとWhyフェーズへの積極的な関与
  • タスクを定義するときはスコープを広げすぎないよう注意すること
  • PdMのヘルプ
  • Kubernetes Udemy講座の終了
  • 自宅k8s環境へのHelm導入

OSS

https://github.com/nanonanomachine/vim-ref-clojuredocs