Apple
Software Development Engineer in Test - Charging & Inductive Power
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Инженер по тестированию в команду Core OS Charging & Inductive Power. Отвечает за качество ПО технологий управления пиковой мощностью, динамического бюджетирования энергии и защиты от просадок напряжения на всех этапах — от раннего дизайна кремния до запуска продукта.
Задачи
- Разрабатывать масштабируемые программные решения и тестовые инструменты для Peak Power Manager, подавления переходных процессов, управления состоянием батареи и динамического бюджетирования мощности на множестве платформ
- Проектировать и реализовывать сквозную стратегию тестирования алгоритмов пиковой мощности в различных состояниях работы батареи
- Быстро разбираться в дизайне, требованиях и архитектуре низкоуровневых энергетических технологий, драйверов ядра, телеметрии PMIC/fuel gauge, моделей старения батареи и замкнутых контуров управления
- Влиять на включение тестируемости в дизайн ПО и прошивки: требования к эмуляции импеданса ячеек, мокам циклов/старения, телеметрическим хукам и возможностям инжекции сбоев
- Разрабатывать и автоматизировать unit-, функциональные, интеграционные и системные тесты
- Валидировать взаимодействие динамики химии батареи и ограничения мощности, обеспечивая защиту от просадок без преждевременного троттлинга и лишней потери производительности по мере старения ячеек
- Кросс-функционально взаимодействовать с командами разработки, тестирования, батарейной инженерии, химии ячеек, валидации кремния и производительности для решения сложных аномалий питания и деградации батареи
- Оценивать и представлять влияние на конечного пользователя проблем с переходным питанием, троттлинга из-за старения и неожиданных перезагрузок, влияя на ключевые продуктовые решения и готовность релиза
- Исследовать новые подходы к созданию автоматизированных тестовых фреймворков, сред hardware-in-the-loop (HIL), интеграций с батарейными циклерами/эмуляторами и CI-инфраструктуры
- Триажить, отлаживать и поддерживать существующие тестовые наборы и автоматизацию
Требования
- Минимум 4–5 лет опыта в разработке ПО
- Отличное понимание написания, чтения и отладки кода на C, C++
- Отличное понимание разработки class-based тестов и фреймворков на Python
- Отличное понимание архитектуры встраиваемых систем
- Опыт тестирования и автоматизации встраиваемых систем и прошивок
- Отличное понимание архитектуры компьютеров и концепций операционных систем
- Сильные навыки критического мышления, отладки и поиска неисправностей в крупных сложных задачах
- Отличные навыки командной работы и коммуникации в больших кросс-функциональных командах
- Исключительное внимание к деталям
- Знакомство с триажем багов
Навыки
- C
- C++
- Python
- Embedded
- Firmware
- Automation
- HIL
- CI
- Computer Architecture
- Operating Systems
- Bug Triage