Backend-разработчик (Node.js/TypeScript) в офис
Описание от работодателя
Мы развиваем DotSpace — платформу для совместной работы на интерактивных онлайн-досках. Это большой живой продукт: realtime-коллаборация, работа с файлами, разноуровневые права доступа, история изменений, интеграции с корпоративной инфраструктурой, безопасность и высокая нагрузка.
Ищем backend-разработчика уровня Middle , способного выбирать решения для продуктовых задачи и реализовывать их.
Мы не ожидаем знания всего нашего стека, но ожидаем достаточную инженерную базу, чтобы незнакомая технология не становилась блокером.
Нам нужен разработчик, который умеет разбираться, думать, пользоваться современными инструментами и доводить задачу до результата .
Что предстоит делать:
Разрабатывать новые возможности backend на Node. js / TypeScript .
Добавлять и изменять REST API, бизнес-логику и работу с PostgreSQL.
Работать с моделями данных, миграциями, транзакциями и индексами.
Разбираться в существующем коде и аккуратно его развивать.
Исправлять ошибки и разбираться в причинах их возникновения.
Покрывать важную логику тестами.
Работать с realtime-функциональностью, Redis, очередями и фоновыми задачами по мере погружения в проект.
Участвовать в code review и обсуждении технических решений.
Самостоятельно вести понятные задачи от постановки до готового результата, синхронизируясь по спорным или архитектурно значимым решениям.
Что для нас важно технически
Ожидаем, что ты:
уверенно работаешь с JavaScript и TypeScript ;
уверенно работаешь с Node.js и умеешь писать и отлаживать серверный код: понимаешь асинхронность, Promise, обработку ошибок, HTTP, middleware и работу event loop на практическом уровне;
умеешь проектировать и реализовывать REST API , понимаешь ответственность контроллеров, сервисов и других слоёв приложения;
работал с PostgreSQL в реальных задачах: использовал связи между таблицами, CTE, JOIN, индексы и транзакции, понимаешь, когда и зачем они нужны;
умеешь работать с базой данных из приложения и разбираться в проблемах на стыке кода и БД;
умеешь читать чужой код, находить нужный участок системы и разбираться в незнакомой кодовой базе;
умеешь самостоятельно разобраться, как реализовать поставленную задачу в рамках существующей системы : мы описываем ожидаемый результат и ограничения, но не разбиваем каждую задачу на пошаговую инструкцию с указанием конкретных файлов, методов и вызовов;
пользуешься Git в повседневной работе;
умеешь самостоятельно проверять и отлаживать свою работу до передачи задачи на review.
Опыт с Express и Sequelize будет особенно полезен.
Не требуется знать наизусть фазы event loop, определения паттернов или формулировки из книг.
Для нас важнее практический опыт: способность самостоятельно написать, проверить и отладить обычный серверный функционал, а также оставить после себя код, который следующий разработчик сможет понять и изменить.
Отдельно про нейросети:
Мы работаем с нейросетями и считаем их обычным инструментом современного разработчика.
Хороший результат для нас — когда разработчик может с помощью документации, существующего кода и ИИ:
разобраться в поставленной задаче;
найти нужную часть проекта;
предложить способ реализации;
написать код;
проверить граничные случаи;
написать или дополнить тесты;
разобраться с возникшей ошибкой;
объяснить, почему решение сделано именно так.
Но «нейросеть написала — я вставил» не считается решением задачи . Важно понимать получившийся код, уметь его проверить, заметить ошибку или неподходящее решение и в итоге отвечать за результат.
Будет плюсом:
Хорошо, если ты уже сталкивался с чем-то из этого:
принципами SOLID, DDD или слоистой архитектурой.
Redis;
Socket.IO / WebSocket;
S3-совместимыми хранилищами;
очередями и фоновыми задачами;
Kafka или другими брокерами сообщений;
JWT, аутентификацией и разграничением прав доступа;
unit- и integration-тестами;
Docker;
CI/CD;
Не требуется знать всё, но ожидаем практический опыт хотя бы с несколькими технологиями из списка и способность самостоятельно разобраться с остальными.
Как мы работаем:
Нам важна самостоятельность, но не работа в вакууме.
Если задача понятна — ожидаем, что ты сможешь взять её и двигать дальше без постоянного контроля каждого шага.
В общении ценим спокойный рабочий подход. Можно спорить с решением, задавать вопросы, предлагать альтернативы и аргументированно отстаивать свою позицию без спора ради спора.
О проекте и задачах:
Backend DotSpace — это не набор однотипных CRUD-методов.
В продукте есть:
совместное редактирование досок в реальном времени;
история и версии изменений;
конкурентное редактирование данных;
комментарии, чат и реакции;
работа с изображениями и документами;
приватное S3-хранилище;
роли и права доступа;
корпоративная аутентификация и MFA;
Redis и Socket.IO;
фоновые задачи;
PostgreSQL;
Kafka и межсервисные события;
аудит и мониторинг;
интеграции с корпоративными системами безопасности.
Поэтому здесь достаточно пространства, чтобы довольно быстро вырасти из Junior+ в уверенного Middle.
Что предлагаем:
Работа напрямую с техническим руководителем проекта.
Задачи на реальном сложном продукте, а не типовой CRUD.
Code review с объяснением решений, а не просто «переделай».
Возможность постепенно брать более сложные участки системы.
Возможность влиять на технические решения по мере роста.
Нормальное использование нейросетей в разработке вместо запретов на них.
Как проходит отбор:
Хотим сделать процесс без лишних кругов:
Небольшое тестовое на подход к решению задач.
Короткое знакомство и разговор о предыдущем опыте.
Техническая беседа по реальным задачам backend-разработки.
Обсуждение условий и финальное решение.
В сопроводительном письме можешь коротко написать:
какую backend-задачу тебе приходилось самостоятельно доводить до результата и как ты сегодня используешь нейросети при разработке.