Техническое mock-собеседование по Node.js, backend-архитектуре и blockchain. Включает системные кейсы, вопросы по NestJS и PostgreSQL, проектирование транзакций и лайвкодинг алгоритма свопа токенов.
Кандидат проходит техническое собеседование по Node.js/backend: обсуждает отношение к сложным задачам, ожидания от стартапа и интерес к blockchain-вакансии с NestJS. Далее он отвечает на вопросы об архитектуре, SOLID, event loop, NestJS, Redis, GraphQL, PostgreSQL, диагностике ошибок и масштабировании сервисов. В финале кандидат проектирует жизненный цикл blockchain-транзакции и в лайвкодинге разбирает алгоритм выбора пары токенов для свопа; интервьюер даёт обратную связь по результатам.
При неясном тикете кандидат предлагает идти к автору задачи — аналитику или продакту — уточнять требования и совместно находить баланс между скоростью фичи, продуктовым и техническим качеством.
По мнению кандидата, на ранней стадии стартапа чаще важнее скорость выхода на рынок, а по мере зрелости продукта растёт приоритет качества и поддерживаемости.
Для снижения связанности модулей он выделяет независимое изменение и удаление частей системы; дублирование допустимо, если одинаковые сейчас решения вскоре могут разойтись по кейсам.
В ответах по Node.js кандидат описывает один event loop для I/O и вынос CPU-bound вычислений в worker threads; для очередей транзакций предлагает Kafka, RabbitMQ или Redis Streams с репликацией.
При редких 503 без записей в логах бэкенда он предлагает проверять слои перед приложением: маршрутизацию, Nginx и сетевую инфраструктуру, двигаясь в сторону клиента.
Для задачи со свопом нужно сначала выбрать токен с наибольшим балансом, затем получить только допустимые пары для него и случайно выбрать целевой токен из валидных вариантов.
В обратной связи интервьюер назвал теоретическую часть неплохой и архитектурную задачу простой, но отметил недостаток знаний Web3 и затруднения кандидата в отдельных простых шагах лайвкодинга.