Atomic Machines
Senior Software Engineer, Robotic Applications
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Инженер-программист в команду роботизированных приложений. Разработка ПО на Python для автоматизации производственных узлов: последовательности автоматизации, конечные автоматы, API и инструменты калибровки.
Задачи
- Проектировать и реализовывать поведение машин: последовательности автоматизации, конечные автоматы, обнаружение и восстановление после сбоев, API.
- Писать код, исключающий небезопасные команды: проверка инвариантов, валидация перед обращением к оборудованию, безопасное состояние на всех путях выхода.
- Поставлять симулятор или мок для каждого устройства, тестировать последовательности, тайминги и восстановление без машины, расширять conformance-набор в CI.
- Оптимизировать время цикла: инструментировать последовательности, находить потери времени, перекрывать или перестраивать шаги движения, зрения и процесса.
- Запускать новое оборудование совместно с кросс-функциональными командами, создавать инструменты калибровки, верификации и диагностики.
- Отлаживать по всему стеку: от неисправного датчика или сбоя хоуминга до логики оркестрации, используя логи, телеметрию и саму машину.
- Обеспечивать надёжность через наблюдаемость, обработку сбоев и корректное восстановление.
- Участвовать в on-call ротации: недельная смена раз в ~10 недель, включая выходные, слоты 6:00–14:00 или 14:00–22:00.
Требования
- 3+ года разработки ПО для систем, взаимодействующих с оборудованием или физическим миром.
- Глубокое понимание хотя бы одной построенной системы: что писали, почему такая архитектура, что ломалось и как нашли.
- Сильные основы программирования и свободный Python.
- Понимание конечных автоматов, секвенирования и режимов отказов в системах, где ПО управляет физическим оборудованием.
- Систематические навыки отладки и умение работать на стыке software/electrical/mechanical.
- Степень BS в CS, EE, ME, Mechatronics, Robotics или эквивалентный опыт.
Условия
- Компенсация включает equity и бенefits.
- Зарплата $170,000—$220,000 USD в год.
- Офисы в Emeryville и Santa Clara, Калифорния.
- Найм на уровни L3–L5.
- On-call ротация примерно раз в 10 недель с фиксированными слотами.
Навыки
- Python
- C++
- Rust
- Go
- state machines
- robotics
- kinematics
- motion planning
- hardware-in-the-loop
- CI
- observability