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
11k
5
Share
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
More Decks by Kazuyuki Suzuki
See All by Kazuyuki Suzuki
ProductZine Day 2025 Assuredのプロダクトディスカバリー
kechol
0
700
BtoBプロダクト開発の現場 - forTeachers に最速で価値を届けるには -
kechol
7
3.7k
Other Decks in Programming
See All in Programming
Rethinking API Platform Filters
vinceamstoutz
0
11k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
9
5.6k
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
3
520
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
720
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
190
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
4
860
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
300
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
250
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
320
「速くなった気がする」をデータで疑う
senleaf24
0
160
存在論的プログラミング: 時間と存在を記述する
koriym
5
860
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
99
Evolving SEO for Evolving Search Engines
ryanjones
0
180
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
27
3.4k
Designing Experiences People Love
moore
143
24k
sira's awesome portfolio website redesign presentation
elsirapls
0
210
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
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.