Senior Backend

Senior Backend

Москва, Дорогобужская улица, 14с11

Метро: Давыдково

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

Привет!

Мы строим социальную платформу в формате цифровых пространств осознанного потребления контента с поддержкой креативной экономики. В своей сути, платформа с UGC-контентом и активным социальным взаимодействием. В дальнейшем планируем продукт развивать до полноценного супераппа: в дорожной карте дейтинг, еком, трэвел, и другие продукты. По формату, у нас стартап на частных инвестициях.

Мы строим продукт, в который верим, и ищем в нашу команду единомышленников.

1. Задачи:

  • Разрабатывать и поддерживать backend-сервисы на Go и Python.
  • Проектировать API, модели данных и взаимодействие между сервисами.
  • Развивать функциональность социальной сети, мессенджера, платформы звонков, а также другие продуктовые сервисы.
  • Участвовать в архитектурных обсуждениях и документировать технические решения.
  • Оптимизировать производительность приложений, баз данных и сетевого взаимодействия.
  • Проводить code review и поддерживать стандарты качества кода.
  • Разрабатывать unit-, integration- и нагрузочные тесты.
  • Анализировать технические риски и декомпозировать продуктовые требования.
  • Участвовать в дежурствах, расследовании инцидентов и подготовке post-mortem.
  • Помогать в развитии менее опытных инженеров.

2. Обязательные требования

  • Опыт коммерческой backend-разработки от 4 лет.
  • Уверенное владение Go и опыт его применения в production.
  • Практический опыт разработки и поддержки сервисов на Python.
  • Глубокое понимание конкурентности, многопоточности и асинхронного программирования.
  • Знание алгоритмов, структур данных и принципов объектного и компонентного проектирования.
  • Опыт разработки высоконагруженных распределенных систем.
  • Понимание микросервисной и событийно-ориентированной архитектуры.
  • Опыт работы с REST, gRPC и WebSocket.
  • Уверенное владение PostgreSQL:
    • проектирование схем и индексов;
    • транзакции и уровни изоляции;
    • блокировки и конкурентный доступ;
    • анализ и оптимизация запросов.
  • Опыт работы с Redis.
  • Опыт использования Kafka, NATS, RabbitMQ или другого брокера сообщений.
  • Понимание идемпотентности, порядка обработки событий, гарантий доставки и eventual consistency.
  • Опыт контейнеризации приложений с Docker.
  • Базовое понимание Kubernetes и CI/CD.
  • Навыки профилирования, поиска утечек памяти и диагностики проблем производительности.
  • Опыт работы с системами мониторинга, логирования и трассировки: Prometheus, Grafana, OpenTelemetry, ELK/OpenSearch или аналоги.
  • Умение самостоятельно доводить задачу от технического проектирования до эксплуатации в production.

Требования к Go

  • Уверенное знание goroutines, channels, context и пакета sync.
  • Понимание Go memory model, escape analysis и работы garbage collector.
  • Умение диагностировать race condition, deadlock и утечки goroutines.
  • Опыт профилирования с помощью pprof, trace и benchmark-тестов.
  • Навыки проектирования понятных интерфейсов и управления зависимостями.
  • Опыт написания unit- и integration-тестов.

Требования к Python

  • Уверенное знание Python 3.
  • Опыт работы с asyncio и асинхронными фреймворками.
  • Понимание GIL, multiprocessing и ограничений разных моделей конкурентности.
  • Опыт разработки API на FastAPI, Django, Flask или аналогичном фреймворке.
  • Знание typing, dependency management и инструментов тестирования.
  • Опыт профилирования и оптимизации Python-приложений.

Не требуется одинаково глубокое владение обоими языками: основной production-стек может быть Go, а Python — использоваться для отдельных сервисов, интеграций и внутренних инструментов.

Специфика мессенджера

Будет необходим опыт или понимание следующих задач:

  • доставка сообщений в реальном времени;
  • поддержка большого количества постоянных соединений;
  • синхронизация истории между устройствами;
  • статусы отправки, доставки и прочтения;
  • offline-доставка и push-уведомления;
  • групповые чаты и управление участниками;
  • хранение и доставка вложений;
  • сохранение порядка сообщений;
  • дедупликация и идемпотентная обработка;
  • presence, typing-индикаторы и счетчики непрочитанных сообщений.

