Уважаемые кандидаты! Проект временный на 3-6 месяцев.
О компании:
DigiNavi (DN) – AR Indoor навигация с иммерсивным опытом для торговых центров, аэропортов, выставочных комплексов. Наша задача – превратить общественные пространства в SMART-зоны, привнеся игровую составляющую и новый пользовательский опыт за счет технологий Computer Vision и AR.
DN отталкивается от унаследованной технологии, построенной талантливыми инженерами, но без единого архитектурного плана. Под капотом технически сложная, но плохо обеспеченная документацией гетерогенная система (~50 микросервисов) c глубокой привязкой к GCP.
Наша команда разработки сейчас проводит "техническую разведку", но мы понимаем, что для прыжка вперед нам нужен стратег. Мы ищем архитектора, который не испугается этого "наследства", а увидит в нем уникальный вызов: провести полную декомпозицию, расписать целевую архитектуру и обеспечить проект документацией и далее возглавить техническую трансформацию.
Ключевая миссия этой роли:
Вы станете главным "картографом" и "стратегическим реформатором" нашего продукта. Ваша миссия – двухэтапная:
Археология и Декомпозиция: провести глубочайший аудит системы "as-is". Вы – тот человек, который погрузится в код, логи и трассировки, чтобы создать единый "атлас" всех 50+ сервисов, их API-контрактов (gRPC/Protobuf), потоков данных (Kafka) и неявных зависимостей.
Стратегия Побега: разработать, защитить и возглавить реализацию долгосрочной архитектурной стратегии. Главная цель – полное избавление от vendor-lock (в первую очередь Firebase) и проектирование cloud-agnostic платформы, готовой к развертыванию в любом Kubernetes кластере, будь то Yandex.Cloud, AWS, GCP, Alibaba или on-premise у клиента.
Чем детально предстоит заниматься
- Технический аудит "as-is":
- Провести реверс-инжиниринг существующих сервисов. Анализировать не только код (Go, Python, C++), но и data flow, схемы PostgreSQL и контракты gRPC.
- Создать полную и актуальную карту системы. Мы ожидаем использования C4 Model, UML-диаграмм, ADR (Architecture Decision Records) – любого инструмента, который поможет команде понять, "что где лежит и как оно говорит". Умение строить схемы автоматической проверки архитектуры и владение такими инструментами приветствуется.
- Выявить и задокументировать все "темные углы": неявные связи, недокументированные API, "божественные" объекты и сервисы-монолиты, маскирующиеся под микросервисы.
- Разработка стратегии "to-be" (Cloud-Agnostic):
- Спроектировать целевую архитектуру, независимую от облачных провайдеров.
- Одна из ключевых задач: разработать пошаговый план миграции с Firebase. Это включает подбор и обоснование self-hosted/open-source альтернатив для Firebase Auth (e.g., Keycloak, Ory), Firestore (e.g., перенос логики на PostgreSQL, MongoDB или ClickHouse в зависимости от сценария), Cloud Functions (e.g., OpenFaaS, Knative) и Push Notifications.
- Спроектировать замену S3 на S3-совместимые решения (e.g., MinIO) для on-premise инсталляций.
- Проектирование и R&D:
- Проектировать новые микросервисы, выбирая оптимальный инструмент (Go для latency-critical, Python для ML/data, etc.).
- Внедрить и стандартизировать Observability (Logs, Metrics, Traces). Вы будете решать, как мы собираем, храним и анализируем телеметрию с 50+ сервисов (e.g., Prometheus + Grafana + Jaeger/OpenTelemetry).
- Провести аудит PostgreSQL: найти "тяжелые" запросы, предложить стратегии оптимизации, партиционирования или даже шардринга.
- Провести аудит Kafka: оценить корректность выбора топиков, партиций, стратегий delivery (at-least-once, exactly-once) и consumer groups.
- Менторство и управление тех. долгом:
- Быть главным техническим авторитетом и ментором для тимлидов и senior-разработчиков.
- Проводить архитектурные ревью (Arch-review) для всех новых фич и сервисов.
- Сформировать бэклог технического долга, приоритизировать его и "продать" необходимость рефакторинга бизнесу.
Требования (Hard Skills)
Must-have / Foundation:
Опыт (7+ лет): Вы прошли путь от Senior-разработчика до Архитектора в продуктовых компаниях. У вас за плечами как минимум один крупный проект по рефакторингу/миграции/декомпозиции legacy-системы.
Polyglot: Вы не боитесь стека из Go, Python и C++. Вы должны понимать сильные/слабые стороны каждого и, в идеале, иметь production-опыт хотя бы с двумя из них (например, Go для backend + Python для скриптов/API).
Distributed Systems: Вы мыслите паттернами. CAP Theorem, DDD, DDD, Saga, Event Sourcing, Outbox – для вас это рабочие инструменты, а не слова из книжек.
Database Expert:
- PostgreSQL: Глубокое знание. Вы понимаете, как работает VACUUM, EXPLAIN ANALYZE, репликация, партиционирование. Вы знаете, когда btree лучше gin/gist.
- Опыт работы с NoSQL (MongoDB, Redis, ClickHouse) и понимание их ниши.
Messaging / Async:
- Kafka: Экспертное владение. Вы проектировали архитектуру топиков, понимаете partitioning, log compaction, Kafka Streams / ksqlDB и риски работы с consumer groups. Знаете разницу между RabbitMQ и Kafka на уровне ДНК.
"План Побега" (Vendor-lock):
- У вас есть реальный, болезненный опыт миграции с Firebase (Auth, Firestore, Functions) или аналогов (AWS Cognito, DynamoDB) на open-source / self-hosted стек.
- Опыт развертывания MinIO (S3-compatible).
- Опыт работы с Keycloak, Ory Stack или Okta (или писали свою аутентификацию).
API & Communication:
- gRPC / Protobuf: Вы проектировали API-контракты, знаете, что такое schema evolution, deadline propagation, и как gRPC работает "под капотом" (HTTP/2).
- Опыт с REST и GraphQL для внешних API.
Cloud-Native & K8s:
- Вы проектируете приложения для Kubernetes (liveness/readiness probes, resource requests/limits, graceful shutdown).
- Понимание Infrastructure as Code (Terraform, Ansible).
- Опыт работы с Service Mesh (Istio, Linkerd) – хотя бы на уровне R&D.
Будет огромным плюсом:
- C++: Любой production-опыт с C++ (особенно в computer vision, AR или gamedev) будет гигантским преимуществом.
- Observability: Практический опыт внедрения OpenTelemetry в гетерогенной среде.
- Data Engineering: Опыт построения ETL/ELT-пайплайнов, работы с Airflow, Spark.
- Frontend: Понимание, как VueJS (и Firebase на клиенте) взаимодействует с бэкендом.
Условия:
Оформление по аутстафу на срок от 3 до 6 месяцев
Формат трудоустроен трудоустройства ТК РФ\ИП\CМЗ
Гибридный формат работы офис м. метро Люблино