Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
380
BtoBプロダクト開発の現場 - forTeachers に最速で価値を届けるには -
kechol
7
3.5k
Other Decks in Programming
See All in Programming
print("Hello, World")
eddie
2
530
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
250
Navigating Dependency Injection with Metro
zacsweers
3
3.5k
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
570
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
510
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
170
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
240
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
1.3k
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
170
私の後悔をAWS DMSで解決した話
hiramax
4
210
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Thoughts on Productivity
jonyablonski
70
4.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Gamification - CAS2011
davidbonilla
81
5.4k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Cult of Friendly URLs
andyhume
79
6.6k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
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.