見出し画像

【ソフトウェアエンジニア】海外転職・技術面談対策・保存版

本記事は、英国でソフトウェアエンジニアとして転職活動を行った際の経験をもとに書き起こしました。2021 年 10 月に、丸四年働いた Cookpad を退職し、同年 11 月からは、グラフデータベースを作っている Neo4j に入社しました。転職活動では、1ヶ月半費やし、13 社に CV (レジュメまたは英文履歴書)を提出し、結果 4 社からオファーを獲得しました。

本記事は、特に技術面談対策にスポットを当てた記事です。自分自身が Senior Site Reliability Engineer として面接をする側に回ったこともありますし、今回の転職活動を通じて、スタートアップから大企業まで数多くの面談を経験しました。業種もクラウドプラットフォームを提供する会社から Fintech や HR などの事業会社まで様々です。その経験を活かして、本記事は書かれました。これから技術面談を受ける予定がある日本のソフトウェアエンジニアが対象読者です。

転職活動全体を通した詳細なタイムラインについては、以下の別記事をご覧ください。

自己紹介

Neo4j で Senior Site Reliability Engineer (SRE) として、フルマネージドグラフデータベースである Neo4j Aura DB の Reliability Engineering に従事。初期のキャリアとしては、新卒でリクルートにソフトウェアエンジニアとして入社した後、SaaS 事業を営むベンチャー企業に転職し、シード期における開発プロセスを経験。2017 年 には Cookpad Japan に中途入社し、広告事業チームで Ruby/Go/AWS を利用した配信システムログ基盤の開発に従事。GraphQL Asia 2019 登壇Group Lead/Tech Lead を経験した後、2020 年 3 月に Cookpad UK に転籍。Senior Site Reliability Engineer として、ログ基盤の構築や Apache Kafka の運用に従事。その他詳細は LinkedIn にて。


技術面談の方式

タイムライン編でも書いた通り、今回の転職活動を通して経験した技術面談を分類すると、以下のカテゴリーに分類できます。

技術面談の方式一覧

ライブコーディングとは、一般に広く知られるコーディングテストのことです。世間一般に対策方法も広く共有され、LeetCode のように実際に試験練習を行えるサービスもあります。おそらく一番対策を立てやすい面談形式でしょう。

宿題方式とは、課題を事前にメールで渡され、数時間以内に解いて git repository として提出する方式です。課題を提出しただけで判断される場合もあれば、その後に面談を設定され、提出した課題について質疑応答を行なったり、ペアプログラミングを行なって面接官と一緒にリファクタリングをしていったりする方式もあります。

アーキテクチャ議論方式では、システムをどのようにスケールさせるか?可用性をどう担保するか?過去にそのようなシステムを作ったことはあるか?といった Open ended な質問を問われます。エンジニアとしての総合力を問われる試験でしょう。対策が立てづらく、いかに実際の業務で設計に携わってきたかどうかが問われます。

一問一答パネルインタビュー では、 Linux や HTTP, Netoworking から AWS/GCP の各サービスの基本的な質問をぶっ通しで 50 問近くただひたすら聞かれます。難易度が低めの問題を大量に解かせることで足切りをする、センター試験のような立ち位置でしょう。一つ一つはジュニアレベルエンジニアでも答えられるような問題でも、流石に 30 分間も延々と幅広いトピックについて聞かれ続けると、漏れや不正解も出てくるため、間違っても焦らずにペースを乱さないスタンスも求められます。

ライブシステムデバッグでは、ライブコーディングの障害対応版です。一例としては、意図的に壊れた状態のプロセスが走っている Ubuntu server に SSH でログインし、tmux でセッションを共有しながら、バグを特定し直していきます。本番の障害対応と似ているかもしれません。しかし、似て非なる部分としては、普段使い慣れているツールが使えない点です。また、実際のデバッグスキルを重要視するのか、それともコミュニケーションを重要視するのかは会社によって異なっています。

本記事では、それぞれの形式についてどのように対策を立てたら良いかについて書いています。また、面談中に発生したハプニングや、小ネタについても、書ける範囲で公開しています。

前提

本記事の内容は、Senior レベルで、かつ Site Reliability Engineer や DevOps Engineer または Platform Engineer として募集されている職種の技術面談におけるアドバイスがメインとなっています。殆どが Software Engineer の面接にも応用できる内容だと思いますが、おそらく最後の「ライブシステムデバッグ」については Site Reliability Engineer 限定でしょう。また、Seniority が異なればそれによって求められるレベルも異なる点には注意してください。

ここから先は

9,645字 / 12画像

¥ 980

この記事が気に入ったらサポートをしてみませんか?