Инженер (Backend, TypeScript/Node.js)
Ищем опытного бэкенд-инженера для развития ядра платформы Skillshare: доменная модель, сервисы на NestJS, GraphQL API и событийная инфраструктура. Нужен глубокий опыт с TypeScript/Node.js, DDD и гексагональной архитектурой, а также готовность работать с AI-ассистентом как основным инструментом. Предлагают удалённую работу, автономию и влияние на архитектурные решения.
Зарплата не указана — оценили по рынку
На основе 115 похожих вакансий за 90 дней.
Что предстоит делать
<p><strong>Локация: Удаленно</strong></p><p>В качестве <strong>инженера в Skillshare</strong> вы будете формировать то, как преподаватели делятся своими знаниями, как студенты находят и смотрят любимый контент, и как наша платформа предстает перед миром. Эта роль находится в основании нашего бэкенда — доменной модели, сервисной архитектуры, событийной шины и соглашений, на которых строят свою работу все остальные инженеры.</p><p>Вы будете работать в едином TypeScript монорепозитории, построенном на гексагональной архитектуре, Domain-Driven Design и Clean Architecture. Наши сервисы написаны на NestJS, наш API — это code-first GraphQL, данные хранятся в Postgres за Prisma, доменные события проходят через транзакционный outbox в Pub/Sub, а все работает на Cloud Run, описанном в Pulumi. Каждый ограниченный контекст упакован как доменное ядро плюс сменяемые адаптеры — in-memory адаптер для тестов, Prisma/Postgres адаптер для персистентности, адаптеры провайдеров для сторонних сервисов — так что домен никогда не узнает, какая технология лежит в его основе.</p><p>Эта роль для того, кто мыслит агрегатами и границами, пишет документ с решением до кода и оставляет после себя кодовую базу, по которой следующий инженер сможет ориентироваться без экскурсии.</p><p><strong>Ваша экспертиза:</strong></p><ul><li>У вас 8+ лет опыта создания бэкенд-систем в продакшене, с глубоким знанием TypeScript и Node.js, и суждением, которое приходит от поддержки собственных решений в течение многих лет</li><li>Вы свободно владеете агентной средой разработки — Claude Code или аналогичным инструментом — как вашим обычным способом создания ПО, а не случайным автодополнением. Вы комфортно чувствуете себя, когда модель пишет большую часть кода, а вы отвечаете за дизайн, ревью и результат</li><li>Вы просматриваете сгенерированный код с большим скептицизмом, а не с меньшим. Вы замечаете правдоподобное, но неверное, видите тихо пропущенный крайний случай или инвариант, который перестал соблюдаться, и никогда не позволяете чему-то попасть в код только потому, что это звучало уверенно. Кто бы это ни напечатал, вы несете ответственность за то, что мержите</li><li>Вы практиковали Domain-Driven Design на реальной, запутанной предметной области — не просто прочитали книгу. Вы умеете находить границу агрегата, отстаивать ее и объяснять, почему таблица — это не агрегат, а сервис — не ограниченный контекст</li><li>Вы строили системы на гексагональной архитектуре / портах и адаптерах, понимаете правило зависимости и почему оно направлено внутрь, и знаете как цену этой косвенности, так и когда ее стоит платить</li><li>Вы сильны в NestJS — модули, провайдеры, внедрение зависимостей, жизненный цикл, тестирование — или вы создавали и поддерживали продакшн-сервисы на другом Node.js бэкенд-фреймворке (Fastify, Express, Hono, AdonisJS, tRPC) и быстро освоите Nest. Это роль целиком и полностью на Node.js и TypeScript; глубина в JVM или .NET экосистемах ее не заменяет</li><li>Вы проектировали и владели GraphQL API, а не просто добавляли резолверы: моделирование схемы, проблема N+1 и батчинг, пагинация, семантика ошибок и эволюция живой схемы без поломки клиентов</li><li>Вы работали с событийно-ориентированными системами и можете предметно говорить о доставке как минимум один раз, идемпотентности, упорядочивании и повторных попытках потребителей — а также о том, почему запись в базу данных и публикация в брокер одним дыханием — это баг, а не упрощение</li><li>Вы свободно владеете реляционным моделированием данных и SQL — проектирование схем, миграции на живых данных, индексирование и границы транзакций, которые выбираются осознанно, а не наследуются</li><li>У вас сильные тестовые инстинкты: вы используете быстрые in-memory реализации собственных портов для юнит-тестов, оставляете интеграционные тесты для стыков, которые действительно интегрируются, и умеете работать в стиле test-first, когда дизайн неопределен</li><li>Вы ясно излагаете дизайн — в письменной форме и визуально. Эта роль создает документы с решениями, доменные глоссарии и стандарты, которые читают и соблюдают другие инженеры, поэтому умение четко аргументировать техническую позицию в прозе — это жесткое требование, а не мягкий навык. Визуальная половина важна не меньше: архитектурные диаграммы, потоки данных и событий, карты контекстов — это то, как распределенный дизайн рецензируется до его реализации — и как понимание распространяется по команде после. Мы храним их в Miro, рядом с документами, которые они поясняют, и работаем в Miro, когда модель еще нужно продумать с людьми, а не просто опубликовать для них</li><li>Вы работаете с реальной автономией — можете взять неоднозначную потребность продукта, смоделировать ее, разбить на этапы и довести до результата, не дожидаясь, пока вам выдадут спецификацию</li><li>Вы можете пересекаться с нашей командой в США как минимум до 13:00 по восточному времени каждый день (20:00, если вы находитесь в Украине), когда происходят ревью кода, парное программирование, а также наш понедельничный сеттинг целей и пятничное демо. За пределами этого окна мы работаем асинхронно, поэтому хороший письменный английский и привычка оставлять хороший контекст в задачах и пул-реквестах важны не меньше, чем само пересечение</li></ul><p><strong>Определенно будет плюсом:</strong></p><ul><li>Вы формировали кодовую базу для агентов — создавали правила или контекстные файлы (CLAUDE.md, навыки, определения субагентов), настраивали MCP-серверы или хуки, или строили lint, type и test защитные механизмы, позволяющие среде работать с меньшим контролем</li><li>Prisma и продуманное мнение об ORM — где проходит граница data-mapper, и как сохранять честность Unit of Work между репозиториями</li><li>Системы тонкозернистой авторизации: OpenFGA, ReBAC в стиле Zanzibar или движки политик, такие как OPA — и навыки моделирования, чтобы знать, когда отношения побеждают роли</li><li>GCP — Cloud Run, Pub/Sub, Cloud SQL — и инфраструктура как код на Pulumi (TypeScript); предыдущий опыт с AWS и Terraform отлично переносится</li><li>Правильное управление секретами: SOPS, шифрование на основе KMS, Workload Identity Federation и предпочтение бесключевой аутентификации перед файлами учетных данных</li><li>Change Data Capture, обработка потоков или запуск транзакционного outbox в продакшене и работа с его режимами отказа</li><li>Опыт работы с монорепозиторием с таск-раннером и общими библиотеками (мы используем Nx + Bun), включая написание собственных генераторов или плагинов</li><li>Контракты на основе схем с Zod или аналогичными инструментами, особенно для валидации событий на границе</li><li>Запуск Nest на не-Express рантайме (Hono, Fastify) или разработка для edge и ограничений в стиле Workers</li><li>Поисковая инфраструктура — Typesense, Elasticsearch, OpenSearch, векторный поиск или классификация интентов запросов</li><li>Опыт в домене подписок и биллинга: провайдеры, такие как Recurly, Stripe или RevenueCat, моделирование прав (entitlements), проверка вебхуков и состояние, авторитетным источником которого является провайдер</li><li>Наблюдаемость на практике — инструментирование OpenTelemetry, трассировка через асинхронные границы и отладка по трейсам, а не методом тыка</li><li>BDD с Gherkin или другие подходы с исполняемыми спецификациями, которые держат продуктовый замысел и тесты в одном месте</li><li>Достаточно React и TypeScript на клиенте, чтобы потреблять свои собственные API и чувствовать эргономику, которую вы передаете фронтенд-инженерам</li></ul><p><strong>Что вы получите:</strong></p><ul><li>Ваше влияние: вы будете работать на уровне, где архитектурные решения либо приумножаются, либо становятся долгом — доменная модель и паттерны платформы, через которые строится каждая функция</li><li>Осознанно построено: гексагональная архитектура, DDD и Clean Architecture — это не слова-стремления в вики; структура пакетов, линтинг и стандарты ревью все это обеспечивают. Если вы годами отстаивали такую строгость, вы будете спорить с людьми, которые уже согласны</li><li>Реальный масштаб: доменное моделирование, API-контракты, событийная инфраструктура, дизайн данных, авторизация и инструменты разработчика вокруг всего этого. Достаточно широко, чтобы вы сами выбирали, где углубиться</li><li>Наша команда: страстная, творческая и поддерживающая группа, которая ценит сотрудничество и мастерство</li><li>Наша миссия: мы соединяем людей, обучающихся всю жизнь, по всему миру и даем им возможность стремиться к творчеству и росту</li></ul><p><strong>Вы будете вовлечены в:</strong></p><ul><li>Моделирование домена: определять ограниченные контексты, агрегаты, объекты-значения и доменные события, и держать линию единого языка (ubiquitous language), который разделяют продукт, дизайн и код</li><li>Работу с AI-средой кодирования как вашим основным инструментом. Большая часть кода здесь написана агентом — Claude Code, управляемым файлами навыков, CLAUDE.md и CONTEXT.md, которые хранятся в репозитории рядом с кодом. Направлять, рецензировать и исправлять этот вывод — и есть работа; печатать каждую строку — нет. В этой роли ваше влияние усиливается через субстрат, который вы поддерживаете — документы с решениями, глоссарии, типизированные контракты и тесты, которые позволяют агенту создавать работу, правильную по построению, а не просто правдоподобную</li><li>Изоляцию домена за портами и реализацию адаптеров на краях — персистентность, обмен сообщениями, поиск, сторонние провайдеры — чтобы инфраструктуру можно было заменять, не трогая бизнес-правила</li><li>Проектирование и разработку NestJS-сервисов: модули, провайдеры, внедрение зависимостей, use cases, которые владеют своей границей транзакции, и репозитории, которые разделяют пути чтения и записи</li><li>Владение нашим GraphQL API как контрактом: code-first схема, тонкие резолверы без бизнес-логики, DataLoader для проблемы N+1, проекция полей, опущенная в репозитории чтения, и продуманный путь деприкации, когда схему нужно менять</li><li>Работу над событийной шиной: доменные события с валидацией схем, транзакционный outbox для долговечности как минимум один раз вместе с записью агрегата, и идемпотентные потребители, чтобы повторная доставка никого не оплатила дважды</li><li>Моделирование авторизации как отношений — тонкозернистой, на уровне ресурсов, с закрытым отказом (fail-closed) — и предоставление ее клиентам как явных полей возможностей на ресурс, а не ролей, угаданных в UI</li><li>Проектирование схем и миграций Postgres, осознанный выбор границ транзакций и уровней изоляции, и создание read-проекций, которые обслуживают запросы, не предназначенные для write-модели</li><li>Партнерство в инфраструктуре как коде — Pulumi, GCP, Cloud Run, управление секретами, бесключевая аутентификация — потому что люди, проектирующие сервисы, должны понимать, как они развертываются и эксплуатируются</li><li>Фиксацию решений. Архитектурные записи решений, доменные глоссарии и документы стандартов — это полноценные результаты здесь, а не мысль вдогонку. Как и инструменты разработчика, которые делают архитектуру читаемой: генераторы, пользовательские плагины таск-раннера и инструменты, показывающие доменную модель прямо из исходников</li><li>Работу по нашему недельному ритму — мы вместе ставим цели высокого порядка в понедельник и представляем результаты на демо в пятницу, что означает разбиение фундаментальной работы на части, которые показывают что-то реальное к концу недели, а не исчезают в месячном рефакторинге</li><li>Установление высокой планки в ревью кода и тестировании — юнит-тесты против in-memory адаптеров, интеграционные тесты на стыках, исполняемые спецификации для поведения — и наставничество инженеров в эти паттерны, пока им не понадобится ваше объяснение</li></ul><p><strong>О компании и проекте:</strong></p><p>ZONE3000 — это семья из более чем 2400 человек, которая формирует новый культурный код в бизнесе разработки программного обеспечения. На протяжении 25 лет мы сосредоточены на высочайшем качестве проектов и даем людям возможность мыслить масштабно и менять мир к лучшему. Мы ищем таланты, которые хотят создавать и улучшать технологические решения завтрашнего дня и делать все наилучшим образом.</p><p>Skillshare — это онлайн-сообщество для обучения, чья миссия — соединять любознательных людей, обучающихся всю жизнь, повсюду — и, делая это, строить более творческий, более щедрый и более процветающий мир. Сегодня миллионы участников приходят на Skillshare, чтобы освоить творческие и предпринимательские навыки, общаться со сверстниками и даже самим вести занятия.</p> <div> <a href="https://jobs.dou.ua/companies/zone3000/vacancies/371054/#reply-btn-id">Откликнуться на вакансию</a> </div>
Стек и инструменты
Подходит ли вам эта вакансия?
Зарегистрируйтесь и загрузите резюме — посчитаем % совпадения с этой вакансией, подсветим сильные стороны и что стоит подтянуть
Ещё в ZONE3000
14 активных вакансий в компании
Data Engineer
~1 692 797 ₸ оценка
Ищем Data Engineer для создания новой платформы данных с нуля в компании ZONE3000 (партнер Namecheap). Вы будете проектировать и строить пайплайны данных, ETL/ELT процессы, модели данных с использованием dbt, Airflow, Trino, Iceberg и AWS. Требуется уверенный SQL, Python, опыт с облачными технологиями и английский на уровне Intermediate. Предлагают удаленную работу, гибкий график и хорошие условия.
Python разработчик (Django)
~1 289 625 ₸ оценка
Ищем Python-разработчика с опытом 2-3 года для работы над автоматизацией операционных задач в инфраструктуре Namecheap. Нужно знание Django, DRF, Celery, PostgreSQL, Redis, опыт с высоконагруженными системами и Linux. Предлагают удалённую работу, гибкий график, 25 дней отпуска, оплачиваемые больничные и поддержку профессионального развития.
AI Solution Architect (Presales)
~2 842 576 ₸ оценка
Ищут AI Solution Architect для работы в пресейлах: проектировать архитектуры решений на основе данных и GenAI, создавать прототипы и консультировать клиентов. Нужен опыт в пресейлах, глубокие знания LLM/RAG и Data Engineering, уверенный английский (B2-C1). Предлагают удаленную работу, стабильную оплату и возможность стать AI Lead.
DevOps инженер (TypeScript, Go/Python/Java, AWS, Kubernetes)
~1 604 680 ₸ оценка
DevOps инженер в удаленной команде ZONE3000 (партнер Namecheap). Нужен опыт с TypeScript, AWS, Kubernetes, Terraform, CI/CD и AI-инструментами. Задачи: развивать инфраструктуру, CI/CD, внедрять AI-агентов, участвовать в on-call. Предлагают гибкий график, обучение и сильную команду.
Похожие вакансии
6 вакансий
React Native разработчик (кроссплатформенный)
~2 005 050 ₸ оценка
Ищем опытного React-разработчика (5+ лет) для создания клиентской части социальной сети с нуля: веб, iOS и Android в едином монорепозитории. Нужно владеть React, TypeScript, React Native, Next.js, Expo, а также уметь работать с реальным временем, медиа и производительностью. Предлагают удаленную работу, влияние на архитектуру до запуска и владение целыми фичами.
Senior Frontend Developer
~2 005 050 ₸ оценка
Ищем Senior Frontend Developer для разработки и сопровождения сложных SPA-приложений на React и TypeScript. Нужен опыт работы с Redux, Saga, Webpack, REST/WebSocket и тестированием. Предлагаем работу в крупной команде Московской Биржи.
Backend-інженер (Node.js)
~2 005 050 ₸ оценка
Шукають досвідченого Backend-інженера з 7-15 роками досвіду в Node.js та TypeScript для AI-native конструктора Onepage.io. Потрібно проєктувати архітектуру, писати сервіси, працювати з Docker, Kubernetes, MongoDB, PostgreSQL. Пропонують контрактну роботу, віддалений формат, оплачувані AI-інструменти та участь у розвитку успішного продукту.
Старший Fullstack Node.js разработчик
~2 005 050 ₸ оценка
Ищем опытного fullstack-разработчика (6+ лет) для создания корпоративной платформы управления проектами. Нужно уверенно владеть Node.js, Nest.js, TypeScript, React, PostgreSQL, а также облачными технологиями AWS/GCP и Kubernetes. Предлагают полную удалённую работу, сотрудничество как ФОП и 20 дней отпуска.
Full-Stack разработчик (Node.js, React)
~2 005 050 ₸ оценка
Ищем опытного Full-Stack разработчика с 5+ годами опыта для работы над бэкендом на Node.js и Nest.js, а также фронтендом на React. Работа полностью удалённая, в часовом поясе CET, с сильным английским. Предлагают гибкий график, оплату отпусков и больничных, компенсацию на обучение и технику.
Старший UI/UX инженер
~2 005 050 ₸ оценка
Старший UI/UX инженер, который отвечает за качество интерфейсов всего продукта: от дизайна до реализации в коде на Next.js и Tailwind. Нужен опыт владения качеством, портфолио с живыми продуктами и уверенное знание фронтенда. Работа полностью удалённая, с использованием AI-инструментов в ежедневном процессе.