Меняем цены на услуги

С 19 января 2026 мы повышаем цены на Хабр Карьере. А ещё — оптимизируем список услуг, доступных для компаний.

→ Смотреть новые рублёвые и валютные прайс-листы

Python Backend Developer

Зарплата

от 250 000 до 500 000 ₽

Местоположение и тип занятости

Санкт-ПетербургПолный рабочий день

Описание вакансии

О проекте

Разрабатываем SaaS-платформу для автоматизации торговли на криптовалютных биржах (Market Making(простой, не чувствительный к задержкам) / Volume Farming(открытие и закрытие позиций с хеджем на другой бирже)/Funding Arbitrage). Фронтенд в работе, ищем сильного бэкенд-разработчика, который закроет техническую часть под ключ за адекватные сроки. 

Задача:

Разработать бэкенд «под ключ» для торгового SaaS-терминала.
Система состоит из двух глобальных частей:

  1. Ядро: Управление пользователями, авторизация, безопасное хранение ключей, реферальная система, API для фронтенда.
  2. Торговый Движок: Запуск и оркестрация торговых стратегий, коннекторы к биржам, риск-менеджмент.

Блок 1: SaaS Core, Auth & Database (Фундамент)

1. База данных (PostgreSQL):
Спроектировать и реализовать схему БД. Основные сущности:

  • Users: ID, email (от Privy), subscription_tier, created_at.
  • Referrals: Таблица реф-кодов, связка «кто кого привел», начисления.
  • API Keys (Encrypted): Хранение зашифрованных ключей пользователей (связка с User ID). Сами секреты шифруются (AES-256) перед записью в БД, ключ шифрования берется из AWS Secrets Manager/Env (не лежит в коде).
  • Strategies/Bots: Конфигурации запущенных ботов (параметры, пара, биржа, выделенный баланс, статус Active/Paused).
  • Trade History/Stats: Логи сделок и снепшоты PnL для отображения графиков на фронте.

2. API & Security (FastAPI/Django):

  • Auth Middleware: Интеграция с Privy. Каждый запрос к API должен проходить валидацию JWT.
  • Access Control (RLS Logic): Жесткая изоляция данных. Реализовать логику (Dependency Injection), гарантирующую, что User A никогда не сможет получить данные, изменить настройки или остановить бота User B.
  • Endpoint Groups:

    • /auth: Валидация, регистрация, профиль.
    • /keys: Добавление ключей (валидация на лету, что ключи рабочие), удаление.
    • /billing: Проверка прав доступа по тарифам (Start/Pro), ввод реф-кода.
    • /dashboard: Агрегированная статистика (PnL за 24h, активные боты).

Блок 2: Trading Engine (Ядро)

1. Архитектура процессов:

  • Реализовать асинхронный движок. Один процесс (или кластер воркеров) управляет сотнями стратегий.
  • State Recovery: При перезапуске бэкенда система должна считать из БД статус Active ботов и перезапустить их работу без потери контекста.

2. Коннекторы (Plug-in System):

  • Написать базовый абстрактный класс коннектора.
  • Реализовать 2 коннектора (Одна типовая биржа, другая через эндпоинты фронта).
  • Поддержка REST (ордера) и WebSocket (приватные данные аккаунта).

3. Логика стратегий:

  • Реализовать 2 типа стратегий (Funding Arb / Volume Farming) как отдельные модули.
  • Shared Market Data: Реализовать сервис-фидер, который тянет публичные данные (цены) через один сокет и раздает их всем подписанным стратегиям (чтобы не ддосить биржу).
  • User Isolation: Приватные стримы (исполнение ордеров) — свои для каждого пользователя.

4. Risk Management:

  • Global Kill Switch: Фоновый процесс проверки PnL. Если Account Equity падает ниже заданного Stop Loss — принудительное закрытие всех позиций и остановка ботов.

Стек и Требования

  • Python 3.10+ (Asyncio): Обязательно понимание работы Event Loop.
  • Framework: FastAPI (предпочтительно для скорости) или Django (если нужен быстрый админ-интерфейс).
  • DB: PostgreSQL + SQLAlchemy/Tortoise ORM (асинхронно).
  • Cache/Broker: Redis (для очередей задач и Pub/Sub котировок).
  • Cloud: AWS (деплой, Secrets Manager).
  • WebSockets: Опыт работы с websockets или aiohttp для поддержания стабильных соединений с биржами.

Ожидаемый результат (Definition of Done):

  1. Развернутый на AWS бэкенд.
  2. Рабочий API (Swagger), к которому может подключиться фронтенд.
  3. Пользователь может: залогиниться, добавить ключи, запустить стратегию.
  4. Бэкенд торгует, пишет логи в базу, фронт отображает растущий (или падающий) график PnL.
  5. Система перезагружается без потери данных и автоматически возобновляет торговлю.


Условия:

  • Проектная занятость (ориентировочно 3-4 недели плотной работы).
  • Оплата: По спринтам, обсуждаем лично.
  • Только фулл-тайм. Созваниваемся, обсуждаем условия и начинаем работу.
  • Отсутствие бюрократии, прямой контакт, на связи 24/7.