Описание
NVIDIA Networking Business Unit ищет опытного Software Developer с сильными навыками Python и построения инфраструктуры сборки для присоединения к нашей команде. Вы будете отвечать за проектирование и реализацию процессов разработки, сборки и верификации для наших сетевых продуктов. Если вы креативны, ответственны, трудолюбивы и самостоятельны — мы хотим услышать от вас!
Задачи
•Проектировать и реализовывать инфраструктуру сборки и CI/CD для наших сетевых продуктов, от исходного кода до выпущенных артефактов.
•Проектировать и развивать сквозные процессы разработки и верификации, масштабируемые на множество репозиториев, продуктов и команд.
•Переносить существующие инженерные процессы на единую масштабируемую инфраструктуру и оптимизировать их по скорости и надёжности.
•Обеспечивать безопасность, надёжность, воспроизводимость и скорость процессов, а также раннее обнаружение регрессий.
•Работать с различными командами внутри NVIDIA и делиться технологиями, инфраструктурой и лучшими практиками между продуктами.
Требования
•Степень бакалавра.
•10+ лет практического опыта разработки на Python и архитектуры кода — автоматизация, инструменты и инфраструктурные сервисы, с чистым, поддерживаемым, продакшн-кодом.
•Практический опыт работы с системами сборки и их конфигурационными языками (Starlark или аналог): написание, рефакторинг и поддержка правил сборки, макросов и целей для крупных мультиязычных кодовых баз.
•Практический опыт работы с системами контроля версий (Git, Perforce).
•Солидный опыт в DevOps: проектирование и поддержка CI/CD пайплайнов, контейнеризация, управление артефактами и зависимостями, инфраструктура как код, поддержание здоровья инфраструктуры сборки и тестирования на больших масштабах.
•Архитектура программных процессов: умение проектировать сквозные процессы разработки, сборки и верификации, связывающие несколько инструментов, репозиториев и команд, с учётом масштабируемости, воспроизводимости и производительности.
•Английский язык — продвинутый уровень.
•Сильная способность изучать новые технологии, проводить исследования и анализировать сложные задачи.
•Эффективное взаимодействие и коммуникация между командами, опыт работы в Agile/SCRUM командах.
•Умение оценивать и улучшать код, процессы и архитектуру существующих систем.
•Сильный опыт в проектировании, реализации, отладке и тестировании сложного программного обеспечения.
•Знание Bazel: герметичные и удалённые сборки, удалённое кэширование и выполнение, пользовательские правила и toolchains, миграция legacy систем сборки, настройка производительности сборки на больших монорепозиториях.
•Опыт технического лидерства: ведение проектов от начала до конца или работа в качестве технического лидера команды — продвижение многоквартальных инициатив, разбивка объёма работ, согласование со стейкхолдерами и наставничество инженеров при сохранении практической работы.
•R&D мышление: способность работать в быстро меняющейся среде с новыми технологиями.
•Умение сотрудничать между командами и работать с архитекторами для прогнозирования, исследования и определения граничных случаев в спецификациях, обеспечивая масштабируемые и перспективные решения.
•Владение автоматизацией тестирования программного обеспечения и дизайном тест-кейсов: умение разрабатывать комплексные и эффективные тест-кейсы, обеспечивающие покрытие граничных случаев и критических сценариев.
•Опыт разработки и поддержки автоматизированных фреймворков тестирования для проверки функциональности, производительности и надёжности, оптимизации процесса QA и повышения качества ПО.
•Сильные навыки Linux: администрирование, устранение неполадок, скриптинг на Bash (shell scripting).