15 вер. · Українські спеціальні системи, ДП · тип компанії не вказано
Понад 7 днів вакансія не з’являлася у видачі джерела — можливо, її вже закрито
Завантажте CV — і ми покажемо, що збігається, чого бракує і чи проходить вакансія ваші умови.
Відкрити на robota.uaДержавне підприємство “Українські спеціальні системи”, що забезпечує захищений урядовий зв’язок, кіберзахист і цифрову безпеку державних інформаційних ресурсів, запрошує до своєї команди фахівця Senior Fullstack Engineer (TypeScript / Node.js / React).
Про роль
Ми розробляємо власну ERP-систему і шукаємо інженера, який відповідатиме за неї від коду до продакшену: проєктування доменної моделі та API, реалізація операторських інтерфейсів і підтримка середовищ, у яких система працює.
Це не типова продуктова позиція: ERP — це цілісність даних, права доступу і передбачувана поведінка під навантаженням. Нам важливіше інженерне мислення, ніж кількість фреймворків у резюме.
Зона відповідальності:
• проєктування та розробка backend-сервісів: доменна модель, бізнес-логіка, API;
• розробка frontend-інтерфейсів для щоденної роботи операторів;
• проєктування схеми даних, міграції, продуктивність запитів;
• налаштування та підтримка CI/CD, середовищ, моніторингу та бекапів;
• участь у зборі вимог разом з бізнес-замовниками.
Обов'язкові вимоги:
1) інженерна база:
• 4+ роки комерційної розробки на TypeScript у strict mode: generics, discriminated unions, типізовані API-контракти;
• досвід у проєктах з довгим життєвим циклом — рефакторинг, міграції, легасі-код;
• уміння приймати архітектурні рішення й аргументувати їхні компроміси;
2) Backend:
• Node.js: NestJS або Fastify;
• проєктування API: REST з OpenAPI або tRPC, версіонування, ідемпотентність;
• асинхронна обробка: черги та фонові задачі (BullMQ, Temporal або еквівалент);
• Redis: кешування, розподілені локи, сесії;
3) дані:
• PostgreSQL на рівні проєктування, а не використання: транзакції та рівні ізоляції, блокування, індекси, EXPLAIN ANALYZE, діагностика N+1;
• ORM (Prisma або Drizzle) та досвід міграцій на живій базі без даунтайму;
• робота з грошовими величинами: decimal замість float, правила округлення;
4) Frontend:
• React 18/19 з TypeScript;
• інтерфейси з великими обсягами даних: TanStack Table/Query, віртуалізація, серверна пагінація та фільтрація;
• складні форми: react-hook-form + zod, динамічні форми, єдина схема валідації з бекендом;
5) інфраструктура та експлуатація:
• Docker та docker-compose на рівні впевненого щоденного використання;
• CI/CD: GitLab CI, Tekton або GitHub Actions — уміння написати пайплайн з нуля;
• Nginx або Traefik, TLS, DNS, reverse proxy;
• бекапи PostgreSQL (WAL-G або pgBackRest), PITR і практика перевіреного відновлення;
• моніторинг і діагностика: Prometheus, Grafana, централізовані логи, Sentry;
6) безпека та доступи:
• OIDC/OAuth2, Keycloak або готовність швидко в нього зайти;
• SSO, service accounts, розуміння життєвого циклу JWT та його обмежень;
• проєктування прав доступу: RBAC/ABAC, включно з рівнем окремих записів і полів;
• OWASP Top 10, керування секретами, мережева сегментація;
7) досвід, який ми очікуємо від роботи з обліковими системами:
• не обов'язково саме ERP — підійде банківський, складський, страховий чи будь-який інший обліковий домен, де ціна помилки в даних висока;
• довідники, документи, проведення, закриття періоду — розуміння самої логіки, а не лише термінів;
• аудит-лог й історія змін, м'яке видалення, незмінність проведених документів;
• звітність і вивантаження: XLSX, PDF, друковані форми;
• конкурентні операції над спільними залишками та взаєморозрахунками;
8) вища профільна освіта (першого (бакалавр) або другого (магістр) рівня);
9) досвід роботи 3-4 роки;
10) вільне володіння усною та письмовою українською мовою;
11) відповідальність, уважність та вміння працювати в команді.
Буде плюсом:
• інтеграції українського контуру: 1С/BAS, ЕДО (Вчасно, M.E.Doc), API ДПС, банківські виписки, ЕЦП/КЕП;
• GitOps та ArgoCD;
• Multi-tenancy;
• досвід міграції з legacy-ERP або з процесів на Excel;
• Next.js — для зовнішнього порталу чи кабінету;
• IaC: Terraform або Ansible.
МИ ПРОПОНУЄМО:
Якщо Ви маєте бажання працювати в стабільній організації, професійно розвиватися, бути соціально захищеним(ою) та робити внесок в обороноздатність країни, не зволікайте та надсилайте своє резюме!