Топ-кодерський виклик 8090

Оригінальний пост у LinkedIn
Репозиторій проекту на GitHub

У п’ятничну ніч я побачив публічний пост у Twitter/X від Чамата Паліхапітії, в якому оголошувався відкритий Top Coder Challenge, організований його новою компанією, 8090 Solutions. Будь-хто міг приєднатися. Виклик мав відбутися наступного дня, тривати лише 8 годин і включати зворотний інжиніринг застарілої системи‑чорної скриньки, використовуючи лише історичні дані та кілька інтерв’ю з працівниками.

Я вирішив приєднатися!

До кінця дня я мав честь зайняти 7‑те місце серед 425 інженерів. Ви можете переглянути таблицю лідерів ТУТ і переглянути код цього виклику ТУТ. Але, я не буду брехати, я чесно сподівався лише завершити щось за цей короткий час, тому потрапити в таблицю лідерів стало для мене сюрпризом і великим особистим досягненням.

Виклик був індивідуальним, і мета полягала у відтворенні 60‑річної чорної скриньки системи відшкодування витрат на подорожі, яка не мала вихідного коду та документації. Нам надали кілька артефактів, включаючи короткий опис продукту, транскрипти інтерв’ю з працівниками та публічний набір даних, що містив 1 000 історичних прикладів вхідних даних та очікуваних результатів. З цього я мав вивести бізнес‑логіку розрахунку сум відшкодування та реалізувати сучасну версію, яка могла б якомога точніше відтворити ті ж результати. Подання оцінювали на окремому прихованому наборі даних, що містив 5 000 тестових випадків замість оригінальних 1 000. Цей більший приватний набір зрештою визначав ваш остаточний бал і рейтинг. Система оцінювання винагороджувала точність: чим нижчий бал, тим ближче ваше рішення відповідало прихованій поведінці оригінальної системи.

Щоб впоратися з невизначеністю та шаблонами в даних, я використав класичні методи машинного навчання разом із базовими евристиками та програмною логікою. Це був ретельний мікс аналізу даних, моделювання ознак та апроксимації правил на основі недосконалих підказок.

Ось мій eval бал для публічного набору даних у 1 000 записів:

✅ Evaluation Summary
------------------------
  Total cases        : 1000
  Exact matches (<$0.01): 0
  Close matches (<$1.00): 17
  Average error      : $31.15
  Score              : 3214.93

Розробка рішення для такого виклику за 8 годин була б майже неможливою без допомоги інструментів на базі ШІ, які спростили швидке дослідження, інтеграцію та тестування ідей.

Це відчувалося як археологія програмного забезпечення, поєднана з живим спринтом кодування. Без сумніву, один із найінтенсивніших та найвдячніших технічних викликів, які я коли‑небудь робив.

Дякую Чамату Паліхапітії та Арджуну Крішні за організацію такого креативного та надихаючого виклику.

Посилання: