これまでのキャリアの中で、エンジニア面接の面接官としてかなりの数の面接に参加したので、よく聞く質問とその目的などを書きます。
※主に応募者がバックエンドエンジニアのケース想定
1. キャリアに関する質問
1-1. なぜ、転職しようと思いましたか?(中途採用の場合)
- 前職を辞めた理由がどんな内容か(ネガティブな内容か、ポジティブな内容か。
- 基本的には、前職では達成できない何かがあって、転職を決意したような内容となっているか
1-2. なぜ、エンジニアになろうと思いましたか?(新卒 or 異業種からの転職)
- エンジニアという職種をどのようなものと捉えており、仮に採用された場合に応募者が想定しているような仕事ができるか
- 応募者がどういう思考をしているか
1-3. 前職(在職中の場合は現職)では、どんな仕事をしてましたか?(中途採用の場合)
前職(在職中の場合は現職)での仕事に対する向き合い方、自分の仕事や立場、求められていることを理解しているか
1-4. 前職(在職中の場合は現職)では、どんな成果をあげましたか?(中途採用の場合)
- 採用した場合、どのような価値を提供してくれそうか
- きちんと一定程度成果を上げた上で、退職しようとしているかどうか(これ重要)
1-5. エンジニアとしてどういったキャリアプランを描いていますか?
- 採用した場合、やりたいことに対して、ミスマッチがないか
- 自己分析、キャリアプランをしっかりと考えているか
2. 技術に関する質問
応募者のスキル感に応じて、質問する内容は都度調整します
2-1. 技術選定の経験はありますか?
- 類似のサービス、ライブラリ等を総合的な観点から判断して導入した経験があるか
- コスト、機能面の比較、どういった観点で選定したか
2-2. フロントエンド、バックエンド、インフラを全て自己完結できますか?
- フルスタック開発が可能か。地力があるか
- 自身のポジション、役割にとらわれない柔軟さがあるか
- 自分のポジション内でしか業務しない消極性の懸念
2-3. プロジェクトで使用している技術に対する経験はありますか?
- 募集しているプロジェクトで使用している技術に対する経験がどの程度か(業務経験として)
- 例えば、Laravelを用いたAPI開発のプロジェクトの場合、Laravel, PHPの経験がどの程度あるか
2-4. コードベースの設計について大事にしていること、意識していることはありますか?
- ディレクトリ設計
- クラス、関数などの詳細設計
2-5. 内部品質に関して取り組んだこと、成果はありますか?
- 良いコード、悪いコードを理解できているか
- 変更容易性の高いコードを書けるか
2-6. 自動テストの知見・経験はありますか?
- この経験があるとないとで、詳細設計、実装に対するスキル感が大きく変わってくる
- 保守しやすい自動テストの作り方で気をつけていること、意識していること
2-7. 実装難易度の高い機能を開発した経験はありますか?
どれくらいのレベルを実装難易度が高いと考えているか、そう判断した根拠が妥当か
2-8. これまで、新規開発と保守の経験の比重はどれくらいですか?
バランスよくどちらも経験があるのがベスト
(他の人が作ったものを改修した経験があるか。大変な経験をしたか、どう乗り越えたか等
2-9. チーム開発の経験はありますか?
- ある程度の規模でチーム開発の経験が一定年数あるか
- 今まで一人で開発してきた、等懸念事項ないか
- コードレビュー(する側)の経験があるか。あれば、どれくらいの年数経験があるか。どのようなことを心がけてしていたか
2-10. 担当したことのある開発フェーズどこですか?
- 要件定義、設計、実装フェーズ、テスト、保守のうちどのフェーズを経験したことがあるか
- 特に要件定義、基本設計のフェーズは、アプリケーションのビジネスロジックを理解しているか。ビジネス的な観点を持っているか。言われたことができるだけの実装者になってしまっていないか。テーブル設計、各種設計書(ER図、シーケンス図などが作成できるか)事業ドメインを理解しているか
2-11. レガシーコード、スパゲッティコードのリファクタリング、改修経験はありますか?
- よくないコードに対する耐性がある程度あるか。バグやデグレに対する耐性があるか
- よくないコードに対する慎重さ、付き合い方がわかっているか
2-12. APIのパフォーマンスチューニング、速度改善の経験はありますか?
SQL、DBに対する理解度、経験がどの程度あるか
2-13. ORMの利用経験、生のSQLの経験はありますか?
どちらか片方というよりは、できれば両方あって欲しい
2-14. 一番馴染みのある言語、フレームワーク
仮に会社で使用している技術の経験がなくても、他の言語で習熟度が高ければ採用する可能性があるので、そのために聞く
2-15. 技術に対する考え方を教えてください
技術を目的にしてしまっていないか。手段として捉えることができているか
2-16. 保守性や変更容易性の強いコードを書くために意識、実践してきたこと
変更容易性を意識した詳細設計、自動テスト周りでどの程度知見、経験があるか
2-17. 最近気になる技術ありますか??
日頃から技術動向をチェックしているか
2-18.個人開発、継続している取り組みはありますか?
継続的にアウトプットする習慣があるか
3. サービス、プロダクト、ビジネス、事業ドメインの理解、関心
3-1. プロジェクトで開発、提供しているサービスがどのようなものか知っていますか?
最低限、どういったサービスかを理解しているか。自社サービスの場合、プロダクト自体に興味、関心があるか(全くないと厳しい)
4. 管理、マネジメントに関する質問
4-1. メンバー管理、ビジネスパートナー管理の経験はありますか?
自分以外のメンバーの管理をしたことがあるか。自分がプレイヤーとならないことによりチームをスケールさせるような取り組みをしたことがあるか
4-2. 要求仕様、要件定義をもとにタスク整理、工数見積もりした経験
誰かが決めてくれたタスク内容、工数などをもとに実装するだけの経験だけになってしまっていないか
5. 教育に関する質問
5-1. エンジニアの教育に関しての経験はありますか?
あれば、何名のエンジニアに対して、どのようなことをしていたのか
6. 採用に関する質問
6-1. エンジニア採用活動に貢献した経験はありますか?
- 開発チームに不足している人材、スキルを理解して、チームのスケールに貢献できているか
- エンジニアのスキル、経験を市場価値などから評価することができるスキルがあるか
- エンジニアの転職市場、採用について一定理解しているか
7. 自己分析、性格、人柄
7-1. 自身のエンジニアとしての強みはなんですか?
しっかり自己分析できているか
7-2. 周りの人からはどんな人と言われることが多いですか?
客観的な評価をもらえているか。
7-3. 業務の中で、辛いことがあった時、どうしますか?
ある程度、挫折や逆境を乗り越えた経験が欲しい
7-4. どういう環境であれば活躍できる、逆にこういう現場では活躍しにくいという点はありますか??
能力はあるのに、環境によって活かせないのは事前に避けておきたい
7-5. 上司がこういう性格だと厳しいな、みたいなのはありますか??
人間関係で退職してしまうのが、一番残念
8. そのほか
8-1. 希望給与はいくらですか?
- 希望する給与が、スキルに対して妥当か
8-2. いわゆるコミュニケーション能力
質問するわけではないが、会話の中で確認する
- 相手に配慮した会話ができるか
- 質問に対して要点を端的に伝える、説明するスキル