Платформа для найма: кандидат чинит настоящий сервис, скрытые тесты проверяют его в песочнице.
Результат
- 14 сp95 до вердикта при 300 одновременных решениях (k6)
- 0потерянных или дважды проверенных запусков из 50 000 при случайном убийстве воркеров
- 22архитектурных решения в ADR
Архитектура
Схему можно прокрутить вбок
Задача
Платформа запускает чужой код, держит всплески во время найма и должна проверять каждый запуск ровно один раз.
Как устроена работа
Linear двухнедельными циклами, письменный Definition of Done, еженедельные 1:1, ADR и дизайн-ревью перед изменениями между модулями. Кодовые агенты работают по AGENTS.md и правилам ArchUnit.
Ключевые решения
Модульный монолит и одна PostgreSQL
ArchUnit держит границы модулей, поэтому модуль можно вынести в сервис без переписывания.
Песочницы на gVisor
Ядро в пространстве пользователя, без исходящей сети, лимиты CPU и памяти, бюджет времени на запуск.
Outbox и RabbitMQ
Решение и его событие коммитятся одной транзакцией. Глубина очереди управляет автоскейлингом песочниц.
Тёплый пул песочниц
Холодный старт занимал половину времени до вердикта. Размер пула считается от интенсивности потока.
Java 25, Spring Boot, PostgreSQL, RabbitMQ, Kubernetes, gVisor, Next.js, k6

