凡庸なエンジニアが強くなるためにクラスメソッドへ転生しました

2020.12.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

CX事業本部の佐藤智樹です。

本エントリはクラメソビギナーズの圧倒的成長 Advent Calendar 2020の15日目の記事です。

入社が2020年2月で対象に入れたので参加させてもらいます。

基本的には入社前に何をしようと思っていたのか、入社してからどんなことをしてきたかについて記載します。

入って1年弱ですが、振り返ると1年前とはまるで別の生物になったかのように考え方が変わり、実績も多少つけてこれました。ただ何でこれまでやってこれたのか考えをまとめておかないと、「何でこんなことやってるんだっけ?」となりそうだったので、入社前の話から書いています。

完全に自分のための今までの振り返りと自己紹介みたいな内容になるので、あまり面白いものか分かりませんが興味のある方だけ読んでください。

現職入社前

前職では大きめなSIerの子会社にいました。そこではオンプレの業務システムがメインで、保守作業やミドルウェアのセッティング、複雑な業務システムの総合テスト設計・実施、後片手間で開発用AWS環境(主にWorkspaces,EC2,RDS)の保守などをやってました。

前職に入社して2~3年は常にPJが炎上し続けていて本当に大変でした。3年目ぐらいに当時長時間労働が大きな社会問題化して残業時間規制が厳しくなったり、数年続いた炎上が鎮火したことでたまたま何とか生き残りました。

そのときに思い出したのが「弱い奴は死に方も選べない」という言葉でした。技術に強くなって理不尽な目にあうことを何とか減らせないか。滅茶苦茶な仕事に勝手に入れられるのでなく、自分の意思で仕事を選択したり、自分の名前で仕事がとってこれたりして、そこに全力を出せるようになりたい。

その考えが今少しづつでも毎月数本ブログを書いたり色々活動したり、資格をとったりの原動力になっています。

また10年前大学1年生の時に買ってから人生の指針として持っている「情熱プログラマー」の言葉も響きました。

「ウォーターフォール式のキャリア計画はやめよう」の章で以下のように書かれています。

僕の目標は、企業の重役か最高情報責任者になることだった。(中略)ところが、目標に近づくうちに、自分がやっている仕事は自分がやりたくないことばかりに思えてきた。それどころか、上へ進めば進むほど、面白くない仕事がまっていそうだった。

情熱プログラマー ソフトウェア開発者の幸せな生き方

自分は重役になるとかは目標ではなかったですが、当時は昇進を目標としていました、しかし、年次を重ねるたびビジネスパートナーの方々の管理やテスト設計など、本来好きだったシステム構築の検討やプログラムからどんどん離れていました。

そしてその差が埋まることは今後もほぼないだろうということが目に見えていました。

最新のシステム設計を学ぼうとして、土日に勉強していたのですが時間を沢山かけることもできず、元々大学院以前に勉強していた以上のことが分かっていないという焦りがありました。

ついでにSHIROBAKOの9話の車輪の話をよく見てました。自分は本当は何がしたかったんだろう。

転機

そんな中でたまたま出会ったのが「Serverlessを支える技術」という本でした。

当時は「Serverlessってなんだよ?物理サーバー無いの?」、「同人誌だけどしっかり製本しているし良い本なのかな」、「猫可愛いし買うか」ぐらいのレベルでした。

当初は買ったものの意味が分からなくて長く積んであったのですが、「サーバーレスシングルページアプリケーション」の本でイベントドリブンアーキテクチャの図をみた時に初めて何が言いたかったのか理解できました。

理解してからは、もしかするとこのアーキテクチャは新しいサービスを作るときの世界標準になるかもしれない!これに関わりたい!と興奮していました。

業務では関われないので、毎週休日1日はサーバーレスシステムの開発を試していました。色々試しながら最後はサーバーレスでバックエンドを構築し、フロントはAndroidのアプリを作成して公開したりしてました。

上記の活動を1年ほど続けた時に、仕事として関わってもっと深く知りたいと思ったのでクラスメソッドに当時あったサーバーレスエンジニアのポジションを希望して入社しました(同じ内容の職種は現在サーバーサイドエンジニアIoTバックエンドエンジニアなどの名称で募集されています)

入社後

ここからはやっと本題の入ってからの成長の部分です。

弊社では四半期ごとに目標を立てます。自分も以下の目標を立てていました。特に「これにしろ」とかはないので自発的に選んだものです。

  • ブログ投稿月5本(3~7月)、月3本(8~12月)
  • 四半期に1回イベントに登壇する

ついでに、ほぼ自分の中でしか決めてなかったですがクラスメソッドに入社したからには以下の目標を達成しようと思ってました。

  • 大規模なOSSにコントリビュートしてみる
  • 大規模なイベントで登壇してみる
  • AWSの資格(アソシエイト3種、プロ2種)を取得する

ここから先は、大体時系列順にこれまでやってきた内容を振り返ります。

ブログ投稿

