Hiroki Naganuma

Overview

面接スタイルの解説

オンラインコーディングテスト(Online Assessment)

応募時の足切りでよく導入されています。LeetCode のようなアルゴリズムの問題をオンラインのコーディングエディタに書いて問題を解く形式です。 HackerRank や CodeSignal が良く使われるプラットフォームです。実際の流れとしてはリンクが送られて、いつまでに解いてねとリクルーターから言われます。

課題提出(Take-home Assignment)

応募時の事前課題として宿題を出される場合があります。こちらを採用してる企業はそこまで多くありませんが Mercari、Woven by Toyota 等は受けた際には提出を求められます。 短いもので 2-3 時間、長いと 8-10 時間程度かかります。 実装した内容を基に次の面接で何故このような実装をしたかを議論する事になります。 渡される宿題としてはテンプレートが決まってるわけではなく、自由に書いて良いパターンが多いです。

コーディング面接(Coding Interview)

ソフトウェアエンジニアとして最も重要な面接になります。GAFA の面接と言えばこちらを思い浮かべる方が多いでしょう。 コロナ前は実際に会社に訪れてこの面接が行われていましたが、今では全てオンラインで完結しています。 簡単なオンラインエディタ(codeshare.io、CodePen 等)やコーディング面接プラットフォーム(HackerRank、CodeSignal 等)を活用して面接が行われます。 応募者は面接官からコーディングの問題を渡され(文章もしくは口頭で)、要件をクリアにしていきながら問題を解いていきます。問題の形式としては

など様々な形式で出題されます。受けるポジションによっては単に関数を実装するだけでなく、UI コーディングのような問題も出されますので受けるポジションによって訓練しておいて下さい。

技術質問(Domain Knowledge Question)

典型的な技術質問は以下のようなものです。

技術質問は特定のドメイン(Broswer、React、Container、Networking)の理解度の深さと広さを評価されます。 形式的にこの面接スタイルを取る場合、一問一答の形で次々と質問されて答える事になります。 また一つ出題された場合、前に出題された問題に関連する分野を深ぼって質問されるパターンもあります。 この質問はどんな場面でも飛んでくる可能性があるので注意して下さい。 例えばコーディング面接をしている時に「ArrayList を使ってるけど ArrayList ってどんな仕組み?」など聞かれる場合があります。

システムデザイン面接(System Design Interview)

ジュニアレベルのポジションでは目にする事は少ないかもしれませんが、ミドルレベル以上では出題される傾向にあります。 日系テック企業でも Merpay、MoneyForward などで導入されている実績があります。 システムデザイン面接ではリアル世界のソフトウェアシステムの設計を面接の場で議論していきます。 ソフトウェアエンジニアとして業務でやっている内容に非常に近いものはあるため、特に対策せずとも通過できる可能性はありますが、面接の流れは必ず抑えておいた方が良いです。 大規模システムを信頼性、拡張性、保守性などを意識した設計を利点・欠点を説明しながら進めていかなればならないので、特に分散システムを構築した事がない人は注意してください。

をデザインせよなどが予想されます。Miro などのホワイトボードツールを活用して問題に取り組む場合が多いです。

行動面接(Behavioral Interview)

フトウェアエンジニアは、一見すると技術力だけを評価されて仕事していると勘違いしている人もいるでしょう。 特にシニアレベルになれば、イニシアチブを取ったり、他者への影響力を高め、優先度に応じた重要な決定を任される立場にもなってきます。 特にテック企業は Core Values(行動指針)を社員全体に共有し、これに基づいた働き方をする事を推奨しています。 Amazon の OLP(Our Leadership Principles)は世界で最も有名な Core Values の一つです。 行動面接でこの会社で働く上で相応しいマインドセットを持った人間かを判断するために行われます。 企業は面接でよく「カルチャーフィット」という言葉を使いますが、まさにこれの事を指しています。

などが挙げられます。

レジュメの深堀り(Resume Deep Dive)

Resume Deep Dive とは、候補者の過去から現在までの経歴を深く掘り下げていく面接スタイルのことです。 応募者のレジュメに書かれている過去の経験、プロジェクト、スキル、達成事項に関する質問をします。主な目的は、

日本のテック企業にもよくあるタイプの面接スタイルです。

Ref: InterviewCat はテック企業入社を目指すエンジニアのための面接対策コンテンツプラットフォーム