У 2015-му тест з динамічного програмування на дошці ще мав сенс. У 2026-му — вже ні.
Кандидат з підпискою на один із трьох популярних AI-асистентів розвʼязує типову leetcode-задачу за 40 секунд. Без підписки — за 4 хвилини. Без асистента, але з досвідом — за 8. Проблема не в тому, що хтось списує. Проблема в тому, що сигнал перестав корелювати з тим, що ми насправді хочемо знайти.
Що ми хочемо знайти
Коли менеджер наймає інженера, він не шукає людину, яка памʼятає, як виглядає reverse-linked-list ітеративно. Він шукає людину, яка:
- читає чужий код і розуміє, навіщо він написаний саме так;
- не ламає інваріанти, яких вона не помічає;
- пише тести, що перевіряють поведінку, а не реалізацію;
- формулює комітами зрозумілий наратив змін;
- адекватно реагує на ревʼю — не захищається і не капітулює.
Жоден leetcode цього не вимірює. Натомість він вимірює, наскільки зручно кандидату розвʼязувати задачі без контексту, без бази коду, без тестів і без обмежень реальної системи.
Чим ми це замінили
Ми даємо кандидату калібровану задачу в реальному репо. Не в навчальному — у справжньому, зі своїми шрамами: legacy-модуль білінгу, який п'ять років ніхто не чіпав, або API-гейтвей з дивною схемою ретраїв.
Кандидат:
- форкає репо або отримує гілку;
- читає контекст — код, тести, короткий опис того, що поламано чи чого бракує;
- відкриває pull request з реалізацією;
- відповідає на автоматичні ревʼю-коменти.
Далі система вимірює по рубриці:
| Сигнал | Що дивимось |
|---|---|
| CI | тести проходять; нові тести додано |
| Диф | фокусність, розмір, релевантність змін |
| Коміти | атомарність, читабельність повідомлень |
| Ревʼю | адекватність відповідей, здатність аргументувати |
| Code quality | читабельність, ідіоматичність, інваріанти |
Але ж AI розвʼязує й таке
Так. І це перевага, а не проблема.
Задачі спроєктовані так, що AI-асистент необхідний, але недостатній. Ми хочемо, щоб кандидат ним користувався — ми бачимо це у всьому робочому процесі після найму. Але ми будуємо задачі з такими властивостями:
- Контекст більший за вікно одного промпту. Кандидат має вирішити, що згодувати асистенту, а що ні.
- Найочевидніше рішення ламає існуючі тести. Треба зрозуміти чому.
- Рубрика включає комунікацію в PR. AI напише вам код — але відповісти ревʼюеру на "а що буде, якщо quantity = 0 і країна ВТ?" треба самому.
За два роки калібрації ми побачили чіткий патерн: найкращі кандидати використовують AI у 2–3 рази активніше за середніх. І при цьому роблять менше помилок — бо знають, де йому не довіряти.
Що це дало
Після 18 місяців пілоту з 11 командами:
- час до першого технічного сигналу впав з 9 днів до ~2 хвилин;
- команди перестали витрачати 40+ годин на місяць на скринінг-дзвінки;
- фальш-позитив (кандидат пройшов скринінг, але не впорався за 3 місяці) знизився вдвічі.
Що залишилось відкритим
Ми досі не знаємо, як оцінювати дизайн-рішення верхнього рівня в межах 2-годинної задачі. Це відбувається на фінальному інтервʼю з hiring manager-ом — і це правильно. Наша роль — зняти з цієї зустрічі все, що можна зняти обʼєктивно.
У наступній статті розберемо, як саме сконструйована рубрика і чому LLM-суддя тут кращий за людського ревʼюера у 87% випадків.