Перейти к содержимому
Z
ZONE3000 (Skillshare)
8

Инженер (Backend, TypeScript/Node.js)

Ищем опытного бэкенд-инженера для развития ядра платформы Skillshare: доменная модель, сервисы на NestJS, GraphQL API и событийная инфраструктура. Нужен глубокий опыт с TypeScript/Node.js, DDD и гексагональной архитектурой, а также готовность работать с AI-ассистентом как основным инструментом. Предлагают удалённую работу, автономию и влияние на архитектурные решения.

senior удалённо ~1 702 238 ₸
Вакансия опубликована 45 дней назад. Может быть уже неактуальна — рекомендуем уточнить статус у работодателя перед откликом.

Отклик отправляется на сайте источника. Регистрация в Taylor для перехода не нужна.

Языки: English · Advanced
описание

Что предстоит делать

<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>

навыки

Стек и инструменты

salary intelligence

Зарплата не указана — оценили по рынку

На основе 81 похожих вакансий за 90 дней.

оценка p25–p75
1 284 000 – 2 787 600 ₸
медиана: 1 702 238 ₸
Хотите увидеть распределение по грейдам и городам? Зарплаты JavaScript Калькулятор зарплат

Сколько платят вам?

Вакансии показывают, что обещают работодатели. Анонимно расскажите, сколько получаете вы как JavaScript-разработчика — так появится зарплата, которую платят на деле.

Без имени и компании. Отдельные ответы не публикуются.
Вакансии в Telegram-канале
Свежие вакансии Каждый день
Подписаться
??%
Match Score
Войдите и создайте резюме
Войти
Поделиться

Подходит ли вам эта вакансия?

Зарегистрируйтесь и загрузите резюме — посчитаем % совпадения с этой вакансией, подсветим сильные стороны и что стоит подтянуть

Создать аккаунт PDF-парсинг резюме за 2 минуты

Ещё в ZONE3000

19 активных вакансий в компании

1 нед. назад

Старший Python разработчик

~1 248 308 – 2 496 615 ₸ оценка

Разработка и поддержка высоконагруженных backend-сервисов на Python (Django/DRF/FastAPI) в команде Python/ML-инженерии. Нужен опыт 5+ лет, знание очередей, pytest, базовое понимание Unix, CI/CD; плюсом — Terraform, Kubernetes, AWS, MLOps, Go. Предлагают удалённую работу в глобальной продуктовой компании с гибким графиком, обучением и поддержкой баланса.

Python Django DRF +11
senior удал. dou
1 мес. назад

DevOps инженер (Remote)

~1 070 000 – 2 006 250 ₸ оценка

Ищем DevOps-инженера для поддержки и развития инфраструктуры Namecheap. Нужен опыт с Linux, облаками (AWS/GCP/Azure), Docker и Kubernetes, а также понимание CI/CD и IaC. Предлагают полную удаленку, гибкий график, 25 дней отпуска и оплачиваемые больничные.

Linux AWS Kubernetes +11
middle удал. dou
1 мес. назад

DevOps инженер (KVM, OpenStack)

~2 038 783 ₸ оценка

Ищут опытного DevOps-инженера для развития IaaS-платформы на базе OpenStack и KVM. Нужны глубокие знания виртуализации, Linux, облаков и автоматизации. Предлагают удаленную работу, гибкий график и возможности для профессионального роста.

KVM QEMU Linux +26
senior удал. dou
1 мес. назад

Data Engineer

~1 150 250 ₸ оценка

Ищем Data Engineer для создания новой платформы данных с нуля в компании ZONE3000 (партнер Namecheap). Вы будете проектировать и строить пайплайны данных, ETL/ELT процессы, модели данных с использованием dbt, Airflow, Trino, Iceberg и AWS. Требуется уверенный SQL, Python, опыт с облачными технологиями и английский на уровне Intermediate. Предлагают удаленную работу, гибкий график и хорошие условия.

