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