DigitalOcean
Senior Software Engineer II, Network Datapath
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Senior-инженер в команду сетевой инфраструктуры DigitalOcean. Разработка и оптимизация высокопроизводительного network datapath для облачной платформы: packet processing, forwarding, routing, аппаратное ускорение.
Задачи
- Проектировать, разрабатывать и оптимизировать высокопроизводительный network datapath для облачной инфраструктуры DigitalOcean
- Создавать и улучшать системы обработки и пересылки пакетов с фокусом на пропускную способность, задержку, эффективность CPU, масштабируемость и надёжность
- Разрабатывать сетевой функционал на уровне хоста, ядра, user space и аппаратно-ускоренного datapath
- Работать с Linux networking, eBPF, XDP, DPDK, AF_XDP, SR-IOV и программируемыми datapath
- Анализировать пути обработки пакетов и устранять узкие места, улучшать производительность
- Разрабатывать ПО для routing, packet filtering, encapsulation, tunneling, load balancing, traffic steering и network virtualization
- Создавать observability, телеметрию, отладку и мониторинг производительности datapath
- Проектировать интеграцию с DPU, SmartNIC, программируемыми NIC и другими технологиями аппаратного ускорения
- Разрабатывать фреймворки автоматизированного тестирования и бенчмаркинга для проверки корректности и производительности datapath
- Расследовать сложные продакшн-проблемы: потери пакетов, задержки, деградацию пропускной способности, загрузку CPU, аномальный трафик
- Взаимодействовать с командами Network Infrastructure и Compute для интеграции datapath в общую архитектуру инфраструктуры
- Участвовать в проектировании и реализации сетевых архитектур следующего поколения
- Писать RFC, архитектурные документы, технические предложения и планы реализации
- Участвовать в design review и давать технические рекомендации другим инженерам
- Менторить инженеров и повышать уровень инженерных и сетевых практик в организации
Требования
- Сильный опыт проектирования и разработки продакшн-ПО на C, C++ или Go
- Глубокое понимание сетей и обработки пакетов
- Опыт разработки ПО для Linux-based сетевых систем
- Понимание сетевых концепций: TCP/IP, routing, switching, VLAN, VXLAN, BGP, ECMP, NAT, load balancing, network virtualization
- Опыт отладки и оптимизации производительность-критичных систем
- Понимание внутренностей Linux networking: сетевой стек ядра, network namespaces, сокеты, очереди, прерывания, драйверы NIC
- Опыт с одной или несколькими высокопроизводительными сетевыми технологиями: DPDK, XDP, eBPF, AF_XDP, SR-IOV
- Опыт многопоточной и конкурентной разработки
- Сильное понимание анализа производительности, профилирования, бенчмаркинга и troubleshooting
- Способность рассуждать о сложных системах на стыке железа, ОС, сетей и приложений
- Способность самостоятельно вести проекты от технического дизайна до продакшн-деплоя
- Сильные навыки технического письма: RFC, архитектурные и дизайн-документы, технические предложения
- Сильные коммуникативные навыки и умение эффективно работать между инженерными командами
Условия
- Удалённая работа
- Компенсация $167,200 - $209,000
- Возможен бонус по итогам работы компании и сотрудника
- Equity-компенсация, включая гранты при найме и участие в Employee Stock Purchase Program
- Конкурентный набор бенефитов: Employee Assistance Program, локальные встречи сотрудников, гибкая политика отпусков
- Возмещение расходов на профильные конференции, обучение и образование
- Доступ к LinkedIn Learning (10 000+ курсов)
- Равные возможности трудоустройства
Навыки
- 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