Syntezis Code — среда для технических интервью
Разрабатываем совместный редактор проектов для технических интервью: участники работают с одним кодом, а ведущий управляет сессией и сохраняет полную историю.
🎯 Задача
На техническом интервью недостаточно показать кандидату пустое поле для одной функции. Для реальной задачи нужен проект с деревом файлов, зависимостями и возможностью вместе разбирать изменения, не теряя контекст и не пересылая архивы между участниками.
Обычный облачный редактор не даёт интервьюеру нужной управляемости: гостевого приглашения без аккаунта, присутствия участников, воспроизводимой истории изменений и безопасной диагностики Java-кода без запуска пользовательской программы на сервере.
Задача SYNTEZIS — собрать специализированную среду, где совместная работа ощущается мгновенной, а права, ограничения импорта, хранение ревизий и выполнение кода имеют явные технические границы.
💡 Решение
Syntezis Code строится вокруг Monaco Editor и CRDT-синхронизации на Yjs. Участники видят общий проект, курсоры и выделения друг друга, а Hocuspocus/WebSocket поддерживает presence и согласованное состояние без блокировки всего документа.
Ведущий создаёт 24-часовую сессию и приглашает участников без обязательных аккаунтов. API на Spring Boot управляет правами, деревом файлов и ревизиями в PostgreSQL. Каждая принятая операция сохраняет полный читаемый снимок файла, поэтому история не зависит от внутреннего формата CRDT.
Java-файлы проверяются в изолированном analysis-worker: компилятор формирует диагностику для Monaco, но пользовательский код не запускается, а annotation processors отключены. JavaScript, TypeScript и HTML могут запускаться только в браузерной песочнице без сетевого доступа.
⚙️ Реализация
Совместный Monaco-редактор
Связали Monaco с Yjs: синхронизируются текст, курсоры, выделения и присутствие участников. При потере WebSocket ввод блокируется, чтобы не создавать расходящиеся версии.
Сессии, гости и права
Spring Boot API управляет 24-часовыми сессиями, приглашениями без аккаунтов, ролями ведущего и участника, деревом проекта и ограничениями до 10 подключений.
Читаемая история изменений
Каждая принятая операция создаёт полную ревизию текста файла в PostgreSQL. Актуальное Yjs-состояние хранится отдельно и используется для восстановления совместной сессии.
Безопасная Java-диагностика
Изолированный analysis-worker проверяет до 200 Java-файлов и возвращает ошибки в Monaco, не исполняя пользовательский код и не загружая произвольные зависимости.
Контролируемый импорт и запуск
MVP импортирует публичные HTTPS-репозитории GitHub и GitLab. Клиентский JS/TS/HTML запускается только в браузерной песочнице без сети; серверный код не исполняется.
📊 Текущий статус
Собран продуктовый каркас специализированной среды для интервью: редактор, дерево файлов, CRDT-синхронизация, присутствие участников, гостевые приглашения, ревизии и отдельный контур анализа Java-кода.
Границы MVP зафиксированы явно: до 10 участников, сессия на 24 часа, публичные репозитории без private credentials, проект до 50 МБ и отсутствие запуска серверного кода. Это позволяет проверять реальные инженерные навыки, не превращая интервью-сервис в универсальную IDE.
Syntezis Code находится в активной разработке. Публичную ссылку и показатели использования мы добавим только после готовности внешнего контура; сейчас кейс описывает подтверждённую архитектуру и уже реализуемые возможности без выдуманных результатов.