お久しぶりです。Andyです。
2020年はしばらくステルス気味な生活が続いていたのですが、個人的には環境や意識の面で大きな変化があった一年でもありました。 せっかくなので年の瀬の備忘録の意味も兼ねて、つらつらと近況をまとめて行こうと思います。
活動サマリー(キャリア編)
フリーランス
2020年前半は引き続きWebフロントエンドに特化したフリーランスとして、社員一桁名のところから数千人のところまで複数社の包括的な技術支援を行わせていただきました。
コンサルタント的にプロジェクトのリスクアセスメントや技術ロードマップの見直し、Webフロントエンド + インフラレイヤの基礎設計、技術勉強会等を通して多角的に「事業×エンジニアリング」に取り組ませていただく機会が多かったです。
技術職をやっているとどうしても特定の領域の局所最適に目がいってしまったり所謂「エンジニアとしての正しさ」みたいなエゴが否応なく顔を出してしまうのですが、改めて事業や会社を俯瞰して全体最適に繋がるソリューションやプロダクトを通して実現するカスタマーサクセスみたいなものと向き合うことができて非常に有意義な時間でした。
会社の事業ドメインやメンバーのスキルスタック、チームの技術ロードマップといった無数の変数が存在する環境で、唯一解が無いながらもベストな意思決定に向けて邁進している時ほど「仕事してるな、オレ。」という感じがして好きです。
また片手間でTypeScriptおじさん、IaCおじさんとしてチョロチョロ手を動かしたり数千行単位のPRを投げたりしていたのですが、やはり一定以上のコミット量が求められるテックリード職は副業では厳しいなと痛感しました。中途半端な口出しで混乱を招いてしまった現場もあったので、シンプルに反省の一言です。
実装者として手を動かしたのは友人から紹介してもらったGo + React案件と、Node.js + Flutter案件くらい。初めてガッツリGraphQLの運用に触れたりGoでresolverを書いたりできたのは勉強になりました。 (相変わらずこちらもコミット量が十分に確保できていなくて申し訳なさ...)
再就職と脱エンジニア
上述のように今年は特定の技術領域に依らずより抽象度の高いレイヤーで「事業×エンジニアリング」に取り組ませていただくことができました。 そういった仕事が個人的にもたまらなく楽しい一方で、同時にその領域に対して(今の自分が)フリーランスとしてできることの限界みたいなものを感じて次第に歯痒くなってきたのも事実です。
特に会社としての規模が大きかったり歴史が深かったりすると、実績のないフリーランスという立場に対する風当たりの強さは如実で自分の無力さをひたすら痛感させられました・・・
そんなこんなで責任と権限の抱き合わせセットを手に入れるために6月にLINE株式会社に就職。 会社も連結で従業員数が約8,000名、エンジニアが約2,500名という自分のキャリア史上最大規模のところです。
コンテキストがやや特殊なのですがLINEはその歴史的背景や事業展開の特殊さからAWSやGCPといったPublic Cloudではなく、自社IDC上に展開する「Verda」というPrivate Cloud上で様々なサービスを提供する会社です。 OpenStackを基盤としながらも独自のLoadBalancerやManaged Kubernetes Platformが動いていたりと非常に面白いアーキテクチャ & サービスポートフォリオをしています。
(Verdaについて興味がある方はこちらやこちらの記事をどうぞ。)
最初はフロントエンドエンジニアとして話を聞いていたのですが、選考が進むうちに「どうやらPlatformの価値を最大化するためにはエンジニアの枠を超えた動き方が必要だぞ」という結論に至り、結果としてBizDevとしてそのPrivate Cloudの部署でサービス企画やコミュニティ戦略を行うチームを立ち上げることになりました。
社内サービスといえどポテンシャルユーザーが2500+人もいる規模で、かつそこでの生産性がGlobalワイドの事業インパクトに直結するとなればできることは無限にあります。
ユーザーガイドやリリースノート提供フローの整備といった泥臭いものから、Public Roadmap提供・RFC Process設計、Customer Support Operation最適化、Solution Architectチームの立ち上げ、ユーザーコミュニティ施策の提言等々、本当に幅広い領域で裁量がいただけてありがたい限りです。
余談ですがBizの人間として駆け出すにあたって読んでいて面白かった本はこのあたり。
Embedded content: https://www.amazon.co.jp/dp/4596551227/ref=cm_sw_r_tw_dp_x_Yws7FbCQMHRSY
Embedded content: https://www.amazon.co.jp/dp/4862761011/ref=cm_sw_r_tw_dp_x_Fxs7Fb6X0ZFCN
入社してそろそろ半年が経ち、最近はチームの立ち上げフェーズもようやく落ち着いてきました。 年末は各プロジェクトのリードを優秀なチームメンバーに委ねつつ、空き時間に4~5箇所社内で技術コンサルティングを行いながら穏やかな気持ちで過ごしています。
まだまだ尻の青い新人ですが、来年はチームをもっとスケールさせて魅力的なPlatformづくりの礎となるカルチャーを作れればなと思います。
活動サマリー(技術編)
上述のように現在はBizDevがメインの仕事ですが、より良い課題理解と課題解決のために今後も人並みにエンジニアリングは継続していきたいです。
というわけで今年勉強したことまとめ↓
Webフロントエンド
世の中的に目新しいトピックとしてはWeb Core Vitals, Vue 3, Vue Composition API, Incremental Static Regenerationあたりを一通り履修しました。 フェードアウト気味になっちゃいましたがVue 3 Official Docs輪読会も企画させていただいたり。
OSSとしては@nuxt/composition-apiやStorybookのVue 3対応をチョロチョロとやっていたくらいで、大きな成果は特にないです。
個人的に2020年で一番「アツかった」技術はやはりTypeScript周りで、Variadic Tuple TypesやTemplate Literal Typesの登場などハードコアなTSerを飽きさせないトピックでいっぱいでした。 これまで型安全なアプリケーションを記述する上で歯痒さを感じていた点が8割くらい一気に解消されただけでなく、「え、そんな表現もできるの?」という驚きに満ちたリリースが続いて大満足です。これからも楽しみで仕方がない!
またそういった表層の新機能だけでなく、TS CompilerやLanguage Serviceといった低レイヤーにガッツリ触れた一年でもありました。
年初に@takepepeさん企画の「TS Compiler API座談会」に@Quramyさんや@uhyo_くんといったお歴々と一緒に参加させていただいたのがきっかけで、今年はひたすらと自分が昔書いたツールをCompiler APIでリライトしたりCLIツールを量産したりLanguager Service Pluginを書いたりと過ごしていました。
ありすぎて忘れたけど、いくつかあげるとしたらこのあたり。
- squelette: Open APIからTS ClientとAPI型定義を生成してくれるくん
- vue-ts-playground: 公式のTS PlaygoundのVue clone
- typescript-error-reporter-action: CI上で型検査を実行してPR上にreportingしてくれるGitHub Action
- db-recon: Relational DBと型安全に通信するclientを生成したり、Tableの型定義を出力してくれるくん。対応しているのはMySQLとMSSQL(WIP)
- typed-oax: Open APIを書くだけでExpressの"全て"にリアルタイムで型がつく優れもの。激推し。
- vue-typa-audit: Vue SFCに型検査を行うためのCLIおよびTS Compilerを利用したAPI群。全世界のVueを使ってる会社からオファーが殺到する革命的な神ツールだと思ってワクワクしたんだけど、今のところあまり刺さっている会社はなさそう。悲しい。
- vue-ts-plugin: 上述のvue-type-auditをTS Language Serviceにportingして、エディタ上でリアルタイムにVue SFCの型チェックが行えるplugin。veturみたいなエディタ拡張を利用しない汎用的な神ソリューションだと思っているけど、こちらもまだあまり世間からの評価がない模様。とても悲しい。
総論として「任意のDSLに対して任意のスコープ、任意のフックで型検査を実行できるようになった」というのがWebフロントエンドエンジニアとして最大のAchievementで、今後もこの領域のスキルは伸ばしていこうと思います。
コンテキスト依存が強いのであまり表立って話はできませんでしたが、Testing周りのDX改善やSPA設計論なども継続してアップデートできたので比較的満足な一年です。
バックエンド・インフラ
副業ではなるべく普段触らないバックエンドのスキルを伸ばそうと思い、GoやNode.jsでいくつか商用のAPIサーバーを書いていました。(そういえばPythonも久々に触った)
認証認可まわりの実装は独自DBでもFirebaseでもAuth0でも一通りこなせるようになったのですが、ロギング・モニタリング・障害対応といった運用レベルの話まで踏み込む機会はなかなか得られずトライアンドエラーが足りていません。来年以降の課題です。
またバックエンドのアプリケーションエンジニアの頭数がいてもクラウドインフラの設計運用やDevOpsをこなせるタレントがいない現場では積極的に手を上げさせていただきました。
少なくとも10個以上のTerraform Project, 30個以上のDockerfile, 40個以上のCI/CD Pipelineをスクラッチで組むことができたのでかなり知見は貯まったかなと思います。(今週も3つCD Pipelineを書いた) ピタゴラスイッチ楽しい。
2020年後半は前述のようにPrivate Cloudの会社に就職したため、独自のTerraform Custom Providerを書いたりManaged Kubernetesにガッツリと触れる機会にも恵まれました。 チームが管理するk8s clusterの立ち上げからArgo CDのprovisioning, LoadBalancerやIngressやEnvoyやPrometheusの設定まで一気通貫に経験できたのはエンジニアとして財産になりました。
今後も幅広いレイヤーの技術に手を出しつつ「DevOpsのできるBizおじさん」としてのブランディングを頑張っていこうと思います。
活動サマリー(プライベート編)
引越し
3年間お世話になったシェアハウスを出て、広めの2LDK(57㎡)に引越しました。 都心にでるのが少し億劫になりましたが、COVID-19の影響で外出する機会がそもそも減ったのであまりデメリットには感じていません。
高速なインターネット(常時600~800Mbps)と書斎が手に入ったことで在宅勤務が快適になっただけでなく、防音完備の物件のため10年ぶりにアコースティックギターも再開しました。独身貴族を満喫しています。
またシェアハウス時代にはできなかったホームパーティが気軽にできるようになったので年末は毎週のように友人と家で肉を焼き、酒を飲み、桃鉄で盛り上がる生活でした。
色々なバックグラウンドの人が集う溜まり場のような家にしたいので、2021年もどんどん遊びに来てください!
美容
お髭と眉毛のメンテが面倒だなと思ったので、一念発起して脱毛サロンに通い始めました。
口髭の方はメンズTBCの永久脱毛コースで、眉毛の方は月一で原宿でワクシングしてもらっています。
正直最初に料金を見たときはひっくり返ったけど、やはり自分で剃るのと肌の見え方が全然違うし会う人会う人に「若くなった?」と言われるようになったので行ってよかったなと思います。
クリックしたら画像が見えます
ちなみに女友達からは「美容は金額を気にしたら負け」という至言をいただきました。
グルメ
COVID-19の影響と正社員に戻ったことによる収入減のダブルパンチで、分かりやすく外食の機会が減りました。
それでも前からお世話になっているような(検温対策もバッチリの)お店には何度か足を運ぶ機会に恵まれました。除菌や感染対策にうるさい僕に付き合ってくれた全ての友人に感謝です。
どんなに気持ちが沈んでいても、どんなに疲れが溜まっていても、美味しい食はいつでも人生を豊かにしてくれるなと改めて実感した一年でした。
来年はどんな美味しいものに巡り合えるかな。
旅行
年始に高校時代の友人と白川郷を目指して北陸旅行。ちょうど日本でもCOVID-19が騒がれ始めて最初の感染者が出た頃だったのですが、たまたま仲間の一人が医者だったのでマスクの着用方法から手洗い消毒のやり方まで徹底的にレクチャーしてもらいました笑
移動も車で、ホテルバイキングや人の集まる場所での食事も全てキャンセルしたので、当時としてはかなりガッツリ感染症対策をした上で臨んだ旅行だったなと思います。
8月には父親の還暦祝いに箱根旅行をプレゼント。 アメリカにいる弟夫妻は参加できず残念でしたが、僕が泊まった中で一番心に残っていたThe HIRAMATSU Hotelsに家族で泊まれたのは想い出に残るひと時でした。 100歳までどうかお元気で。
2021年に向けて
仕事
何よりもまずBizの人間としてプロジェクトリード力やチームマネジメント力、リスクコントロール力を身につけること。新人BizDevマンに向けておすすめの本があれば教えてください。
エンジニアとしてはMicroservices時代のOpsノウハウを身に付けることと、ネットワークレイヤーの知識を身に付けること。時間を見つけてRustの勉強も再開しようと思います。
語学
あとがきになりましたが、今のチームの仕事はコミュニケーション含めて8割以上が英語のため数年ぶりに外国語で仕事をする難しさを学びました。
未だに10歳児程度の語彙力しかないのは流石にマズいので、ビシッと決まるカッコ良いビジネス英単語をinputしまくろうと思います。
Challenging Goalとしては中国語を始めたいなと思っていて、台湾の友人と日常会話ができるレベルを目指せれば嬉しいです。
プライベート
落ち着きたい。
来年もよろしくお願いします。良いお年を!