Intuitive
Senior Software Engineer
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Senior Software Engineer в команду Interaction Software Engineering для разработки встраиваемого ПО хирургических роботов da Vinci. Работа на всех уровнях стека — от embedded-модулей и платформенной инфраструктуры до распределённых фреймворков обработки данных и пользовательских приложений.
Задачи
- Проектировать и разрабатывать Linux-ПО на всех уровнях системы — компоненты ОС, платформенные и инфраструктурные сервисы, приложения, межслойные фреймворки, библиотеки и инструменты — на современном C++, Python и shell-скриптах
- Проектировать и поддерживать API, интерфейсы и абстракции платформенного сервисного слоя между низкоуровневыми аппаратными/ОС-сервисами и прикладными приложениями
- Разрабатывать распределённые фреймворки для edge-обработки данных, ML-инференса и доставки данных в UI — определять границы сервисов, транспортные протоколы и контракты данных
- Оценивать архитектурные компромиссы (CPU vs GPU, on-device vs distributed, latency vs throughput) и принимать решения по интеграции компонентов в embedded-ПО
- Интегрировать пользовательские приложения с платформой и инфраструктурой, проектируя расширяемые интерфейсы, отделяющие слой представления от вычислительных и data-сервисов
- Анализировать и оптимизировать производительность системы по метрикам всех уровней — от ОС и инфраструктуры до пользовательских приложений
- Создавать качественную техническую документацию по ключевым концепциям и принципам проектирования ПО и архитектур
- Писать production-ready, легко тестируемый код; улучшать процессы регрессионного тестирования и отладки
Требования
- Сильные навыки современного C++ и практический опыт разработки сложного Linux-ПО
- Практический опыт разработки на Python и shell-скриптах
- Глубокое понимание принципов проектирования систем с фокусом на производительность, тестируемость, масштабируемость и поддерживаемость
- Опыт проектирования и разработки платформенных API, SDK или фреймворк-интерфейсов, абстрагирующих возможности железа и ОС для разработчиков приложений
- Обширный практический опыт реализации программно-аппаратных интерфейсов в сложных устройствах, включая Linux-интерфейсы к внешним устройствам и сетевые интерфейсы
- Знание паттернов межпроцессного взаимодействия и распределённого обмена сообщениями (shared memory, pub/sub, gRPC или аналогичные RPC-фреймворки)
- Сильные навыки решения проблем и аналитики, умение разбирать сложные системные проблемы и отлаживать ПО и железо
- Самостоятельность, гибкость, командность, способность поддерживать все этапы SDLC, определять цели и работать независимо в быстром темпе
- BS в Computer Science, Engineering или смежной области и 7+ лет индустриального опыта; либо MS и 5+ лет опыта
Условия
- Компенсация: базовая ставка, бонусы, льготы и equity; диапазоны указаны в вакансии
- Позиция может быть закрыта на другом уровне в зависимости от бизнес-потребности и опыта кандидата
- Возможны требования по вакцинации против некоторых заболеваний, включая COVID-19
- Для отдельных ролей применимы экспортные контроли США (export license или Technology Control Plan)
- Предпочтение отдаётся кандидатам, не проживающим и не планирующим проживать в ряде штатов США
- Intuitive — Equal Opportunity Employer; доступны разумные accommodations для кандидатов с инвалидностью
Навыки
- C++
- Python
- Linux
- shell scripts
- gRPC
- shared memory
- pub/sub
- Docker
- Kubernetes
- GPU
- machine learning frameworks
- data pipelines
- streaming pipelines
- embedded systems
- API design
- SDK
- distributed systems
- ML inference