$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
QuipperのWebエンジニア採用におけるコードテスト / Coding Test for ...
Search
Kazuyuki Suzuki
November 26, 2018
Programming
5
11k
QuipperのWebエンジニア採用におけるコードテスト / Coding Test for Web Dev Candidates at Quipper
GO GLOBAL meetup #1 でLTした内容です。
https://go-global.connpass.com/event/108021/
Kazuyuki Suzuki
November 26, 2018
Tweet
Share
More Decks by Kazuyuki Suzuki
See All by Kazuyuki Suzuki
ProductZine Day 2025 Assuredのプロダクトディスカバリー
kechol
0
510
BtoBプロダクト開発の現場 - forTeachers に最速で価値を届けるには -
kechol
7
3.6k
Other Decks in Programming
See All in Programming
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
170
WebRTC と Rust と8K 60fps
tnoho
2
1.9k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.2k
ZOZOにおけるAI活用の現在 ~モバイルアプリ開発でのAI活用状況と事例~
zozotech
PRO
8
4.1k
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
570
俺流レスポンシブコーディング 2025
tak_dcxi
13
7.7k
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
110
スタートアップを支える技術戦略と組織づくり
pospome
8
15k
Module Harmony
petamoriken
2
610
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
390
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
230
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.2k
Into the Great Unknown - MozCon
thekraken
40
2.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
How GitHub (no longer) Works
holman
316
140k
Practical Orchestrator
shlominoach
190
11k
Automating Front-end Workflow
addyosmani
1371
200k
Writing Fast Ruby
sferik
630
62k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Producing Creativity
orderedlist
PRO
348
40k
Git: the NoSQL Database
bkeepers
PRO
432
66k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Transcript
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol QuipperのWebエンジニア採用におけるコードテスト Software Engineer at Quipper 鈴木
和幸 @kechol GO GLOBAL meetup #1
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol Quipper という会社について ➔ 教育系の(元)スタートアップ ◆ 現在はリクルートマーケティングパートナーズの子会社
➔ Quipper とスタディサプリというプロダクトを展開 ◆ サーバサイドは Ruby on Rails 、フロントエンドは React/Redux ➔ インドネシア、フィリピン、メキシコ、日本の4つの国に拠点がある ◆ 採用は各拠点でそれぞれ行っている ◆ プロダクトチーム全体で60名ほどの規模
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol 今日のお話 https://quipper.hatenablog.com/entry/2018/10/09/coding_test ブログに書いた話を 改めてご紹介させてく ださい。
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol Web エンジニアの基本的な採用プロセス 1. 書類のスクリーニング 2. 一次面接
3. コードテスト 4. 二次面接 5. VP of Engineering 面接 6. オファー面談
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol 現在行っているコードテスト ➔ 1問あたり2時間程度で解ける問 題を3問程度解いてもらう ◆ テストがありTODOが明確
◆ 1ファイルの編集で完結 ➔ 候補者には自宅で解いてもらい、 解答を送ってもらう形式 ➔ 言語はRuby/JavaScript ◆ 未経験でもキャッチアップで きるレベルのもの ※実際の問題ではありません
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol こういう形式になった経緯 ➔ もともとは1つのアプリケーションを丸ごと作ってもらう形式だった ◆ コードテストのプロセスだけで2週間かかっていた ◆
提出されるコードが様々で合否判定が難しいものもあった ➔ 結果、採用プロセスの中でコードテストでの落ち率が高かった ◆ コードテストに時間がかかるため、選考中に他社に決まってしまう • そもそもコードテストを実施している会社が国内では少ない ◆ コードテストをそもそも提出してもらえない ◆ 偽陽性を避けるため合否判定が保守的になる
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol 譲ったところ、譲れなかったところ ➔ そもそもコードテストはなくさない ◆ 候補者がどんなコードを書くのかを面接で聞き出すことは難しい ◆
書いたコードを公開していない候補者も多い ➔ あくまで最低限のレベルを担保することに集中する ◆ 最先端の技術やFWレベルのマイナーな知識は問わない ◆ (現時点では)判定が曖昧になりやすい設計に関する知識を問わない ➔ 1つのアプリケーションを作ってもらうことはしない ◆ 要素技術(DB、API、フロントエンド等)を分解してそれぞれを問う ◆ テストではより軽いライブラリ/FWを採用する場合もある
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol なぜ(今のところ)純粋なアルゴリズム問題ではないのか ➔ 日本ではまだメジャーな手段と言えない ◆ 欧米と違い、ソフトウェアエンジニアが必ずしもCSの学位を持っていること を前提としていない
◆ 訓練が必要な技能であるが、日本企業がそうした問題を出すことがほとん どないため、候補者が訓練を積んでいない ➔ 我々がサービスを作る上でまだボトルネックになっていない ◆ 現時点ではDBのアクセス数やキャッシュ戦略がシステムのパフォーマンス に対して支配的なので、そちらをまず確認したい ◆ 未経験の新卒を受け入れられるほど成熟したエンジニア組織ではない
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol どのように作っていったのか(1) ➔ コードテストで見たい要素をスプレッドシートにまとめた ◆ 同時にコードテストで担保できない部分をどうするかを議論
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol どのように作っていったのか(2) ➔ 問題のたたき台を作り、社内のエンジニアのフィードバックを集めた ◆ 適切な難易度かどうか(難しすぎないか、必要な時間は適切か) ◆
想定していない解答がないか(意図しない簡単な解き方がないか等)
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol どのように運用/レビューしているのか ➔ 提出があったら GitHub のリポジトリ上に Pull
Request を作ってレビュー ◆ 環境の差が出ないように Dockerfile をテストに含めている ◆ 普段のワークフロー(自動テスト/PRへのコメント)がやりやすい ◆ 採用メンバーのエンジニアがモブレビュー ➔ Codility や track などのオンラインテストはまだ利用していない ◆ 正直まだちゃんと使ってみた上で判断ができていない ◆ GUIを含むコードテストで CodePen を使って提出してもらうのはレビューし やすいかもしれない
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol 導入してみた結果 ➔ 狙った通り提出までの時間が大幅に短縮 ➔ スクリーニングプロセスとしては機能していそう ◆
コードテストで見たい部分の要件を満たしているかに加えて、書いて もらったコードの品質はどうかも見ている ➔ とはいえまだ調整やメンテナンスは必要 ◆ まだ簡単すぎるのではという疑念を捨てきれない ◆ 継続的なライブラリのアップデート ➔ コードテスト後の二次面接(技術面接)も合わせてまだまだ議論中 ◆ コードテストを踏まえてどういう観点の質問をすべきか
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol (余談)一方、インドネシアでは ➔ 1アプリケーションを丸ごと作る構成を変えずに実施 ◆ 現地企業はほとんどがコードテストを実施しており、日本のようにコード テストの実施が採用上の不利になることがない
◆ 過去、他の候補者のコードを使ってチートしてきた候補者がおり、それな りの量のコードを書いて欲しい ➔ アプリケーションの実装の達成レベルを段階的に定義 ◆ コードテストの結果でオファーが変わる ◆ どのレベルのテストを送るかは面接等で事前に判断
#go_global QuipperのWebエンジニア採用におけるコードテスト by @kechol QuipperのWebエンジニア採用におけるコードテスト Software Engineer at Quipper 鈴木
和幸 @kechol GO GLOBAL meetup #1 Fin.