最初は月5本目標でしたが、途中資格優先で3本にしていました。結果として肩を壊してた8月以外は概ね目標達成できました。

入社前までブログは合計で5本ぐらいしか書いていなかったので、大きく成長できました。

入社してから使っていたAWS CDKとサーバーレスシステムに関する気になった話や、仕事中もしこんな記事があったら助かったなと思う情報を中心に書いています。 今後も色々悩んだ末に出した設計や細かいネタなどもどんどん出していきます。

ただ本当は一人アドベントカレンダーとかやりたかったのですが、自分のキャパシティでは無理だと思って断念したので来年挑戦したいと思います。

Developers.IO 2020 CONNECT

入社して数ヶ月で「Developers.IO 2020 CONNECT」の募集があったので参加しました。

このとき参加募集の告知がでてから1週間も立たずに50人以上の方が参加表明して驚きました。貪欲にアウトプットの場を求めるスタイルがクラスメソッドだなと思い自分も勢いで参加を決めました。

当時入ったばかりのチームで使っている技術や設計のまとめ的な内容を動画にしました。詳しくは以下の記事の動画から見てください。

別PJに週1で参加

半年ぐらいして少し仕事に慣れた頃、社内で別事業本部の仕事を並行でやるパラレルワークの制度が始まるという話がありました。 参加しているPJのアーキテクチャはある程度把握できましたが、他のチームではどんな風にこなしているのか気になり始めてた時期でした。

話をしたところ、まだちゃんと制度はできていない状態でしたが2週間後には週1回自社サービスの開発チームに参加させてもらいました。 (正直参加までのスピード感があまりに早すぎて自分でやりたいと言っておきながらビビりました。前職では3年異動を願っても叶わなかったのにこのスピード感…)

そこでもサーバーレスシステムの開発だったので、ある程度は同じでありながらもチームによる設計の癖の違いも知ることができました。 そのときバックエンドの機能実装やスタック構成の再編成、フロントエンドを少しだけやらせてもらいました。特にスタック構成の再編成で悩んだ内容などは以下の記事に反映されています。

AWS CDKへのコントリビュート

前職まではオンプレメインのミドルウェアの経験が長く、何かあってもマニュアルを読んで試すかサポートに聞くしか答えがない状況でした。社会人になってエンジニアならいつかはOSSに貢献したりするのだろうと思いつつも数年間まったく出来てませんでした。

入社してからはAWS CDKというOSSをメインで使っているので、何とかコントリビュートしてみたいと思い何日かずっとソースやissueを眺めて出来そうな内容を探していました。

そのとき4ヶ月ぐらい放置されている簡単そうなissueがあったので、少しのコード修正とテストコードの追加でコントリビュートしました。

前職でかなり大規模なソースから関係する箇所やバグを読み解く能力を培っていたので、以前と使っている言語はまったく違ってもその経験がかなり役立ちました。

改修自体はそこまで難しい内容ではなかったのですが、英語がまったくできないのでそこが一番苦労しました。英語翻訳ツールや英文校正ツールを使って何とかコメントした記憶があります。

AWS DevDay 2020 登壇

AWS DevDay 2020の中に一般公募で査読ありのセッションがあったのでこちらに応募しました。

どうしても発表してみたかったので、自分が話せそうな内容を何とか絞り出して2本投稿しました。本当は1本目の関わっていたIoTシステム+サーバーレスの話が本命で、2本目のAWS CDKへのコントリビュートは変化球ぐらいのつもりで出しました。

落ちたかなと思った頃に急遽Twitterでのアンケートが始まって、何回かエゴサしてるとAWS CDKにコントリビュートの方が人気だったようでそちらが選ばれました。

技術的な内容について人前で30分近く喋るのは初めてでした。以前入社前にAWS初心者支部で5分LTしたことあったぐらいだったので、そんなに長く話せるか不安でかなり資料を作り込んでました。

登壇した内容は以下の記事に書いています。

スライドにはカンペは作らない代わりに4,5回ぐらい通しで一人で喋って練習してました。登壇最中は現在の状況もあってほぼ誰もいなかったので、でかいカメラに向かってひたすら30分好き勝手に喋ってる男がいただけでした。

社内のSlackでは何人か見てくれていて実況してくれてたらしく結構嬉しかったです。後で来たアンケート結果を見ると300人近くの人が見てくれていたようでした。

後、最近ですが登壇資料などを見てとても尊敬していた会社の先輩が、自分の記事を見ていただいてAWS CDKにコントリビュートする際に少し参考にしてくれていたという話を聞きました。その時は本当に嬉しくて泣きそうで入社して色々がんばってきて良かったなと心から思えました。

AWS資格6冠

四半期ごとに少しづつ目標にいれていたAWSの資格は以下の6つを取得しました。

  • AWS認定 ソリューションアーキテクト プロフェッショナル
  • AWS認定 DevOpsエンジニア プロフェッショナル
  • AWS認定 セキュリティ スペシャリティ
  • AWS認定 ソリューションアーキテクト アソシエイト
  • AWS認定 SysOps アドミニストレーター アソシエイト
  • AWS認定 デベロッパー アソシエイト

