Программист С++ в NOC

MoscowC++, LinuxSearchSpecialist
Яндекс — один из лидеров российского интернета по объемам трафика и количеству клиентов. Сотни служб работают круглые сутки. Чтобы люди покупали еду, находили путь по картам и могли добраться домой на такси в поздний час, каждая из систем обязана быть максимально надежной.
Yandex NOC (Network Operations Center) — одно из ключевых подразделений, обеспечивающее бесперебойную работу всего Яндекса. Мы проектируем, разрабатываем, строим и поддерживаем сети дата-центров и офисов — от огромных каналов, по которым передаются терабиты трафика, до схем подключения стоечных коммутаторов.
В NOC есть сервис, который позволяет IPv6-only-серверам в дата-центрах Яндекса взаимодействовать с IPv4-пользователями. Он написан небольшой высококвалифицированной командой на современном С++ поверх библиотеки DPDK. Ключевые требования к сервису — надежность, управляемость и производительность. Мы ищем разработчика именно в этот проект.

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

  • разрабатывали на современных версиях С++ не меньше трех лет;
  • имеете опыт системной разработки Linux с любым юзерлендом и библиотеками (GNU либо альтернативами), эффективной работы в командной строке, автоматизации shell-скриптами;
  • хорошо понимаете стек TCP/IP (v4, v6) и в целом модель OSI;
  • работали с сетями, понимаете принципы маршрутизации IP;
  • стремитесь прорабатывать архитектуру.

Кроме того, приветствуется, если вы:

  • работали с динамической маршрутизацией (BGP, OSPF);
  • имеете опыт системного и сетевого администрирования, особенно дата-центров, понимаете проблемы, возникающие на таких масштабах;
  • разрабатывали на Python;
  • знаете другой популярный на Unix-подобных системах скриптовый язык: Perl, Ruby, PHP;
  • проектировали и планировали разработку;
  • хорошо владеете английским языком.

Вам предстоит:

  • разрабатывать, отлаживать, оптимизировать высокопроизводительный сетевой демон на С++;
  • разворачивать его на оборудовании, мониторить, самостоятельно анализировать проблемы и сложные ситуации, в том числе связанные с производительностью;
  • писать и поддерживать шаблоны конфигурационных файлов;
  • взаимодействовать с другими командами по вопросам IPv4-доступа.