この記事は クラウドワークス Advent Calendar 2021 の 17 日目の記事です。
今年の夏でソフトウェアエンジニアになって 5 年が経ちました。
この5年間で取り組む課題の内容が結構変わってきたなと思ったので、学びや悩み、変化を書いてみました。
何かの参考か、酒のつまみになれば。
エンジニアになる前(大学生時代)
- 非情報系の大学生をする
- 大学の講義で Processing を扱うが、よくわからず挫折する
エンジニア歴 0 〜 1 年(インターン時代)
- Webマーケティングのベンチャーでインターンをする
- 時給は約 1,000 円
- Rails を使った社内向けツールなどを開発する
- 自分が作ったもの使って喜んでくれる快感を知る
- Progate を使って Ruby や Rails などの基礎を学ぶ
- わからないことだらけなので、web に関することをとにかくあの手この手で学ぶ
エンジニア歴 1 〜 2 年(SIer時代)
- 新卒で SIer に入社する
- 年収は 300 万円台
- プロダクト開発の新卒研修を楽しむ
- C# で業務アプリケーション開発を行う
- ベンチャーの空気感や Ruby が恋しくなり転職を考え始める
- Rails の会社を中心に転職活動を始めるが、経験が足りず全て落ちる
- Rails を使った個人サービスを作るなどし、転職に再チャレンジする
- Webの事業会社(クラウドワークス)の内定を得て承諾する
- 転職前に偉い人から「3 年後に後悔するぞ」と言われる(後悔はしなかった)
エンジニア歴 2 〜 3 年(クラウドワークス 1 年目)
- クラウドワークスに転職する
- 年収が 400 万円台に
- 開発ツールなどに全く馴染みがなくて、入社3ヶ月間はわからないことを倒したらまた新しいわからないことが現れた、を繰り返す
- 開発チームで一番技術力がないので、付いて行くためにがむしゃらに学ぶ
- JavaScript を初めてちゃんと触り、フロントエンド開発も多少慣れてくる
- 設計については基本的にミドルやシニアのエンジニアに任せっきり
- とにかく開発経験が不足していると思い、知り合い経由で副業を始める
- 副業の時給は約 3,000 円
- 副業が私生活を圧伏するようになり、半年ほどで辞める
- 小さなタスクだとある程度自走できるようになってくる
エンジニア歴 3 〜 4 年(クラウドワークス 2 年目)
- アーキテクチャ選択や設計に対して、いくつかの選択肢とそれぞれのトレードオフを考え始めるようになる
- Vue.js にハマり、チームに取り入れようとする
- シニアエンジニアの支援を受け、チームで Vue.js を使うようになる
- 以後会社での Vue.js の普及を推進する
- Vue.js ドキュメントの翻訳など、ちょっとした OSS 活動に手を出す
- チーム移動で機能開発のチームから保守系のチームに移る
- 保守に関して最初はあまり好ましく思っていなかったが、やってみるとリプレイスなどは結構好きな仕事だと知る
- 大学時代の友人に誘われ、再び副業を始める
- 内容は SaaS の新規サービスで、インフラ環境の構築や Rails + React の機能開発を行う
- 以前の反省を活かし、私生活を圧伏しないように稼働時間を自由にしてもらう
- 時給は約 4,000 円
- 与えられた課題に対して、基本的には 1 人で設計し実装できるようになってくる
エンジニア歴 4 〜 5 年(クラウドワークス 3 年目)
- エンジニアとして一人前になったと思うようになる
- チーム運営についても興味を持つようになる
- チームのエンジニアリーダーが退職して、代わりにリーダー的な役割が期待されるようになる
- うまくこなせなくて鬱になりかける
- マネージャーに相談して、担う役割を減らしてもらいなんとか持ち直す
- チームのためにも、家族のためにも常に余裕を持つことを決める
- 余裕も持つようにした分、無理したチャレンジはしないようになり学習量が減る
- 無理せず学べる範囲を模索しながら、情報系社会人大学院の講義を受講してみたりする
- 情報工学の基礎を少しちゃんと学び、計算量などを意識できるようになる
エンジニア歴 5年 〜 今(クラウドワークス 4 年目)
- 開発チームのエンジニアリーダーとして振る舞い始める
- 年収が 500 万円台に
- クラウドワークスのサービスや組織、ソースコードに関する知識が増えてきて、色々聞かれたり頼られるようになる
- 純粋な技術力だけじゃなくて、プロジェクトマネジメントやコミュニケーション能力との組み合わせで評価されていると理解する
- コロナ禍の運動不足もあり、体力が衰えてガンガン開発できなくなる
- インターネットに答えが転がっていない、組織やプロダクト固有の課題に取り組むことが増える
- ちょっと難しい課題にじっくり取り組むのも、味わい深くて嫌いじゃないと知る
- 取り組む課題に対して、時間さえあれば学習しながらなんとか解決できる気がしてくる
- 自分がいなくなっても回るチームを作ろうとし、いざ自分がいなくても回るのを目撃して少し寂しくなる
- 元いたチームから離れ、新チームの立ち上げに取り組む
- 今ここ
おまけ: これからについて
新チームで取り組むことが、自分が今までやってこなかった領域になるかもしれず、色々学びながら頑張っていく予定です。
最近のちょっとした悩みはキャリアに関することで、技術に特化したキャリアを目指してはいないけれど、開発は続けていきたい場合、どういうキャリアパスがあるんだろうかということです。新チームで色々やって行く中で見えてきたら良いな。
おわり。