入社前は何となく「あのAWS界隈で有名なクラスメソッドの社員ならアソシエイト3種、プロ2種ぐらい全員もってんだろ」と妄想していて、お客様から見られる時自分も逆にその立場になると感じたので何とか取りました。 (SAPは先週取得してこのブログ書く時までに間に合うか微妙でしたが、アドベントカレンダーの前日の新卒の方と翌日の後輩の方が両方取得していて負けてられんと思い気合で取りました)

セキュリティスペシャリティについては、元同じPJのAWS資格12冠の方から「どの試験でもセキュリティは出るしおすすめ」という話を聞いて取得しました。今でも最初のセキュリティ設定を検討する際、役に立っています。

一旦は入社前の自分が妄想していたクラスメソッド社員の資格レベルになれたので、後は興味あればDB、MLのスペシャリティを取ろうかと思います。

アドベントカレンダー参加

社内のアドベントカレンダー以外にもServerless Advent Calendar 2020に参加しました。

記事は上の方に貼ったAWS CDKのスタック構成の話なのでリンクは割愛します。

去年も実はAWS初心者アドベントカレンダーに参加していて、今年はやっと中級者になれたかなという感じです。

おまけ:俺聞け勉強会登壇

弊社では社員が技術以外の話を15分ぐらいスライドなどを使って好き勝手に喋れる俺の話を聞け勉強会なるものがあります。そこで自分が社内でおそらく最も知見を持っているであろう髭脱毛の話をしました。如何にして耐え難きレーザーの痛みを耐えるのかその方法論(根性に近い)を話しました。

発表時はあまり反応を見る余裕なかったのですが、後から聞くと概ね好評だったみたいです。(刃牙の話ばっかりしてたからかもですが)

よく社内の昼礼では社長が「社内の何かで一番になれ」と言っています。今のところ自分が自信を持って一番だと思えるのは髭脱毛に関する知見ぐらいなので、やろうか悩んでいる方は相談に乗りますのでご一報ください。

全体の振り返り

正直入社するまでは3年後ぐらいの目標と思っていたことが1年で全部できました。クラスメソッドは社内でも精神と時の部屋と呼ばれるぐらいなのでその影響かもしれないです。

振り返ると今までの人生でも勢いで「いけるっしょ!」と思って始めて、「終わんねぇ、終わんねぇ…」と思いながら続けて、最後は何とか気合で終わらせるみたいなことを繰り返してきた人生でした。その勢いが何とか良い方向に会社や周りの方達と噛み合って助かっているのかなと思います。

意外と社内からも知られているという話も聞けて本当に色々やってて良かったなと思えました。

追記:現職への感謝

読み返していると感謝の気持ちをあまり表し切れていない気がしたので追記します。

最初にいれていいただいたPJでCI/CDやIaCツールなどを使ったモダンな開発に触れることができ、念願だったサーバーレスシステムの開発もできて非常に感謝しています。

特にチームに受け入れて指導いただけたことで、Gitの操作すらままならない状態からここまで来ることができました。特にメンターのshuntaka さん、チームの皆さんお世話になりました。

今は別のチームで仕事をしていますが、このチームで様々なことを経験したからこそ次でもやっていけると自信をもつことができました。ありがとうございます。

また弊社に対しても本当に感謝しています。自分は常々一番楽しいことをやっているときが一番仕事の成果が出せると思っていました。しかし、以前はそういうことは全く叶わず社会とはそういうものだと思って完全に諦めていました。

ところがクラスメソッドでは仕事している人が一番楽しいときに成果が出る、楽しんでできなければ別の仕事を希望しても良い(もちろん程度はあると思いますが)という話を聞きます。自分の考え方と完全に一致しているような話を聞いて衝撃を受けました。

「あのときの自分のままで良いんだ」そう思えただけで嬉しくなり、プレッシャーはありつつも自分が楽しく、人のためにもなるようなアウトプットをどんどん出していってやろうと思えました。

今まではクラスメッドという大きなバスに乗ってただけの人でした。今後はこの感謝の気持ちを返すためにも、会社が目指しているものに楽しみながら貢献していけるようがんばります。

今後

一旦昔立てた目標は終わりました。ただこれが今年だけでなく、このぐらいのアウトプットをもっと継続していきたいです。

また社外からも評価されるような多くの実績を上げている先輩達がいるので、先輩達負けないように挑戦者として新しいことにもチャレンジしていきます。

後色々がんばった結果今は1人で新PJの立ち上げ部分から入らせてもらっているので、そこに注力して得た知見をアウトプットに繋げていきます。

クラメソビギナーズの圧倒的成長 Advent Calendar 2020、次回の16日目は てんとタカハシ さんです。お楽しみに!