見出し画像

初めてのソフトウェアエンジニア転職活動の備忘録 2022

来月6月から、ソフトウェアエンジニアとして、フリーランスからIT企業の正社員に転職します。

ぼんやりと「転職をしようかな」と考えはじめたのが、昨年の12月ごろ。
とはいえ、過去一度も転職をしたことがなく、ましてや就職すらしたことがなかったので、右も左も分からぬ状態での転職活動となりました。

転職活動のやりかたは人それぞれだと思いますが、個人的にやっておくべきだったことや、やっておいてよかったことなど、さまざまな知見が得られたので、備忘録を残します。
ソフトウェアエンジニアとして転職や就職を考えている方の参考になれば嬉しいです。

なぜ就職しようと思ったのか

「いつか就職しよう」と思いつつも、大学卒業してからフリーランスとしての仕事がそれなりに忙しく、ずるずるフリーランス8年目に突入してしまいました。

30歳になったとき、「30代になっても一度も会社員やらなかったら一生フリーランスだな」と自分の将来を不安に思い、就職を決断しました。

ちょうどその頃、5年間ほどメインで働いていたベンチャー企業で、開発チームが一時解散しそうになっていた(その後解散した)ので、「もし企業で働きたいなら、この時期を逃すともうなさそう」と、最終列車に飛び乗るような気持ちで転職をはじめました。

希望条件

わたしは、実務経験 5 年ほどの中堅のソフトウェアエンジニアです。
前職は Web クリエイターで、こちらは2年 (+ 学生時代のアルバイト) ほど経験しました。
複業でタレント活動や、プロジェクトマネージャー、Web ライターなどの仕事もしています。

転職の希望条件としては、以下のようなものを考えていました。

  • フレックスタイム制

  • 副業 OK

  • ゆるリモート

  • 女性が働きやすい環境が整っている

給与はちょっとあがるといいなくらいで、どちらかというと福利厚生を重要視していました。

しかし、こうした福利厚生面の条件はググっても情報が出てきにくく、希望企業選定にはかなり苦労しました。

転職意思を友人・知人に伝えてみる

自分で調べることに限界を感じたので、転職することを友人・知人に匂わせまくりました。

マッチしそうな会社を知っている人がいたら、カジュアル面談を設定してもらったり、リファラルしてもらったりしました。

加えて、この時期は、リファラルだけではなく、メールで会社の人事の方から「カジュアル面談してみませんか」と問い合わせをいただくことがあれば、積極的にカジュアル面談を設定していただいていました。

オンラインカジュアル面談は、気軽に会社の説明や雰囲気、開発スタイルを聞けて良かったです!(最近は  Meety みたいなカジュアル面談用のプラットフォームもありますね。)

転職活動初期に受けていたカジュアル面談は、受動的に会社説明を聞くだけだったのですが、この機会に「具体的にどういうプロジェクトがあって、チームメンバーがどう働いているのか」について聞いておいたほうが良かったと反省しました。面接に移行すると、自分の経験やスキルの品定めに充てられる時間が長く、意外とそういうことを聞く時間が少なくなっていきます。

また、カジュアル面談だと、給与の話は聞き出しづらい雰囲気があり、この点のヒヤリングはあまり期待できないように感じました。
そもそもソフトウェアエンジニアの場合、技術レベルによって同じ会社内でも給与差が大きく、一概にいくらと言えないのかもしれません。しかし、ある程度大きい企業なら、OpenWork などの転職サイトを参考にしたりして、その企業の給与のレンジくらいは知っておくと後々の採用フローで役立つと思います。

あと、ベンチャーにその傾向が強いように感じるのですが、ちょっと合わなそうな会社でも、カジュアル面談を受けると面接も受けざるをえないような圧をちょっと感じるので、圧に負けないよう、自分の意思は強めに持っておきたいです。

ポイント
・たくさんカジュアル面談を受けて、会社の雰囲気とか開発体制、福利厚生を聞き出す。
・カジュアル面談担当者が「どんなプロジェクトを、どんな体制で、どうやって進めているのか」について、カジュアル面談で予め聞いておく。面接に移行すると、意外に質問時間が短くなる。
・この時点で LinkedIn のアカウントをつくっておくと後々便利。カジュアル面談でお会いした人事の方と繋がっておくのも◎。
・ベンチャー企業だとまれにカジュアル面談で内定がでることも。

応募

A社はA社人事からのスカウトメール経由で、B社、C社、D社は友人からのリファラルで応募しました。
人材会社は使っていません。(転職活動不慣れすぎて、使うという発想がなかった)

書類提出

A社、B社、C社では、履歴書や業務経歴書が必要でした。

数年前、履歴書兼職務経歴書を英語で書いたことがあり、それを元に Google ドキュメントで日本語版・英語版をつくりました。以前書いたものは単なる経歴の羅列に近かったのですが、知人にレビューをもらい、「もうすこし数字を増やして具体性をもたせたほうが良い」「具体的に各仕事でどんな活躍をしてきたか書いたほうが良い」などのアドバイスを受け、大幅に加筆しました。具体的に書いておくと、面接時に職務経歴を話すときにもすごく役に立ちます。

時間があれば、TOEIC などの英語の資格をとっておくと、英語を使いそうな会社や大企業では良い印象を与えられそうです。(英語レベルに関しては、A社とB社で聞かれました。)