SQL Python ETL +10
middle удал. dou

Похожие вакансии

6 вакансий
W
WiserBrand
1 д. назад

Старший Software Engineer (TypeScript/Node.js)

~1 702 238 ₸ оценка

Ищем старшего инженера для проектирования и разработки масштабируемых облачных backend-систем на TypeScript и Node.js в AWS. Нужен опыт 7+ лет в backend-разработке, глубокое знание AWS (Lambda, ECS, DynamoDB, SQS/SNS), IaC и CI/CD, а также английский уровня Upper-Intermediate. Предлагают полную занятость с гибким графиком, оплачиваемый отпуск и возможности профессионального роста.

TypeScript Node.js AWS +8
senior удал. dou
O
Onepage.io
1 д. назад

Backend-інженер (Node.js)

~1 702 238 ₸ оценка

Onepage.io шукає досвідченого backend-інженера з 7–15 роками досвіду в Node.js для розробки AI-native конструктора сайтів. Потрібно проєктувати архітектуру нових сервісів, інтегрувати сторонні платформи, працювати з мікросервісами, Docker/Kubernetes, MongoDB/PostgreSQL та event-driven архітектурами. Пропонують контрактну роботу, відпустку за німецьким законодавством, оплату AI-інструментів та роботу в сильній продуктовій команді з 10 інженерів.

Node.js TypeScript Nest.js +21
senior удал. dou
A
altamira.ai
1 д. назад

Full-Stack разработчик (Node.js и React)

~1 702 238 ₸ оценка по стеку

Нужен full-stack разработчик на долгосрочный проект для международного клиента (аутстаффинг). Основная работа — бэкенд на Node.js и TypeScript, фронтенд на React, плюс поддержка и развитие legacy-сервисов на PHP/Laravel. Требуется глубокий опыт в production, понимание архитектуры, асинхронности, SQL и тестирования. Предлагают полностью удалённую работу, гибкий график, оплачиваемый отпуск 20 дней и технику от компании.

Node.js TypeScript React +9
senior удал. dou
U
Unicorn Pro
2 д. назад

Full-Stack Developer

~1 702 238 ₸ оценка

Full-stack разработчик в performance marketing агентстве Unicorn Pro, работа с партнёрскими дейтинг-продуктами на рынке США и Tier 1. Нужен опыт 4+ лет в TypeScript/JavaScript, Node.js, React/Next.js, production-системах, SQL, интеграциях и регулярная работа с AI/LLM. Предлагают высокую фиксированную оплату с бонусами, оплачиваемые отпуска и больничные, полное техническое обеспечение и удалённую работу.

TypeScript JavaScript Node.js +9
senior удал. dou
Software Country (ТОО Балхаш Системс)
S
Software Country (ТОО Балхаш Системс)
2 д. назад

Старший Frontend разработчик (React, TypeScript)

~1 702 238 ₸ оценка

Разработка нового веб-клиента для глобальной EdTech-платформы в сфере образования и изучения языков. Нужен опытный фронтендер с 5+ годами опыта, глубоким знанием React и TypeScript, а также способностью работать по обе стороны стека — проектировать API-контракты и при необходимости писать серверный код. Предлагают удалённую работу, гибкий график, контракт на 3 месяца с возможностью продления и оплату в USD или EUR.

React TypeScript Frontend +13
senior удал. hh
C
Collaborator.pro
2 д. назад

Strong Middle/Senior Frontend Developer

~1 702 238 ₸ оценка

Collaborator.pro — маркетплейс прямой рекламы — ищет Strong Middle/Senior Frontend Developer в свой IT-отдел. Нужно разрабатывать новые и поддерживать существующие продукты на React и TypeScript, писать тесты (Jest/Mocha), качественно верстать по макетам и работать в связке с backend-разработчиками и дизайнерами. Предлагают полностью удалённую работу, график 5/2 по 8 часов и реальное влияние на развитие продукта.

React TypeScript JavaScript +10
senior удал. dou