Запущенная в 2019 году, Constructor — это платформа поиска и обнаружения товаров в электронной коммерции с приоритетом ИИ, которая помогает покупателям находить нужные товары в нужное время и позволяет ведущим глобальным брендам e-commerce добиваться значимого роста выручки и конверсии.
Команда SABR отвечает за верхний уровень обработки запросов для обнаружения товаров. Мы владеем сервисом, который первым принимает запросы на обнаружение товаров (автодополнение, поиск, просмотр каталога и рекомендации) и выполняет всю бизнес-логику, которая управляет обнаружением товаров. Этот сервис также выступает шлюзом для разбора входящих пользовательских запросов, оркестрации вызовов внутренних сервисов, выполняющих ранжирование и извлечение данных, интерпретации их ответов и сборки итогового ответа, который видит клиент. Мы также владеем публичными API конфигурации, которые клиенты используют для управления поведением обнаружения, и слоем MCP, который предоставляет всё это ИИ-агентам.
Наша команда отвечает и за платформенные, и за продуктовые компоненты: из-за позиции наших сервисов мы участвуем в каждом архитектурном решении по нашему основному продукту. При этом наши цели в значительной степени определяются прямой обратной связью от клиентов, поскольку все функции, связанные с обнаружением товаров, либо реализованы в наших сервисах, либо интегрированы с ними.
Все наши сервисы — публичные API, поэтому проектирование интерфейсов и обратная совместимость — постоянная часть работы. Но большая часть нашего внимания уходит на то, чтобы они оставались быстрыми и доступными: мы обрабатываем до 15 тыс. RPS, на каждый запрос делаем множество вызовов внутренних сервисов и должны оставаться доступными и корректно деградировать, когда любой из них падает или замедляется.
Работа — это распределённые системы на практике, а не в теории: оркестрация запросов, изоляция сбоев, кэширование, бюджеты задержки, планирование мощностей и наблюдаемость, чтобы понимать, что на самом деле происходит в продакшене. Команда достаточно мала, чтобы инженеры владели задачами от начала до конца — от проектирования до дежурств.
Вы — инженер уровня staff, который хочет владеть системами, а не тикетами. Вы создавали высоконагруженные низколатентные сервисы на Python и несли за них дежурства. Вы мыслите компромиссами: задержка против стоимости, гибкость против публичного API, который клиенты не могут позволить себе видеть сломанным, исправление, которое выкатывается на этой неделе, против архитектуры, которая должна прослужить два года. Вы можете вести работу, охватывающую нескольких инженеров и несколько кварталов, вам нравится наставлять других, и вас устраивает, когда задача приходит наполовину сформулированной. Вас не смущает быть тем, кто читает спецификацию незнакомого протокола, выясняет, как он вписывается, и проектирует интеграцию, которая выдерживает масштаб. Вы меняете мнение, когда у кого-то аргумент сильнее, делаете окружающих лучше и по-прежнему заботитесь о своём коде долго после мержа.
Владеть техническим направлением одного или нескольких наших сервисов — архитектурой, производительностью и надёжностью.
Вести проектирование новых систем и публичных API, а также эволюцию существующих по мере роста трафика и объёма функций.
Поднимать инженерную планку через дизайн- и код-ревью и наставлять инженеров среднего и старшего уровня, чтобы они брали на себя более широкие зоны ответственности.
Сотрудничать с продуктом, другими инженерными командами и solutions/support, чтобы формировать то, что мы строим, и честно представлять ограничения и компромиссы поиска.
Участвовать в дежурствах по системам, которыми вы владеете, и вести реагирование на инциденты и последующие действия, когда что-то ломается.
Существенный опыт создания и эксплуатации высоконагруженных низколатентных backend-сервисов в продакшене.
Глубокое знание Python (наш основной язык).
Опыт работы с наблюдаемостью и производительностью в живых системах.
Опыт проектирования и развития публичных API, от которых зависят внешние клиенты.
Опыт проектирования и реализации масштабируемых сервис-ориентированных архитектур.
Опыт ведения проектов, охватывающих нескольких инженеров и несколько кварталов.
Влияние без полномочий и готовность менять свою позицию, когда у кого-то аргумент сильнее.
Чёткая письменная коммуникация — design docs, RFC, постмортемы.
Хорошее чувство компромиссов и объёма работ.
Комфорт с неопределённостью и слабо сформулированными задачами.
Ответственность, которая простирается за пределы мержа — до того, как система ведёт себя в продакшене.
Опыт работы с AWS
Опыт в области поиска, ранжирования, информационного поиска или обнаружения товаров в e-commerce.
Знакомство с инфраструктурой для ИИ/LLM (MCP, инструменты для агентов и т. п.).
🏝️ Неограниченный отпуск — мы настоятельно рекомендуем всем сотрудникам брать минимум 3 недели в год
🌎 Полностью удалённая команда — выбирайте, где жить
🛋️ Компенсация за работу из дома! Мы хотим, чтобы у вас были ресурсы для обустройства домашнего офиса
💻 Ноутбуки Apple для новых сотрудников
🧑🎓 Бюджет на обучение и развитие для каждого сотрудника, обновляется каждый год
👪 Отпуск по беременности и родам и отпуск для отца для сотрудников, имеющих на это право
🧠 Работа с умными людьми, которые помогут вам расти и оказывать значимое влияние
💵 Базовая зарплата: 110–130 тыс. USD в зависимости от знаний, навыков, опыта и результатов собеседования
📈 Опционы на акции — предлагаются в дополнение к базовой зарплате
🎉 Регулярные офлайн-встречи команды для общения и совместной работы
В Constructor.io мы стремимся создавать рабочую среду, которая разнообразна, справедлива и инклюзивна. Как работодатель, предоставляющий равные возможности, мы приветствуем людей с любым бэкграундом и предоставляем равные возможности всем кандидатам независимо от образования, разнообразия мнений, расы, цвета кожи, религии, пола, гендерного самовыражения, сексуальной ориентации, национального происхождения, генетики, инвалидности, возраста, статуса ветерана или принадлежности к любой другой защищённой группе.
Исследования показывают, что женщины и представители расовых меньшинств реже откликаются на вакансии, если не соответствуют каждому пункту из списка требований. Нас в первую очередь интересует найти лучшего кандидата на должность. Мы призываем вас откликнуться, даже если вы не соответствуете всем перечисленным нами требованиям.
Как мы обрабатываем ваши данные. Отправляя эту заявку, вы подтверждаете, что Constructor будет собирать и обрабатывать персональные данные, которые вы предоставляете, для оценки вашей кандидатуры на эту роль. Если вы не будете выбраны, мы будем хранить ваши данные ограниченный срок, как описано в нашем Уведомлении о конфиденциальности при подборе персонала. После этого срока ваши данные будут удалены или обезличены.
Как мы обрабатываем ваши данные. Отправляя эту заявку, вы подтверждаете, что Constructor будет собирать и обрабатывать персональные данные, которые вы предоставляете, для оценки вашей кандидатуры на эту роль. Если вы не будете выбраны, мы будем хранить ваши данные ограниченный срок, как описано в нашем Уведомлении о конфиденциальности при подборе персонала. После этого срока ваши данные будут удалены или обезличены.
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.