Responsibilities
- Develop automated test software to control laboratory instrumentation such as signal generators, spectrum analyzers, power supplies, and network equipment.
- Implement and maintain test sequences for both system-level and component-level validation.
- Support integration and execution of tests across hardware and software environments.
- Debug and troubleshoot test failures across software, hardware, and interface layers.
- Ensure test systems produce accurate, repeatable, and reliable results.
- Design and implement software for device under test (DUT) control, including command handling, telemetry ingestion, and state management.
- Build reusable automation frameworks and scripts to streamline test development.
- Apply best practices in software engineering, including modular design, version control, and code reviews.
- Reduce manual intervention through efficient and scalable automation solutions.
- Develop tools and utilities to enhance test engineering productivity.
- Design and maintain scalable test automation infrastructure supporting multiple configurations and environments.
- Enhance existing frameworks for improved reliability, maintainability, and scalability.
- Integrate automated testing into CI/CD pipelines where applicable.
- Standardize tooling and infrastructure across teams to ensure consistency.
- Contribute to shared libraries and reusable automation components.
- Act as a technical bridge between software and test engineering teams.
- Collaborate with systems, hardware, and software teams to ensure system testability.
- Support integration of new components into existing test environments.
- Translate system requirements into effective automation strategies.
- Participate in design and integration reviews to ensure validation readiness.
- Identify and implement improvements to test automation architecture and codebase.
- Contribute to the evolution of next-generation test frameworks and infrastructure.
- Drive simplification and standardization to reduce development cycle time.
- Advocate for scalable, maintainable, and reusable design principles.
- Continuously improve test processes, tools, and methodologies.
Requirements
- Bachelor’s degree in Computer Science, Software Engineering, or a related field (or equivalent experience).
- 5–8 years of experience in software engineering, test automation, or related roles.
- Experience developing software that interfaces with hardware systems or laboratory instrumentation.
- Strong experience in test automation framework and infrastructure development.
- Proficiency in Python, C/C++, or similar.
- Familiarity with Git, CI/CD tools, automated test frameworks.
- Hardware/software integration and system-level testing expertise.
- Instrumentation control and data acquisition knowledge.
- Solid understanding of software development lifecycle (SDLC) and best practices.
- Proven debugging and root cause analysis skills across integrated systems.
- Ability to design scalable systems and think architecturally.
- Strong analytical skills with attention to detail.
- Ability to manage multiple priorities in a fast-paced environment.
- Effective communication skills across technical and non-technical audiences.
- Comfortable working in a laboratory environment with electronic test equipment.
Additional Information
- applicant must be a U.S. citizen, lawful permanent resident of the U.S., conditional resident, asylee or refugee (protected individuals as defined by 8 U.S.C. 1324b(a)(3)), or eligible to obtain the required authorizations from the U.S. Department of State