О компании и команде
На проект по системе аутстафф.
AR Indoor навигация с иммерсивным опытом для торговых центров, аэропортов, выставочных комплексов. Наша задача – превратить общественные пространства в SMART-зоны, привнеся игровую составляющую и новый пользовательский опыт за счет технологий Computer Vision и AR.
DN отталкивается от унаследованной технологии, построенной талантливыми инженерами, но без единого архитектурного плана. Под капотом технически сложная, но плохо обеспеченная документацией гетерогенная система (~50 микросервисов) c глубокой привязкой к GCP:
-
FE
VueJS, ThreeJS (админки, WebView, цифровой двойник помещения)
Java, Kotlin, ARCore (Android SDK)
Swift, Objective-C (iOS SDK)
WebView + native bridge (мини-приложения, использующие AR) -
BE
Go (real-time, high-concurrency)
Python (бизнес-логика, API, NN)
C++ (AR-движок, computer vision)
Kafka и gRPC (межсервисная коммуникация) -
DB
PostgreSQL -
Authorization
Firebase -
Storage
S3
Наша команда разработки сейчас проводит "техническую разведку", но мы понимаем, что для прыжка вперед нам нужен стратег. Мы ищем архитектора, который не испугается этого "наследства", а увидит в нем уникальный вызов: провести полную декомпозицию, расписать целевую архитектуру и обеспечить проект документацией и далее возглавить техническую трансформацию.
Ключевая миссия этой роли:
Вы станете главным "картографом" и "стратегическим реформатором" нашего продукта. Ваша миссия – двухэтапная:
1. Археология и Декомпозиция: провести глубочайший аудит системы "as-is". Вы – тот человек, который погрузится в код, логи и трассировки, чтобы создать единый "атлас" всех 50+ сервисов, их API-контрактов (gRPC/Protobuf), потоков данных (Kafka) и неявных зависимостей.
2. Стратегия Побега: разработать, защитить и возглавить реализацию долгосрочной архитектурной стратегии. Главная цель – полное избавление от 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) для всех новых фич и сервисов.
-
Сформировать бэклог технического долга, приоритизировать его и "продать" необходимость рефакторинга бизнесу.
Ожидания от кандидата
-
Опыт (7+ лет): Вы прошли путь от Senior-разработчика до Архитектора в продуктовых компаниях. У вас за плечами как минимум один крупный проект по рефакторингу/миграции/декомпозиции legacy-системы.
-
Polyglot: Вы не боитесь стека из Go, Python и C++. Вы должны понимать сильные/слабые стороны каждого и, в идеале, иметь production-опыт хотя бы с двумя из них (например, Go для backend + Python для скриптов/API).
-
Distributed Systems: Вы мыслите паттернами. CAP Theorem, DDD, CQRS, 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 на клиенте) взаимодействует с бэкендом.
Мы предлагаем
- удаленную работу по мск часовому поясу;
- пятидневную рабочую неделю, полная занятость;
- интересный и уникальный проект;
- комфортную рабочую атмосферу;
- заключение договора ГПХ, сдельная основа (аутстафф), оплата в российских рублях;
- full-time занятость.