Специфика звонков

  • Понимание архитектуры аудио- и видеозвонков.
  • Базовые знания WebRTC.
  • Понимание signaling, ICE, STUN и TURN.
  • Представление о RTP/RTCP, кодеках, задержках, джиттере и потерях пакетов.
  • Понимание различий между P2P, SFU и MCU.
  • Опыт интеграции с LiveKit, Janus, mediasoup, Jitsi или аналогичными решениями будет преимуществом.
  • Умение проектировать серверную логику управления звонками и состояниями участников.

Глубокий опыт разработки медиасервера не является обязательным.

Безопасность

  • Понимание OAuth 2.0, OpenID Connect, JWT и пользовательских сессий.
  • Опыт реализации аутентификации и авторизации.
  • Знание основных уязвимостей web-приложений и способов защиты API.
  • Понимание rate limiting, защиты от перебора, спама и злоупотреблений.
  • Навыки безопасной работы с персональными данными, секретами и пользовательским контентом.

3. Будет преимуществом

  • Опыт разработки социальной сети, мессенджера или коммуникационной платформы.
  • Опыт эксплуатации сервисов с миллионами пользователей.
  • Практический опыт работы с WebRTC.
  • Знание ClickHouse, Elasticsearch/OpenSearch, Cassandra или ScyllaDB.
  • Опыт разработки лент новостей, поиска, рекомендаций, модерации или антиспам-систем.
  • Понимание принципов end-to-end encryption.
  • Опыт нагрузочного тестирования и capacity planning.
  • Опыт работы с облачными платформами и Infrastructure as Code.
  • Участие в миграции монолита на модульную или микросервисную архитектуру.

4. Soft Skills:

  • Самостоятельность: способность работать автономно, выполнение поставленных задач без постоянного контроля.
  • Креативность: инициатива в предложении улучшений текущих процессов и продуктов.
  • Коммуникативные способности: умение обсуждать технические вопросы с коллегами и стейкхолдерами.
  • Ответственность: ответственное отношение к качеству выполняемой работы и срокам сдачи задач.

5. Ожидаемый уровень ответственности

Senior-разработчик самостоятельно проектирует и реализует крупные технические задачи, учитывает влияние изменений на другие сервисы, отвечает за качество решения после выхода в production и помогает команде принимать обоснованные инженерные решения.

6. Условия работы:

Режим работы: 5 дней в неделю, понедельник-пятница, с 9.00-18.00, очный формат работы.

Компенсационный пакет: по необходимости оборудование предоставляет работодатель

Испытательный срок: 3 месяца

Навыки
  • Go
  • Python
  • REST
  • WebSocket
  • PostgreSQL
  • Redis
  • Kafka
  • gRPC
  • RabbitMQ
  • Docker
  • Kubernetes
  • WebRTC
Посмотреть контакты работодателя

Адрес

Похожие вакансии

Team Lead Backend

Финансовое Объединение Ра

  • Москва

  • до 350000 RUR

Рекомендуем
НПЦ СпецЭлектронСистемы

Ведущий Fullstack-разработчик (Python/JS)

НПЦ СпецЭлектронСистемы

  • Москва

  • до 350000 RUR

Рекомендуем
Платежное Решение

Senior Python developer

Платежное Решение

  • Москва

  • до 350000 RUR

Рекомендуем
Домклик
  • Москва

  • до 350000 RUR

getmatch
  • Москва

  • до 350000 RUR

Открытая мобильная платформа

Senior Golang developer

Открытая мобильная платформа

  • Москва

  • до 350000 RUR

БАЗИС
  • Москва

  • до 350000 RUR

СБЕР
  • Москва

  • до 350000 RUR

МАГ Девелопмент

Tech Lead (B2B SaaS)

МАГ Девелопмент

  • Москва

  • до 350000 RUR

  • Москва

  • до 350000 RUR

СБЕР
  • Москва

  • до 350000 RUR

Тх Решения
  • Москва

  • от 300000 RUR

  • Москва

  • до 300000 RUR

СБЕР

Python Lead

СБЕР

  • Москва

  • до 300000 RUR

getmatch
  • Москва

  • до 300000 RUR

Backend-разработчик

СБК Парус

  • Москва

  • от 290000 RUR

Группа компаний Астра
  • Москва

  • от 290000 RUR

НПП ТехноЛаб
  • Москва

  • от 290000 RUR

Хотите оставить вакансию?

Заполните форму и найдите сотрудника всего за несколько минут.
Оставить вакансию