Описание
Twinby развивает сервис знакомств с миллионами пользователей. Команда матчинга и ленты отвечает за подбор анкет и то, как пользователи находят друг друга; сервисы обрабатывают большие объёмы данных и должны быстро отвечать при росте нагрузки.
Задачи
•Развивать сервисы подбора анкет и ленты: фильтры, правила показа и учёт действий пользователей
•Следить за скоростью ответа и корректностью подбора анкет
•Работать с запросами к базам данных, кэшем и поисковым индексом
•Находить причины задержек и устаревших данных, проверять решения под нагрузкой
•Согласовывать API и форматы данных со смежными командами, в том числе для интеграции с моделями ранжирования
•Готовить участки бэкенда к A/B-экспериментам для сравнения вариантов выдачи
•Постепенно выносить функциональность из монолита в сервисы, продумывать совместимость, перенос данных и возможность отката
•Писать тесты и проводить ревью
•Добавлять метрики и логи, следить за соблюдением SLO
•Продумывать поведение сервиса при перегрузке и сбоях в базах данных или соседних сервисах
•Участвовать в дежурствах, разбирать инциденты и устранять их причины
•Использовать ИИ-инструменты, проверять сгенерированный код и отвечать за свои изменения
•Принимать технические решения в своей зоне ответственности, обсуждать общую архитектуру с тимлидом и архитектором, помогать коллегам на ревью
Требования
•От четырёх лет опыта бэкенд-разработки на Python или Go
•Уверенное владение одним из этих языков и готовность работать с обоими
•Опыт самостоятельного вывода сервисов в продакшен и их сопровождения после выпуска
•Умение работать с SQL, индексами и планами запросов
•Умение выбирать хранение и кэширование с учётом объёма данных и характера нагрузки
•Понимание одновременных запросов, повторов событий и сбоев в базах данных или соседних сервисах
•Умение находить причины расхождений между данными в разных частях системы
•Умение объяснять выбор решения, его ограничения и способ проверки
•Умение заранее обсуждать риски и согласовывать решения, затрагивающие соседние сервисы, с их владельцами
•Опыт в дейтинге и знание всех инструментов стека не обязательны; LeetCode и алгоритмические головоломки на интервью не используются
Будет плюсом: опыт работы с рекомендательными системами, ранжированием или персональными лентами, Elasticsearch или OpenSearch, а также в дейтинге, соцсетях, маркетплейсах или других сервисах с большим числом пользовательских действий
Условия
•Удалённая работа из РФ
•Работа над подбором анкет и лентой, которыми пользуются миллионы людей
•Возможность влиять на устройство сервисов и технические решения в своей зоне ответственности