2. Архитектурные требования (Стратегия переписывания)
Неизвестный работодатель · На сервисе с: 03.09.26 13:09
2. Архитектурные требования (Стратегия переписывания)
2.1. Стратегия миграции (Strangler Fig Pattern)
• Понимание паттерна """"Strangler Fig"""" (удушение монолита). Умение предлагать поэтапную замену модулей Django на Go-сервисы без остановки продакшена.
• Опыт настройки маршрутизации трафика между старой (Python) и новой (Go) системой (например, через Nginx/Kong или feature-флаги).
2.2. Различия в модели данных
• Умение транслировать Django Models в структуры Go (типы данных: преобразование Django DateTime/TZ, Decimal, JSONField).
• Опыт решения проблем миграции состояния (stateful приложений). Написание скриптов бэкфилла (backfill) для данных.
2.3. Управление зависимостями и модульность
• Использование Go Modules (go mod). Умение структурировать проект (clean architecture, layered architecture) в противовес Django-монолиту (apps, views, models).
• Опыт разделения бизнес-логики и транспортного слоя (Transport/Service/Repository слои).
3. DevOps, Observability и Performance
3.1. Производительность (Замена медленных мест Django)
• Опыт профилирования Go-приложений (pprof, trace).
• Оптимизация времени ответа API (цель — снизить p99 с 200 мс до < 20 мс).
• Управление пулами соединений к БД (в отличие от Django, где это часто скрыто).
3.2. Логирование, Метрики, Трейсинг
• Настройка структурированного логирования (slog, logrus, zap).
• Интеграция с системами мониторинга (Prometheus + Grafana).
• Настройка OpenTelemetry для распределенного трассирования (чтобы видеть, где происходит сбой: в старой Python-части или в новой Go-части).
3.3. Контейнеризация и CI/CD
• Опыт написания многоступенчатых Dockerfile (сборочный образ -> минимальный scratch/distroless).
• Понимание gracefull shutdown (корректное завершение при обновлении).
• Опыт настройки Health Checks (liveness/readiness probes) для Kubernetes.
4. Требования к процессу и документации
• Документирование кода: Опыт написания godoc и архитектурных decision records (ADR) — почему мы переписываем именно так, а не иначе.
• Code Review: Умение давать конструктивный фидбек.
• Работа с легаси: Умение читать код на Python (Django) для того, чтобы корректно переносить бизнес-правила.
5. Soft Skills (Критично для этого проекта)
• Системное мышление: Понимание, что переписывание — это не просто """"перевод синтаксиса"""", а рефакторинг архитектуры.
• Коммуникация: Опыт проведения tech design сессий и RFC (Request for Comments) внутри команды: умение предложить архитектурное решение, дать возможность коллегам его покритиковать и совместно прийти к лучшему варианту
• Адаптивность: Готовность к тому, что бизнес-логика в Django часто """"размазана"""" по сигналам (signals) и миксинам — это нужно будет переосмысливать с нуля.
6. Будет плюсом (Nice to have)
• Опыт миграции с Python на Go (конкретные кейсы).
• Знание Temporal или Cadence для замены сложных Celery-воркеров.
• Понимание Event Sourcing.
• Наличие Open Source проектов на Go (можно посмотреть стиль кода).
• Опыт работы с Foreign Data Wrappers или Debezium для CDC (Change Data Capture), если требуется синхронизация данных во время миграции."
❗️❗️❗️Писать ••••••••⚡️⚡️⚡️⚡️ С РЕЗЮМЕ В КОТОРОМ УКАЗАН ВОЗРАСТ И ЛОКАЦИЯ НАХОЖДЕНИЯ. Укажите 🆔 вакансии❗️ Без этой информации отклики не рассматриваются ❗️❗️
HireSeeker собирает вакансии со всех площадок и присылает только релевантные. Бесплатно.