Apprentice - Software Engineer In Test
📅 Posted 1h ago
📄 Job Description
About the Role
Entry-level Software engineer responsible for developing and maintaining software-in-the-loop (SIL) automated tests to test safety-critical, real-time embedded medical device software running on Microcontroller based systems. The role focuses on validating firmware behavior using simulation and automation frameworks.
Responsibilities
- Review software requirements, design documentation, and manual test procedures to derive and implement SIL test cases with clear traceability.
- Implement automated test scripts using Python within an existing SIL framework.
- Extend and enhance the SIL framework and simulations as needed to support test cases.
- Execute regression tests, analyze results, and debug test failures.
- Perform design and code reviews of test scripts and framework to ensure correctness and completeness.
- Collaborate directly with embedded software engineers to understand system behavior and requirements.
- Contribute to improvements in test coverage, framework capabilities, and simulation fidelity.
- Integrate tests with development workflows using tools like Azure DevOps (ADO) and GitHub.
- Perform Computer System Validation (CSV) on the framework to comply with regulatory requirements.
Requirements
- Bachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, Electronics & Communications, or related field.
- 0–2 years of experience with embedded software development in C/C++ (microcontroller-based systems).
- Experience with Python for scripting or automation.
- Understanding of real-time system fundamentals (e.g., scheduling, interrupts, timing behavior).
Preferred Qualifications
- Experience with RTOS such as ThreadX or FreeRTOS.
- Exposure to software testing concepts (unit, integration, or system testing).
- Familiarity with debugging embedded systems and analyzing logs.
- Experience working with test frameworks, simulators, or CI workflows (basic level).
Key Skills
- Strong debugging and problem-solving skills.
- Attention to detail and structured thinking.
- Ability to work closely with cross-functional engineering teams.