Обязанности:
Архитектура нашего сервиса, находящегося в центре инфраструктур поиска и рекламы и выдерживающего миллионы RPS, представляет собой набор процессов, работающих на пяти кластерах с использованием очередей и key-value-хранилищ. Мы решаем сложные и амбициозные задачи и ищем опытного разработчика на C++. Общее описание: Мы ищем опытного разработчика на С++, который присоединится к нашей команде, чтобы создавать сервис управления обменом данных между микросервисами, составляющими рантайм рекламы в Яндексе. Эта разработка является центральным звеном взаимодействия систем рекламы, поэтому к ней предъявляются высокие требования по нагрузке (миллионы RPS), стабильности, скорости (добавочный лаг менее секунды на старших перцентилях) и эффективности использования ресурсов (диска, сети, памяти, CPU). Задачи Разработка и архитектура новых компонентовВам предстоит создавать и совершенствовать архитектуру сервиса, разрабатывать высокопроизводительный код на C++. Оптимизация процессовВам придётся глубоко погружаться в детали работы инфраструктуры, выявлять причины узких мест (сеть, диск, CPU) и находить эффективные решения для их устранения. Разработка эффективных способов хранения и обработки данныхНужно будет инициировать и реализовывать решения по оптимизации хранения данных, особенно в случаях взаимодействия с ML-моделями или внешним пользовательским Python-кодом. Командная работа и инновации, сотрудничество с командами YTsaurusВы будете заказывать, тестировать, внедрять доработки к новым фичам и технологиям, используемым в нашей системе управления кластерами для распределённых вычислений, взаимодействовать с талантливыми коллегами, вносить свой вклад в продукты, которые меняют мир. Код-ревью и поиск баговВы будете внимательно анализировать пул-реквесты, выявлять потенциальные проблемы и уязвимости в коде. Текст блока «Мы ждём, что вы»: * На высоком уровне понимаете язык С++ и современные подходы к разработке * Проектировали высоконагруженные системы, умеете создавать масштабируемые и устойчивые к нагрузкам архитектуры * Понимаете различия между распределёнными и параллельными вычислениями и решали возникающие в этих областях проблемы * Готовы активно участвовать в командной работе, обсуждать задачи, предлагать решения, конструктивно критиковать и поддерживать идеи коллег