【月次報告】エンジニアになって21ヶ月が経ちました
こんにちは、しゅんです。エンジニアになって21ヶ月が過ぎましたので今月も振り返りをしていきます。
※エンジニアになって20ヶ月目の記事も投稿しています。お時間ございましたらご覧ください。
■エンジニアになって21ヶ月が経ちました
全体を通して
8〜12月で携わっていた案件の休日稼働の反動で2月は本業が週3稼働になっています。そのため週2休暇を使って業務委託先に出社しプロダクト開発にコミットしていました。(本業DM承認済みです。)
3月から本業は通常の稼働に戻ります。本業を持ちながらここまで業務委託にコミットできる経験は今後できないと思うのですごく不思議な感覚でした。
業務委託に関して
先月に引き続き週2で出社していました。物理的接触が増えたせいか色々と意見を求められることが増えてきており、微力ではありますが貢献できているのかなと思い素直に嬉しいです。
実装の方針決めやレビュー対応、ペアプロ(サーバーサイド出身でNext.jsに慣れていない方のサポート)など自分に振られている開発タスク以外の業務であっても依頼されたことは全て対応しています。
この背景としては、ジョイン当初に比べて余裕も出てきたのもあるのですが「自分なりに稼働できる限られた時間でどうやってプラスアルファのバリューを出していくか考えながら行動するフェーズ」に思考を切り替えたからです。
この考え方に関しては下記の記事で書いていることですね。
具体的に言うと最近作成されたteam_dev_shareチャンネルにはできるだけ「自分はどのような記事を読んでいるのか」の共有をしています。今のプロダクトの技術に沿った記事の共有や、その記事を読むことで何を得られるの詳細も添えて興味を持ってもらえるように工夫しています。
また、メンバーが投げた記事に対してレスポンスしたり、メンバーが投稿された記事が英文だった際は、日本文で内容の要約をスレッドに投げて盛り上げ役に徹するようにしました。
自分の知らない情報を収集できるメリットもある反面、直接会えないメンバーもいるので少しでも繋がりを持てる場所を作るのは大切だと思ったからです。
さらに業務委託の作業をする時はできるだけ出社して作業をするようにしています。事業成長に伴い最近入社される方も増えてきているのですがオンボーディングが不足していると思ったからです。
エンジニアの在籍人数が少ないので出社して技術的に相談・雑談できる環境を整えることがメインになります。具体的には正社員エンジニアの手が空いていない時の仕様の確認や追加機能の相談。技術的に一旦噛み砕いてリードエンジニアに伝えるクッション役としての活動になります。
現場でしかわからない温度感・ニュアンスなどを汲み取るためには、やはり直接コミュニケーションを取れるようにするのは大事だと思います。入社直後で右も左もわからないなら尚更そこのサポートは厚くすべきですよね。
また、話しかける心理的ハードルが低くなればと思い稼働中は「イヤホンをしない」を徹底しています。
どうしても本業ではリソース不足のため個人プレーが多くなったり同じ案件の人がほとんどリモートだったり、島が離れていたりするので話すことがない、かつ集中するために音楽を聴きながら作業することが当たり前でした。
業務委託の身ではありますが、オンボーディングの面で危機感を持っているので出社して「話しかけられる人・相談できる人」の選択肢として自分も加わることで新しく正社員として入られた方の不安を少しでも取り除くことができればと影ながら工夫していました。
余計なことをしているのかもしれませんが業務委託させていただいている立場を弁えながら「今の開発タスクに対してプラスアルファで何か価値を作ることができているか?貢献することができているのか?」を色々と考え、立ち回った月でした。
技術面に関して
Admin側では購入導線周りの調査・改修が多かったイメージで、逆にEC側ではデザインリニューアルを担当し、割と大きい範囲での実装に携わりました。
Admin側の実装では異常系のエラーでthrowできていない箇所の改修やFirestore Rulesがボトルネックになっているエラーの改修などが挙げられるのですが、こういった不具合は幾つも負債が連鎖していて見つけにくかったりします。
エラー改修のためのたった1行のコードを追加するために複雑なロジックをファイルを跨いで追っていくことになるですが、その渦中で実装の流れをなぞって理解することができるので勉強になりました。
ビジネス側の差し込みで責務切り分けのためのFirestoreのフィールド一括更新など冷や冷やする実装などもこなしましたが振り返ってみると自分の引き出しの増える良いタスクだったなと思います。
SEO周りの実装も任せていただきサイトマップについて知ることができました。まだまだ知らない分野がありますね。
プロダクト開発だけでなくレビュー対応も多々あるのですが、レビューをこなすたびにメンバーのPRでよかったところを拝借しながら自分がPRを作成するときの内容をアップデートさせています。(なのでPRの質を担保するためにGithubいじって統一させたい。。)
ここら辺は本業でQAにタスクを引き継ぐときに似ているなと思いました。実装の背景がわからない前提で、どのような実装を加えたのか、どのような挙動になるのか、どのようなブラウザテストをして欲しいのか、再現方法(画像や動画などの視覚情報)など可能な限りストレスにならないような情報をPRの内容に載せています。
■21ヶ月目を過ぎて思ったこと
面接で技術的な一問一答形式の質問や技術テストなどがあり、フロントの技術の根幹的なものに対して深ぼった内容が多かったため、JavaScriptの基礎的なキャッチアップをすることが多かったです。
最近は社内勉強会のためにAstroの調査だったり、案件の見積もりでリッチテキストエディタの調査・素振りをしていたこともあり、基礎の勉強から離れていたので良いきっかけになりました。
こういったJavaScriptの基礎内容はNotionにまとめていつでも振り返られるようにメモしているのですが、期間を開けて改めて振り返ってみると過去触れたユースケースと繋がって急に理解できたりするのでよかったです。
JavaScriptは時流が速いこともありますがFW・ライブラリの進化に伴って基礎的な実装・概念がラップされブラックボックスになりがちなので、要所要所で基礎に立ち返ることは意識していきたいです。
「転職するために(技術テストのために)」というわけではなく基礎を学ぶことは必ず役に立つので非同期処理やイベントループ周りやクロージャだったりJavaScriptの基礎は必ず勉強するようにしましょう。
LIFFの勉強会を開催しました
業務委託先でLINEの導入をするかも?の話を聞いたので先回りして素振りをしました。
思ったよりも学びが多く、企業が導入している数やユースケースが豊富で今後扱うかもしれないコンテンツだったので本業のエンジニア向けに勉強会を開催し情報共有をしました。
最近はNotionの拡張で作れるプレゼンテーションで発表をしています。
具体的に学びに繋がったなと思ったのがLINEログインを実装するときOAuthの流れ・概念の理解です。また、Firebase AuthとLINEログインの実装したのですがGCPコンソールの操作で沼ったので記事を作成しました。
別途、Firebaseの複合インデックス周りの記事なども作成していて技術ブログでもアウトプットができるように励んでいます。思ったよりもGCP周りは知らなかっただけで便利な機能は用意されているので勉強しがいがあります。
■最後に
重複しますが、振替休暇の消化が終わり3月からは本業で通常稼働に戻ります。
休みの間は業務委託先に出社し、プロダクト開発にコミットしていましたが自社開発のベンチャー企業でビジネス側と連携した開発について深く知ることができました。
今後は業務委託先へ時間を割くことが1月2月と比べて短くなってしまいますが引き続き貢献できるように尽力したいです。
今後も継続して月次報告をしていこうと思っています。是非今後ともよろしくお願いいたします。駆け足になりましたが最後までご覧いただきありがとうございました。