今月でフロントエンドエンジニアとしてキャリアをスタートしてから1年が経つので、この1年を棚卸ししながら振り返ろうと思う。(ただのポエム)
これまでのわたし
フロントエンドエンジニアになる前は、地元の企業で事務員として働いていた。電話対応やデータ入力等をやっていて、自分でエクセルの関数組んでどうにか仕事を自動化できないかと日々模索してた。(あまり求められていなかったけど)
そこからWebの世界に入り、コーダーとして1年ほどアルバイトや業務委託でお仕事する機会に恵まれ、紆余曲折あり今の業務先に昨年11月から業務委託として参画させてもらうことに。
参画する前からGitHubやプロジェクト管理しているNotionやSlackに招待していただいて、環境構築をなんとか勤務開始までにやり終えるぞ!と格闘していた。はじめてのDocker!はじめてのAWS!秘密鍵ってなんだ…大苦戦したのを今でも鮮明に覚えている__。
Slackで質問を投げると快く教えてくれたり、Zoom繋いで教えてくれたりとエンジニアチームの優しさと、強さに不安な気持ちが払拭された。
11月-12月
早速進行中のプロジェクトに参加させてもらうことに。内容はReactで新規ページを2ページ実装するというもの。デザインは既に用意されていて、フロント側をガンガン実装していくことに。
正社員に
参画してから1ヶ月、正社員に。(元々希望していた)
「思っていたより実装が早くてびっくり!」と言っていただき、良い意味で期待を裏切れたことが嬉しかった。
未経験のエンジニアを雇うことは企業にとってかなりリスクのある決断だと思うから、採用して良かった!と思ってもらえる様に出来ることを必死に頑張っていた日々だった。
初プロジェクトリリース
12月に無事(?)リリースを迎えた。
当時の私はデザインからコーディングをした経験しかなく、デザインを忠実に再現することを意識していたしそれが目的になってしまっていた(いわゆる、手段と目的がごっちゃになっていた)。それゆえ、プロジェクトに参画してから求められていることの違いに戸惑った。
プロジェクトの目的(開発の目的)を意識してデザインは適宜開発者側からもアイディアを出しながら進めていくことを学んだ。目的を見失わずプロジェクトを進めていくことはここから少しずつ学び始めた気がする(まだまだ、見失う時もある)
ライブラリにChart.js、MUIを使用していたけどこれがまた大変だった。ライブラリの仕様を理解しカスタマイズするのはかなり骨が折れる実装だったな。また、動的なコンテンツを表示するにあたりコンテンツがなかったらどのような表示にするか、反対に多かった場合に表示は崩れないか・・・など様々なことを考慮し実装する必要があることも学んだ。
新規プロダクト開発スタート
同時期に新規プロダクトの開発がスタートしていた。
技術選定から一応MTG等には参加していたものの何も意見が出せなかったな。
MVP(Minimum Viable Product)という言葉を初めて知った。具体的な仕様や要件が決まっていく流れを見れたのは、開発の全体像を知る意味で勉強になった。
新プロダクトはフロントエンドはNext.js、TypeScriptで開発することになり、やりたかったNext.jsとTypeScriptができる機会が早々に訪れて嬉しかった。プライベートでNext.jsのチュートリアルに触れたのもこの辺り。フォーム周りにReactHookFormも使った。
1月
暮れから始まった新プロダクト開発に追われていた。
チーム開発も初めてだったから、ブランチ運用やプロジェクト管理とかにも一々手こずる。(ここ最近でやっとgit rebase
使えるようになったよ!)
2月-5月
既存のプロダクトの改修。はじめてプロジェクトリーダー的な役割を任されたが撃沈。全体像が見えていないまま、見切り発車で動き出したこのプロジェクト。2週間ほどで終わる予定のものが、押しまくりで3ヶ月かかってしまった。(これがいわゆる炎上なのか!?)
Railsで実装されているクライアント部分ををNext.jsにリプレイスしつつ、機能改修を行った。
かなりインタラクティブな要素が多いUIで、仕様自体も複雑で大変だった。
社内用プロダクトだったが、関係者から要求を吸い上げ形にすることの難しさを知った。そもそも関係者が多ければ多いほど、その要求の本質を捉えることが難しくなることも知った。技術的にはZodが導入され、ちょっとプライベートでも触ったな。
結局リリースは5月。
6月-10月
1月にリリースしたプロダクトの改善や機能追加に取り組んでいた。
機能追加にあたっては、1から仕様を考えFigmaでプロトタイプを作成し実装することをやった。
どうしてこのような実装に至ったのかと問われた際に、うまく答えられない場面が多かった。自分の考えを言語化したり、記録に残したり相手に伝えることが出来ていないことを実感した。
APIの設計も行う様になったが、兎に角手探りでその場その場で調べながら進めることで精一杯だった。これでいいのか?と思いながらも、どこに自分が違和感を感じているのか説明できなかったりで苦しかった。
Jestの導入
ユニットテストを書き始めた。まだまだカバレッジ率は低いがとりあえずテストをかける環境にはなった。テストに関してもまだまだ課題で、テストケースを洗い出したり書くことに時間がかかってしまう。もう少し量をこなして、経験値貯めていきたいな。
これから頑張りたいこと
- アウトプット
- ブログを書くこと
振り返るとこの1年アウトプットができていなかったなと反省。日報を読み返していて、もう少し深く調べて記事にすれば良かった!って思うものいくつかあった。 - 個人開発
今まではフロント側だけで作れる様なものしか作って来なかったけど、次はバックエンドも含めて丸っとアプリ作りたい。
- ブログを書くこと
- インプット
読書を継続的に行う。月に1-2冊は目標にしたい(技術に関わる本)。本から学べることはそこにある内容だけではなく、自分自身の現在地も知れる機会だと思っているから読書(≒インプット)する時間は大切にしたい。
この一年は業務についていくのが必死で(今もね!)自己研磨の時間を減らしてしまっていたが、日々の振り返りをしっかり行い、深く学ぶことを意識したい。基礎を固めて裾野を広く活躍できる人間になりたい。
まとめ
振り返りをしていて、まずは1年間側で支えてくれていた家族に感謝を伝えたいと思った。家族の支えがあっての1年だったと思うし、こうして日々仕事に邁進できる環境を作ってくれているのは家族だから。感謝を忘れず、謙虚にいたいです。
フロントエンドエンジニアとしてキャリアをスタートした一年だったが、技術的進歩やトレンドの移り変わりの速さに戸惑い、こんなにもインプットとアウトプットのプレッシャーがあるのかと思い知った。(みんなすごすぎ)
それでも、ものづくりは楽しいし、できることが増えるたびに自由な気持ちになれて嬉しい🪽もっと出来ることを増やしたい!また2年目も腐らず頑張りたいと思います。👋
コメント