エンジニア2年生の活動を振り返ろう

# はじめに

[クラウドワークス Advent Calendar 2022](https://qiita.com/advent-calendar/2022/crowdworks "クラウドワークス Advent Calendar 2022") の8日目を担当させていただきます、エンジニアの @komaitaira です！
2022年10月より[クラウドワークス](https://crowdworks.jp/ "クラウドワークス")へ入社し、日々の業務に奮闘する毎日を送っています。

私事ですが、2020年12月からエンジニアとして働き始め、つい先日ちょうど丸2年が経ちました。
ちょうどいい機会ということで、エンジニア2年生としての一年間の活動について振り返ろうと思い記事にしてみました。※主にクラウドワークスへ入社する前の話が多いです。
自分と同じ若手エンジニア、これからエンジニアを目指そうと志す方にとって少しでも参考になれば幸いです。

# 社内で一番社歴が長いエンジニアになりました

初っ端から違和感を感じたあなた、正解です。

冒頭でお話ししましたが、自分はつい先日エンジニア歴2年を経過したばかりのピヨピヨエンジニアです。
しかしながらエンジニアとしての道をスタートした前職の会社にて1年が経とうとした頃、数少ないシニアエンジニアが退職し、また一人とエンジニアが退職し、入社して1年半が経過する頃には社内で一番社歴が長いエンジニアになりました。（カオスすぎる）

と言っても、元々人数が決して多くはないベンチャー企業だったのと、技術顧問の方や業務委託のエンジニアもいらっしゃったので何かあれば相談できる環境ではありました。

また、正社員の中で一番システムの内部構成に詳しく~~なってしまった~~ なったこともあり、サービスの実装作業から、全然詳しくないインフラの調査・改修や、新規事業に伴った社外とのミーティング、これから入社するエンジニアへのオンボーディングなど、基本的には自分で対応したり、自分と似たような経歴のエンジニアで行っていました。

とはいえサービス立ち上げ時からいた訳ではないので、分からないことがあるのが当たり前で、毎日のように「これはなんだ」から始まり、ソフトウェア考古学に触れていたことを覚えています。


## 日次バッチ、日付越えそうなんだが事件

限られた人数・少ない知識での仕事はヒリつくような毎日で、一番ヒリついた出来事は
**毎日深夜1時から開始する日次のバッチ処理が、クライアントの増加に比例してデータ量が増加したことにより、処理完了までに20時間ほどかかるようになり、これ以上処理時間が長引くと翌日の処理開始時間に差し掛かってしまう**
という、なんとも想像したくない恐ろしい出来事でした。（笑えない）

こちらソースコードを愚直に追っていき該当のDBを確認したところ、一部不要なデータがサービス開始時から今日に至るまで削除されることなく大量に残っていたことが原因でした。
その為、まずは不要データの削除と、一定期間経過したデータに関してはAWS Fargate経由でS3にCSVファイルとしてアーカイブする処理を追加した上で、アーカイブした分はDBから削除する対応をしました。
なかなか大変でしたが、心の中の安西先生に感謝です。


## 実感したこと

そんなこんなでやってきましたが、人的リソースが限られた環境においては、分からないことがあっても都度自分で調べて自分でなんとかしてやるという気概が必要だと思いました。
実感したこととしては、
- **ドキュメントはちゃんと残し、変更があったら都度更新しよう。その結論に至った経緯や理由があれば尚良し。**


- **割れ窓理論と一緒で、荒れたソースコードを放置するとどんどん荒野になっていく。「後で綺麗にする」の"後で"は一生やってこない。**


- **基本的に変更は起こり得る。変更を前提とした実装を意識しよう。**

という感じです。
いずれも自分だけではなく、他者にも影響するものなので今後も意識していきたいですね。


# 資格を取得しました

業務ではVanillaJSでのフロントエンド開発が多かったのもあり、せっかくなら目に見える資格が欲しいと考え、[HTML5プロフェッショナル認定試験](https://html5exam.jp/?gclid=CjwKCAiAhKycBhAQEiwAgf19eurrKwKUbTlZuTriEQrlqsi0ItPbusBLtFfpCZHUyMUrO2S_whN81xoCACAQAvD_BwE "HTML5プロフェッショナル認定試験")の取得に挑戦しました。

以下概要になります。
- **[HTML5プロフェッショナル認定 レベル1](https://html5exam.jp/outline/lv1.html "HTML5プロフェッショナル認定 レベル1")**
HTML5(HTML Standard)、CSS3などの最新のマークアップを使ってマルチデバイスに対応したWebコンテンツをデザイン・制作できる。

- **[HTML5プロフェッショナル認定 レベル2](https://html5exam.jp/outline/lv2.html "HTML5プロフェッショナル認定 レベル2")**
JavaScriptなどの最新のマークアップを使ってシステム間連携や最新のマルチメディア技術に対応したWebアプリケーションや動的Webコンテンツの開発・設計ができる。

それぞれ1ヶ月、2ヶ月ほどの勉強期間で取得することができました。
ただし、試験の出題方法として該当の選択肢を「一つ選択しなさい」ではなく、「すべて選択しなさい」という鬼の出題形式も多々あったため、レベル1、レベル2のいずれも合格点ギリギリでした笑
また、単純なマークアップについてだけでなく、WebWorkersやServiceWorkers、WebSocketなどのWeb標準APIについても試験範囲であり、個人的にはそこまで深い知識がなかった分野でもあったので楽しみながら学習することができました。

# メンターに挑戦しました

また、僭越ながらプログラミングスクールのメンターのお話をいただき、誰かに教えるということにも挑戦しました。エンジニアとしての経験が浅い中でのお話だったため、自分に務まるかどうか不安だったこともあり、お受けしようか迷いましたが、思い切ってやってみようと思い挑戦することにしました。
お受けした理由としては、主に下記2点です。
- **自分自身がプログラミングスクールで学んでエンジニアになった経験から、何か分からないことがあった時に質問することになるメンターさんには、受講当時大変お世話になった経験があり、自分も同じようにエンジニアを目指す方達の力になれるととても嬉しいと思ったこと**


- **今までの社会人経験で直属の後輩らしい存在がいたことが少なかったこともあり、教育・育成の経験をもっと積みたいと思ったこと**

実際にやってみて、まだまだ足りない点は多々あると感じつつも、問題を解決できた際にメンティーさんから感謝の言葉をいただけると嬉しいですし、教えることで自分の知識の復習にもなります。
また、物事をわかりやすく伝える練習にもなりますので、自分自身のスキルアップにも繋がっていると実感しています。


# 転職しました
エンジニアとして働くことに慣れて1年半ほど経った頃、ある程度の仕事は自力でできるようになってきたと感じるようになりました。一方で、以下のような悩みも生まれてきました。
- **直面してきた問題はなんとかこなしてきたが、我流になってしまってないか？**

- **我流になってしまっている状況でこの環境が2年3年と続いたとしたら、エンジニアとして正しいスキルが身につかないまま年数だけ重ねてしまうことにならないか？**

- **他の業界の開発もやってみたい**

自分としては、周りの方にも恵まれ、人間関係で悩むこともなかったので会社の居心地自体は良かったです。
とはいえ、2年目になって成長スピードの鈍化も感じましたし、もう少し自分へ負荷をかけた方がいいのではとも思っていたため、意を決して転職活動に踏み切りました。
まずは**転職活動の軸=自分が重視すること**を洗い出し、以下の5点に定めました。

- *プロダクトが解決する課題に共感できること*
- *常にトレンドを追いながら、サービスに合った技術を取り入れる考えを持ち、必要ならば採用しているという実績があること*
- *モダンフロントエンド開発に広く携わることができること*
- *あわよくばバックエンドも触れること*
- *自立した人で構成されたチームかつ協業して仕事ができること*

そして面接を進めたのち、いくつかの候補の中から一番自分の転職活動の軸に合致していると感じたクラウドワークスの内定をお受けしました。
また転職活動の軸の中でも特に**プロダクトが解決する課題に共感**しました。
ここからは自論になるのでこういう考えの人もいるんだな程度に思って欲しいのですが、現代の一般的な会社の社員として働くことを想定すると、大体20歳前後から約40年働くことになるかと思います。（定年後再雇用制度もあるため、もう少し伸びると思いますが）
40年という年月はなかなか長い年月ですが、40年仕事をする上で働くためのモチベーションは大変大事だと思っています。

個人的には楽しいと思える仕事をしたいですし、楽しいと感じるのであれば、大変だけど好きだから頑張れるという働くための原動力にもつながると思っています。
今後、副業をしたい方であったり、定年を迎えたがまだ働きたいと考えている方など、様々な方のために働き方というものはこれまで以上に多様化していくと思いますが、その中で自分が好きなこと、得意なことを仕事として働いていく基盤を作るのは、大変社会的意義の高いものだと感じていますし、技術者として質の高いサービスを提供できるように精進していきたいと思っています。


# LTに参加しました
また先日、とあるイベントで転職活動LTが開催され、その中の登壇者の一人として今回の転職活動について発表してきました！
先述した内容も多少記載されてますが、良かったら覗いていってください。

https://speakerdeck.com/komaitaira/toaru2nian-mu-enzinianozhuan-zhi-ti-yan-ji

LTで発表することは初めてだったので最初少し緊張しましたが、早めに準備できていたこともありスムーズに進めることができました。
自分が発表する際はなるべくゆっくりハキハキ話すなど、聞き手が聞きやすいように意識して発表しましたが、実際にそのLTが盛り上がるには聞き手の聞き方もすごく大切だと感じました。
今回はオンラインでの開催でしたので、slackのスタンプをたくさん押して反応してあげるとか、発表者の発言に関して感想や疑問を気軽に投稿するなど、、
自分が話し手の時もslackの動きを見て安心して発表できましたので、こういうイベントはみんなで作り上げるものなのだと改めて感じました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629581/3010e1f0-2867-f2a8-83fc-a297f1104cbd.png" width="425">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/629581/fce223f5-e4af-a044-c0ce-4ef20ae99579.png" width="193">


# おわりに
振り返ると、エンジニア2年生は本業で奮闘しつつ、更なる成長を求めて転職活動をし、メンターやLTなど今まで経験ないことにも挑戦した年でした。
前職も良い会社でしたが、クラウドワークスもとてもいい会社です。
クラウドワークスに入社してからの振り返りはまた別の機会にやりたいと思います。
エンジニア3年生として責任も大きくなってくると思いますが、個人とチーム、そして組織としても大きく成長できるように引き続き頑張っていこうと思います。

最後まで読んでいただきありがとうございました！

クラウドワークスでは一緒に働く仲間を募集しています！
ご興味ある方はぜひご応募ください！

https://crowdworks.co.jp/careers/

そして最後に、クラウドワークス Advent Calendar 9日目はクラウドテックエンジニア @uichi さんの記事です！
お楽しみに！