🔥

Не упустите лучшие вакансии!

Подключите наш Telegram-бот и получайте мгновенные уведомления о новых предложениях из 10+ источников. Будьте первым, кто откликнется!

Подключить бота

Разработчик на Go в команду Detection & Response Yandex Cloud Security

Яндекс
Санкт-Петербург, Москва
Гибридный, Офис
Опубликовано: 08 Oct 2025
Мы ищем Go-разработчиков для работы над сервисами и инструментами направления Detection & Response в Security Team Yandex Cloud. Мы только в самом начале пути — поэтому ещё не успели обрасти техническим легаси. У нас есть два похожих, но немного различающихся направления:

  • Разработка инструментов для собственных потребностей ИБ Yandex Cloud и его крупных клиентов.
  • Набор сервисов, который будет доступен всем клиентам Yandex Cloud.

Соответственно, слегка различаются и точки приложения усилий. В первом случае мы делаем упор на большие объёмы данных и сложные процессы работы с ними, а во втором нас волнует архитектурное масштабирование.

Сервисы информационной безопасности для Yandex Cloud обрабатывают десятки и сотни тысяч объектов в секунду, складывают петабайты данных в хранилище и производят поиск по ним. Эти сервисы используют и киберзащитники Yandex Cloud, и его клиенты. Мы создаём системы, прикладное наполнение к которым разрабатывают эксперты по защите крупных инсталляций. Чтобы эксперты могли отдельно от программистов наполнять системы знаниями, мы предоставляем им набор DSL для решения специфических ИБ’шных задач. Наши системы — это фактически движок, который управляется скриптами на нескольких языках.

Что мы предлагаем:

  • Новые проекты, ещё не успевшие обрасти техническим наследием предыдущих поколений
  • Работу в сплочённой, хоть и распределённой географически команде
  • Нетривиальные с продуктовой точки зрения сервисы
  • Поток интересных и сложных задач, обсуждаемых коллективно и с по-настоящему коллегиальным процессом принятия решений

Какие задачи вас ждут

Создание компиляторов узконаправленных DSL для различных этапов обработки данных
Наши сервисы построены вокруг непрерывных (и бесконечных) процессов сбора и анализа больших потоков данных. Обработка этих данных проходит в несколько этапов, и на каждом из них постоянно появляются новые форматы, новые типы и новые интересующие нас комбинации. Поскольку данные меняются чаще, чем компонент, обрабатывающий их, мы создаём язык для каждого этапа обработки. Каждый этап имеет свои особенности и должен хорошо масштабироваться; соответственно, DSL для всех этапов обработки разные. У нас три своих языка и популярный KQL.

Разработка архитектуры для распределённых масштабируемых кластеров обработки данных
Нам необходимо обрабатывать большие потоки данных, при этом сохраняя изолированность данных всех клиентов друг от друга и поддерживая автоматическое масштабирование при росте количества клиентов Yandex Cloud. Такой сервис должен тратить предсказуемое и поддающееся ограничению количество ресурсов.

Здесь пригодится умение дизайнить компактные, понятные и соответствующие принятым в организации конвенциям gRPC API, которым придётся минимально эволюционировать в будущие годы развития системы.

Исследования для выбора оптимальных алгоритмов и структур данных и их применение в разработке
Для сбора потока данных в правильную, выстроенную по времени структуру данных нужно правильно выбрать её и эффективно собирать картинку со временной осью из входящего потока. Крайне маловероятно, что решение «в лоб» будет эффективным. Перед тем как начинать писать код, придётся провести несколько экспериментов, осуществить замеры на разной нагрузке и выбрать самое эффективное решение.

Задачи обработки больших потоков данных
Наши сервисы должны выполнять эффективный поиск по петабайтам данных, масштабироваться на ходу без рестарта, автоматически увеличивать и уменьшать количество серверов в кластере обработки в зависимости от нагрузки и работать 24/7 без простоев.

Придётся научиться проектировать сервисы таким образом, чтобы они не съели все вычислительные ресурсы Вселенной для запроса на неразумные объёмы данных с неразумным фильтром по неразумному временному интервалу. Пример задачи: создать способ одновременно читать сотни ТиБ данных из одного источника за раз несколькими параллельными запросами с разным приоритетом, обогащая их на лету и выдавая за предсказуемое время.

Мы ждем, что вы

  • Способны создавать масштабируемые архитектуры
  • Работали с большими нагрузками и сложными структурами данных
  • Умеете и хотите писать чистый и оптимизированный код на Go и Java
  • Хотите и умеете учиться и применять новое в ежедневной работе
  • Стремитесь к самостоятельности, готовы принимать технические решения
  • Разбираетесь в ИБ (это не обязательно, но опыт и знания в области ИБ пригодятся вам в работе)
🚀

Ваше резюме увидят первым!

Автоматическое поднятие на HeadHunter каждые 4 часа. Увеличьте свои шансы на успех в 10 раз!

Подключить автоподнятие