ポイント
・履歴書や職務経歴書は、ただの経歴の羅列ではなく、数字などを交えてどんな仕事をしてきたか具体的に書く。

技術課題

主にバックエンドのソフトウェアエンジニアのポジションを受けていたので、A社、B社、D社で技術課題がありました。D社は書類なしで技術課題から採用フローが始まりました。

だいたいどこも期限は1週間くらいで、課題内容は、ライブラリをつくったり、外部APIをたたくアプリケーションを書いたり、サービスのDB設計を行ったり、会社によってかなり違いました。

課題量は、課題期間がそれぞれの会社で少しずつずれていたこともあり、在職中も土日休みを利用して行えるくらいでした。在職中なら、平日はあまり時間がとれないと思うので、休日を挟むように、かつ絶対にそれぞれの会社の課題期間がかぶらないように調整したほうが良いと思います。

A社、B社の技術課題では、ふだん書き慣れているプログラミング言語が選択できなかったので、休日1日かけて新しい言語を学び、その言語で書きました。だいたいどちらもドキュメントやテスト込みで2日くらいで終わる量でした。

技術課題は、ドキュメントを書いたり、テストケースのカバレッジと網羅性を意識したり、公式コードスタイルに準じたり、データをDIできるようにしたり、設定は環境変数ファイルに分離したり、適宜コメントをいれたり、慣れない言語ながら、基本に準じて丁寧に書きました。

それが功を奏したのか、A社からはオファー時の待遇を良くしていただきました。
正直、技術課題は足切りに使われる程度だと思っていたのですが、それなりに重く見る会社もあるようです。この会社ではどちらかと言うと、アルゴリズムの優秀さよりも、同僚への配慮(適切なコメント量やドキュメントの有無)に重点が置かれ、評価されているように感じました。

B社は、技術課題は単純な足切りのように感じました。

ちなみに、技術課題では、一番業務で慣れているはずの領域である DB 設計の課題を提出したD社は落ちました(泣)

ポイント
・複数社受ける場合は、絶対に時期が被らないようにしておく。課題期間は休日も開けておくと◎。
・技術課題は、「共に働けるか」を見るものなので、第三者向けに読みやすいように、ドキュメントも含めて丁寧に書いたほうが良さそう。

面接

面接はすべてオンラインでした。カジュアル面談を含めると、A社4回、B社8回、C社4回の面接がありました。A社、B社は2つの部署の面接を受けました。

面接は相手の会社の業務時間内に組まれることが多いので、これだけ面接回数が多いと、時間捻出が大変です。定時が決まってる社会人の方はどうしているんだろう。

面接では、部署やチーム、開発アプリケーションについての説明をうかがったり、職務経歴書に沿って自己紹介をしたり、自分が現在所属するチームの開発フローについてや、いままで技術的に挑戦したことについて、開発に携わったアプリケーションのシステム構成についてなどが多く聞かれました。

また、技術力は技術課題だけで図られるのではなく、面接でも技術的な質問をされることが多いので、実務だけやっていると忘れがちな知識を重点的に、事前に学びなおしたほうが良かったなと反省しました。

わたしの面接でも、設計や計算量にまつわる問題を出されたり、ペアプロしたりすることもあり、手に汗を握りました。なんにも対策してなかった。
面接の結果は大きく待遇に響くので、対策しておいたほうがいいです。わたしも来世ではちゃんとします。

対策でこれやるといいらしい

あと、C社の採用フローでは、SPIを受けました。やったことなかったし、対策も一切していなかったので、こちらもたぶん成績悪かったと思います。(ソフトウェアエンジニアポジションなので、あんま重要視されていないのかもしれませんが)

また、面接が多い会社に関しては、開発プロセスやスタイル、コードレビュー体制、テストフローなど、細かいところまで聞けたので、働くイメージが持ちやすかったのですが、面接回数少ないところはそこまで聞くことができなかったので、もう少し積極的にそうした質問をすればよかったと後悔しています。オファー後に改めて面談を設定していただきました。

ポイント
・受ける会社は、面接の時間が確保できそうな会社数に留めておく。
・意外と面接フローが長い会社もあるので、スケジューリングする際は注意が必要。
・面接では、どんな仕事に携わったのか具体的に聞かれるので、事前にきちんと情報をまとめておくと、面接がスムーズに進む。
・アルゴリズムや計算量については、本で復習しておいたほうが良い。
・大抵、面接の終盤に「質問は何かありますか?」と聞かれるので、働き方やチームについては、具体的に聞いておいた方が良い。

リファレンスチェック


B社では、最終面接の選考と並行して、同僚や上司によるリファレンスチェックの提出も必要でした。リファレンスチェックとは、面接や書類で述べてきた経歴や実績が正しいのか、第三者から裏取りするためのものです。

わたしはそのとき主に働いていた会社の取締役と同僚にお願いしました。
なに書かれたかは分かりませんが、「誉めておいたから、ご飯奢ってね!」って言われました。

ポイント
・やっぱり同僚や上司とは普段から良好な関係を築いておこう!
・現職が難しければ、前職の同僚や大学時代の教授に頼んでもいいみたい。

オファー

ここから先は

2,521字

¥ 100

いただいたサポートは次の企みのための資金として大切に使わせていただきます。ありがとうございます。