Зарплата:
300 000 - 350 000 руб.
Опыт работы:
От 3 до 6 лет
Место работы:
Москва, Дорогобужская улица, 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 месяца

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

Стоматолог-ортодонт в ведущую ортодонтическую клинику (Москва)
СТОМАТОЛОГИЧЕСКАЯ КЛИНИКА ОРТОЛАЙК

Клинический опыт работы от 3-х лет после ординатуры. Нацеленность на безупречный клинический и эстетический результат. Готовность непрерывно учиться и...

50 000 - 400 000 руб.
Главный инженер проекта (ГИП)
Сму-22

1. Образование высшее строительное. 2. Опыт работы ГИП (КГИП) не менее 5-х лет. 3. Наличие в опыте работы завершенных...

300 000 - 330 000 руб.
Главный бухгалтер
Международный Центр Здоровья.

Высшее профильное образование (бухгалтерия, финансы, экономика). Релевантный опыт работы главным бухгалтером от 6 лет в торговых компаниях с ОСНО, импортом...

250 000 руб.
Старший производитель работ
Фаворит, Международный кадровый центр

Опыт работы от 3-х лет до 5-ти и более. Знание общестроительных работ. Высшее строительное (ПГС) образование.

240 000 руб.
Главный бухгалтер ( продукты питания )
Авталон

опыт работы главным бухгалтером. * опыт нескольких юридических лиц. * сильное знание бухгалтерского и налогового учета. * уверенное знание НДС и налога на...

250 000 руб.