Software Engineer II, Automation
Vivint · Lehi, UT · 4 days ago
EngineeringFull-time
Primary Responsibilities
- Design, develop, and maintain Python automated tests for API, UI, and system level scenarios for panels and peripheral devices.
- Review manual test cases and identify candidates for automation.
- Debug test failures and proactively reduce flaky tests.
- Participate in code reviews and follow automation best practices.
- Collaborate with developers, hardware and manual quality engineers on integration and troubleshooting.
- Develop and maintain automated unit and functional tests.
Required
- 3+ years of professional, embedded test automation experience.
- 3+ years of experience with Python.
- Proven ability to take initiative and drive projects to completion.
- Excellent problem-solving and analytical abilities.
- Strong communication and interpersonal skills, with a proven ability to work well in cross-functional teams.
- Experience leveraging AI tools for software design, development, and review, including strong prompt engineering skills and the ability to work across multiple models/tools and select the right one for each task.
- Solid understanding of embedded/IoT systems and device communication fundamentals.
- Hands-on experience working with Linux-based systems, including debugging and system-level troubleshooting.
- Familiarity with source control (Git), containers (Docker), and CI/CD pipelines (GitLab) for automated testing and deployment.
- Ability to troubleshoot hardware software integration challenges effectively.
- Comfortable working in a fast-paced environment, managing competing priorities, and consistently delivering high-quality work on time.
Preferred
- Experience testing or automating embedded systems, IoT devices, or gateways.
- Familiarity with networked device behavior in lab or production-like environments.
- Understanding of wireless and device connectivity concepts (WiFi, BLE, etc.).
- Experience debugging system-level issues such as performance, connectivity, or stability problems.
- Familiarity with serial communication and device diagnostics (UART/console access).
- Experience working with event-driven systems or message-based architectures.
- Experience improving test reliability and reducing flaky tests in large-scale automation suites.
- Exposure to hardware-in-the-loop (HIL) or lab-based testing environments.
- Experience collaborating with firmware or platform teams.
- Familiarity with Linux internals (processes, services, logs).
- Experience contributing to shared automation frameworks or tools.