TWIG

Backend (Go/Python) Developer

От 100 000 RUR
  • Москва
  • Частичная занятость
  • Удаленная работа
  • От 1 года до 3 лет

Про продукт. Делаем AI-ассистента для владельцев и управляющих ресторанами: анализ продаж/food-cost, закупки, фрод-детект, рекомендации и алерты. Интеграции с POS/ERP (iiko, r_keeper, QuickResto, 1C), дашборды, чат-интерфейс с действиями.

Стек (основной):

  • Языки: Python (FastAPI/async) и/или Go (gin/fiber/chi).

  • БД/кэш: PostgreSQL, Redis; очереди: Kafka/NATS/Rabbit (на выбор).

  • API: REST/gRPC, Webhooks, OAuth/SSO.

  • Инфра: Docker, K8s, GCP/AWS, Terraform (по желанию).

  • Данными: ETL из POS API, парсеры, Airflow/Celery/Temporal (по желанию).

  • Observability: Prometheus/Grafana, OpenTelemetry, Sentry.

Чем предстоит заниматься

  • Проектировать и писать микросервисы для:

    • сбора и нормализации данных из POS/ERP (iiko, r_keeper, QuickResto, 1C);

    • расчёта метрик (Revenue/Day, Food Cost %, GP по категориям) и аномалий;

    • рекомендаций и нотификаций (чат-бот, e-mail, веб-алерты);

    • безопасных публичных API (REST/gRPC) для фронта и партнёров.

  • Делать устойчивые задачи/воркеры (batch/stream), ретраи, дедупликацию.

  • Профилировать производительность, писать тесты (unit/integration), CI/CD.

  • Участвовать в ревью, техдизайне, разборе инцидентов (SLA/SLO/ошибки данных).

Требования (jun+ / mid)


Нужно:

  • 1–3+ лет коммерческой разработки на Python или Go (желательно оба - плюс).

  • Уверенный SQL, PostgreSQL (индексы, планы, транзакции).

  • Опыт с REST (и/или gRPC), авторизация (JWT, OAuth2).

  • Очереди/шины событий (Kafka/NATS/Rabbit) — хотя бы базовый опыт.

  • Docker, базовый K8s; понимание CI/CD.

  • Аккуратный код, покрытие тестами, умение читать чужие API/доки.

Будет плюсом:

  • Работа с POS/фин-данными, ETL/ELT, Airflow/Celery/Temporal.

  • Асинхронщина в Python (asyncio) или конкурентность в Go (goroutines, channels).

  • OpenTelemetry/Tracing, feature flags, миграции данных.

  • Опыт интеграций с iiko/r_keeper/QuickResto/1C/Stripe.