DigitalOcean
Senior Software Engineer II, Network Datapath
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Senior-инженер в команду сетевого datapath DigitalOcean. Разработка и оптимизация высокопроизводительного сетевого ПО для облачной инфраструктуры: обработка и пересылка пакетов, маршрутизация, аппаратное ускорение.
Задачи
- Проектировать, разрабатывать и оптимизировать высокопроизводительное ПО сетевого datapath для облачной инфраструктуры DigitalOcean
- Создавать и улучшать системы обработки и пересылки пакетов с фокусом на пропускную способность, задержку, эффективность CPU, масштабируемость и надёжность
- Разрабатывать сетевой функционал на уровне хоста, ядра, user space и аппаратно-ускоренного datapath
- Работать с Linux networking, eBPF, XDP, DPDK, AF_XDP, SR-IOV и программируемыми datapath
- Анализировать пути обработки пакетов и устранять узкие места, улучшать производительность
- Разрабатывать ПО для маршрутизации, фильтрации пакетов, инкапсуляции, туннелирования, балансировки нагрузки, traffic steering и сетевой виртуализации
- Развивать observability, телеметрию, отладку и мониторинг производительности datapath
- Проектировать интеграцию с DPU, SmartNIC, программируемыми NIC и другими технологиями аппаратного ускорения
- Разрабатывать фреймворки автоматизированного тестирования и бенчмаркинга для проверки корректности и производительности datapath
- Расследовать сложные продакшн-проблемы: потери пакетов, задержки, деградацию пропускной способности, загрузку CPU, аномальный трафик
- Взаимодействовать с командами Network Infrastructure и Compute для интеграции datapath в общую инфраструктуру
- Участвовать в проектировании и реализации сетевых архитектур следующего поколения
- Писать RFC, архитектурные и дизайн-документы, технические предложения и планы реализации
- Участвовать в design review и давать технические рекомендации другим инженерам
- Менторить инженеров и повышать уровень инженерных и сетевых практик в организации
Требования
- Сильный опыт проектирования и разработки продакшн-ПО на C, C++ или Go
- Глубокое понимание сетей и обработки пакетов
- Опыт разработки ПО для Linux-based сетевых систем
- Понимание сетевых концепций: TCP/IP, routing, switching, VLANs, VXLAN, BGP, ECMP, NAT, балансировка нагрузки, сетевая виртуализация
- Опыт отладки и оптимизации производительность-критичных систем
- Понимание внутренностей Linux networking: сетевой стек ядра, network namespaces, сокеты, очереди, прерывания, драйверы NIC
- Опыт с одной или несколькими высокопроизводительными сетевыми технологиями: DPDK, XDP, eBPF, AF_XDP, SR-IOV
- Опыт работы с многопоточным и конкурентным ПО
- Сильное понимание анализа производительности, профилирования, бенчмаркинга и траблшутинга
- Способность рассуждать о сложных системах на стыке железа, ОС, сетей и приложений
- Способность самостоятельно вести проекты от технического дизайна до продакшн-деплоя
- Сильные навыки технического письма: RFC, архитектурные и дизайн-документы, технические предложения
- Сильные коммуникативные навыки и умение эффективно работать между инженерными командами
Условия
- Удалённая работа
- Компенсация $167,200 - $209,000
- Возможен бонус по итогам работы компании и сотрудника
- Equity-компенсация для подходящих сотрудников, включая гранты при найме и участие в Employee Stock Purchase Program
- Возмещение расходов на профильные конференции, обучение и образование
- Доступ к LinkedIn Learning (10 000+ курсов)
- Гибкая политика отпусков
- Employee Assistance Program и локальные встречи сотрудников
- Можно подать заявку максимум на 3 позиции в течение 180 дней
Навыки
- C
- C++
- Go
- Linux
- eBPF
- XDP
- DPDK
- AF_XDP
- SR-IOV
- TCP/IP
- BGP
- ECMP
- NAT
- VLAN
- VXLAN
- EVPN
- DPU
- SmartNIC
- P4
- PCIe
- DMA
- RSS
- perf
- flame graphs
- OVS