← к выдаче
разработка

Backend-разработчик (Node.js/TypeScript) в офис

Санкт-Петербург3 дн. назад

Описание от работодателя

Мы развиваем 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-задачу тебе приходилось самостоятельно доводить до результата и как ты сегодня используешь нейросети при разработке.