Software Engineer, Automation
NRG Energy · Utah, United States · 5 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
- 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.