3連休のお仕事シリーズ。

 

しばらく前に、アメリカでのソフトウェアエンジニアの面接について、いかに大変か書いた。

 

 

 

今回は逆に、面接する側からの視点でも語ってみようかと。

 

 

うちの部署?の場合、ポジションに空きがでたり、増員の予算がもらえると、まずチーム内で告知がされる。「これから探すから、誰かいい人いたら知らせてねー」って。同時に、社内外にもシェアされ、さらに部署担当のリクルーターがこの求人情報を元に人材サーチする。

で、社員の紹介、他の部署からの申込み、リクルーターが持ってきたレジュメなどがまずハイヤリングマネージャに行き、そこでマネージャーがさらにレジュメを振り落とすか、次に進める。

 

2つくらい電話でのスクリーニングが通ったら、候補者にコーディングのテストをやってもらう。

そしてハイヤリングマネージャが、部署内の特定のエンジニアのメンバー(グループ)に向けて、「この候補者がコーディングテストやったから、誰かレビューして」って依頼してくる。

 

私の時とは問題の形式が違うし、ぶっちゃけアルゴリズムのああいう問題はよく知らないから、適切なフィードバックが出来るか自信なし!!!

ということで、私は全力でコーディングテストのレビューは避けてるね!!!

 

ちなみに、ああいうコーディングのテストは受験者がコードを提出するといくつものテストが自動実行されて、自動で採点されるのよね。時間内で書き終えなければ0%。何十とあるテストに全部通れば100%。ほとんどのテストに通って、エッジケースで引っかかれば90%とか。

実はレビュー依頼される時点で、その候補者の得点は分かってる。でも、完全にその自動採点の結果だけで決まるわけではない。自動採点の結果が悪くても、レビューする人の裁量で、結果が変わることも実はあるのよ。

 

実際の例では、ある候補者の自動採点の得点が0%だったらしい。じゃあ考えるまでもなく却下じゃん、って思うじゃん。

でもそのコードをレビューしたエンジニアは、提出されたコードの小さなバグを1つ見つけて、修正した。そしたら100%になった。惜しいとこまで行けてたから、その候補者はコーディングテストは合格になった。

なので、誰がレビューするかって、結構大事。

 

あ、ちなみに、コーディングテストで100%で素晴らしい!という評価をもらった人が、オンサイト面接でボロボロなことはよくある。私達は、「あれは練習問題をいっぱいやって対策とったのかなあ?答え丸暗記してたのかなあ?」と不思議に思ってる。

 

 

さて、オンサイト(今はウェブミーティングになってるけど)も同じく、面接官が結構重要。

候補者がスクリーニングもコーディングテストも全部合格して、じゃあオンサイト面接ってなった時に、ハイヤリングマネージャーが面接のパネリストを選ぶ。選ばれるのはそのハイヤリングマネージャの元ですでに働いてるメンバーが多いけど、スケジュールの都合で別のチームからも呼ばれることがある。

 

これはもうマネージャに勝手に決められてて、リクルーターから「あなたの面接のスロットは何時から何時まで」ってカレンダーにスケジュールが入れられて、基本拒否できない。

 

 

技術面接の担当が決まったら、面接で出題する問題のプールがあるから、そこから面接官が担当するカテゴリーで好きなのを選んで出題する。

 

ちなみに、アルゴリズムだかデータ構造だかを担当する時は、私はバイナリーツリー問題と連結リスト問題のうち、いつも連結リストを出題する。単に連結リストのほうが簡単だから!

でも私の同僚は、いつもバイナリーツリーを選んでるね。「バイナリーツリーくらい、ぱぱっと使えるでしょ?常識でしょう?」って言って。(いや、私は大学のアルゴリズムとデータ構造のクラス以来、使ったことあったかな??)

 

 

なぜ簡単なのを選ぶかというと、候補者に出題すると、実際に自分も一緒に問題を解くことになるからだよ!!!

候補者が行き詰まってるとヒントを出したり、間違った方向に行った場合は軌道修正しなきゃいけないのよ。質問されたら、それに答えてあげなきゃいけない。どうしてそうするのか解説もしなきゃいけない。(出来のよろしくない候補者の場合。。)

じゃあ、自分にとって簡単に解ける・説明できるやつにしたほうが楽でしょ、というわけ!

 

 

 

まあそんな感じで、45分のセッションを終わると、次は社内システムに、私の判断する合否結果とその説明を記録しないといけない。候補者はCSの知識がしっかりしてたとか危うかったとか、ヒントを正確に汲み取り問題解決に繋げたとか、この候補者ならすぐにうちの業務で使えるだろう、とか。この候補者はちょっと業務に必要な知識に欠けてるとか。

一言じゃなく、ドキュメントにすると1/3ページ分くらい?ちゃんと根拠を示さなきゃいけないから。

 

 

出来の良い候補者と、出来の悪い候補者は、フィードバックは簡単。

ちょっと悩まされるのが、というか、よくあるのが、その中間の候補者。この問題はよく出来たけど、あの問題は危うかった、とか、一応問題は解けたけど、ヘルプやヒントが必要だったとかいう場合。厳しくして、もうちょっと勉強が必要と落とすのか、もしくは、この候補者はヒントをうまく使えて理解力が高かったから今後に期待、で合格とするか。そのへんのさじ加減がちょっと難しい。(あと、採用するレベルにもよる、ジュニアレベルか、シニアレベルか、など。)

 

ちなみに、面接官同士で話し合うことは禁止されてる。第三者に影響されずに、自分で合否の判断をしないといけない。他のパネリストの結果も、自分が結果を提出するまで見えないようになってる。

でも大抵、パネリストの意見は一致してると思う。私の関わったほとんどの候補者が、全員不合格か、全員合格だったと思う。フィードバックコメントも、やっぱ共通したものが多かったと思う。

 

 

まあそんなわけで、面接受ける方も大変だけど、面接する方もちょっと大変なのよ。