Вакансии в Ульяновске

Программист Full-stack

от 49 000 до 50 000 руб.
Компания: АО "СУТОЧНО"
Опыт работы: От 6 лет
График работы: Полный день
Занятость: Не указано
Требования: Глубокий коммерческий опыт со Strapi, включая production-проекты со значительной кастомизацией платформы.
Опыт разработки Custom Field Plugins и собственных типов полей для Strapi Content Manager.
Опыт глубокой кастомизации Strapi Design System / Admin Panel на React.
Практический опыт работы с injection zones, custom pages, settings sections и custom permissions.
Опыт разработки собственных upload/email/auth providers для Strapi.
Практический опыт с Document Service API Strapi v5, middleware и custom document operations.
Опыт разработки собственных database migrations и миграции production-проектов между major-версиями Strapi.
Опыт построения multi-tenant решений на Strapi, включая row-level tenant isolation.
Отличное знание JavaScript/TypeScript и Node.js.
Production-опыт одновременно с React и Vue 3/Nuxt.
Опыт работы с PostgreSQL Row-Level Security и интеграции RLS с application-level authorization.
Практический опыт использования PostgreSQL LISTEN/NOTIFY.
Опыт работы с PostgreSQL Logical Replication / CDC.
Опыт реализации temporal tables, audit trail или versioning на уровне PostgreSQL.
Глубокое понимание JSONB, GIN/GiST indexes, query planner и оптимизации запросов.
Опыт разработки на ProseMirror/Tiptap, включая собственные extensions.
Понимание CRDT и практический опыт использования Yjs для collaborative editing.
Опыт работы с OpenTelemetry в Node.js, включая custom spans, context propagation и distributed tracing.
Опыт использования Open Policy Agent (OPA) для externalized authorization.
Опыт работы с Casbin или аналогичной policy-based authorization системой.
Опыт интеграции Keycloak со Strapi через OIDC, включая roles/claims mapping и service-to-service auth.
Практический опыт работы с NATS JetStream.
Опыт построения CDC pipeline на базе Debezium + PostgreSQL.
Опыт интеграции Meilisearch или Typesense со Strapi с автоматической синхронизацией индекса.
Опыт OpenAPI code generation и генерации TypeScript-клиентов из backend-контрактов.
Опыт оптимизации GraphQL: persisted queries, DataLoader и N+1.
Опыт использования Module Federation между React и Vue.
Опыт реализации SSR + Edge Side Includes / fragment caching.
Опыт работы с Docker, GitLab CI/CD и монорепозиториями.
Умение самостоятельно диагностировать сложные production-проблемы на нескольких уровнях системы.
Будет плюсом:
Опыт эксплуатации Strapi под высокой нагрузкой и с большими объёмами контента.
Опыт разработки собственных механизмов кеширования и сложной cache invalidation.
Опыт построения CMS-платформ с несколькими frontend-приложениями и независимыми consumers.
Опыт построения отказоустойчивых event-driven систем.
Опыт интеграции Strapi с legacy-системами и внешними корпоративными сервисами.
Опыт написания integration/E2E-тестов для связки Strapi + PostgreSQL + frontend.
Опыт профилирования Node.js-приложений и поиска memory leaks / event-loop bottlenecks.
Опыт проектирования систем, в которых Strapi используется не просто как CMS, а как основа сложной редакторской платформы

Обязанности: Кастомизировать Strapi под нужды проекта: дорабатывать модели данных, плагины, API и внутреннюю архитектуру CMS.
Разрабатывать собственные Custom Field Plugins для Strapi, включая новые типы полей и их интеграцию в Content Manager.
Глубоко кастомизировать Strapi Design System / Admin Panel на React: injection zones, custom pages, settings sections, custom permissions.
Разрабатывать собственные Strapi providers для upload, email и authentication.
Расширять Strapi v5 через Document Service API, middleware и custom document operations.
Разрабатывать и поддерживать собственные database migrations Strapi, включая миграции больших production-инсталляций между major-версиями.
Проектировать и развивать multi-tenant архитектуру Strapi, включая row-level tenant isolation.
Разрабатывать и поддерживать frontend-часть проекта одновременно на React и Vue 3/Nuxt.
Интегрировать новые возможности CMS в редакторскую систему и пользовательский интерфейс.
Развивать собственный rich-text редактор на базе ProseMirror/Tiptap, включая custom extensions и интеграцию редактора непосредственно в Strapi Admin.
Реализовывать real-time collaborative editing на базе Yjs/CRDT, синхронизацию документов и разрешение конфликтов.
Проектировать REST/GraphQL API и генерировать типизированные TypeScript-клиенты на основе OpenAPI-контрактов.
Оптимизировать GraphQL API: persisted queries, DataLoader, устранение N+1.
Проектировать сложные структуры данных в PostgreSQL с использованием JSONB, GIN/GiST indexes.
Работать с PostgreSQL Row-Level Security (RLS) и интегрировать database-level security с application-level authorization.
Использовать PostgreSQL LISTEN/NOTIFY для event-driven взаимодействия.
Работать с PostgreSQL Logical Replication / CDC, обрабатывая изменения контента как поток событий.
Реализовывать temporal data / audit trail / versioning контента на уровне PostgreSQL.
Строить event-driven интеграции на базе NATS JetStream.
Использовать Debezium + PostgreSQL CDC для распространения изменений между сервисами.
Интегрировать Meilisearch/Typesense со Strapi и обеспечивать синхронизацию поискового индекса через lifecycle/document events.
Реализовывать сложные модели авторизации через Open Policy Agent (OPA), Casbin и Keycloak.
Интегрировать Strapi с OIDC, включая roles/claims mapping и service-to-service authentication.
Настраивать OpenTelemetry для Node.js/Strapi: custom spans, propagation context и distributed tracing.
Развивать архитектуру монорепозитория и общие пакеты между backend и frontend.
Работать с Module Federation между React и Vue.
Оптимизировать SSR-приложения, включая Edge Side Includes / fragment caching для CMS-driven страниц.
Работать с Docker, GitLab CI/CD и production-инфраструктурой.
Анализировать производительность и production-проблемы на уровне frontend, Node.js, Strapi и PostgreSQL.
Участвовать в архитектурных обсуждениях и самостоятельно принимать технические решения.

Адрес: Ульяновская область, Город Ульяновск, Мира 2-й переулок, дом: Д. 24;офис/квартира: ПОМЕЩ. 36;
2026 © Rus-Work.Com - помогаем найти работу и сотрудников