Embedded Systems Software Engineer
We are seeking a Systems Software Engineer to support the design, development, and validation of complex hardware test and control systems. This role spans software development, hardware/software co-design, and test automation, with responsibility for building reliable, maintainable code that interfaces directly with physical systems, sensors, and instrumentation.
Responsibilities
- Design, develop, and maintain software applications that interface with hardware systems, sensors, and external instruments
- Write, debug, and refactor code in C# and related languages to support test control, data acquisition, logging, and visualization
- Collaborate with hardware engineers on hardware/software co-design, including defining interfaces, timing, control logic, and system behavior
- Develop and maintain automated test frameworks and participate in regression testing to ensure software reliability across releases
- Use code repositories (e.g., Git-based systems) for source control, code reviews, branching, and release management
- Diagnose and resolve issues that span software, firmware, and hardware boundaries
- Contribute to system-level documentation, design reviews, and technical knowledge sharing
- Support system bring-up, integration, and troubleshooting in lab environments
Requirements
- Strong familiarity with the C# programming language, including object-oriented design and debugging
- Demonstrated ability to code beyond scripting—writing maintainable, production-quality software
- Experience working with code repositories (e.g., Git), including commits, branches, merges, and code reviews
- Familiarity with regression testing concepts, automated test execution, and test result analysis
- Experience or strong interest in hardware/software co-design and systems that integrate real-world hardware
Preferred Qualifications
- Experience developing software for test systems, lab automation, or hardware control environments
- Familiarity with communication interfaces such as USB, Ethernet, serial, or instrument control APIs
- Exposure to data logging, visualization, and post-processing workflows
- Experience working in cross-disciplinary teams (hardware, firmware, software, systems engineering)
- Comfortable working in lab settings with physical hardware
Education & Experience
Recommended Bachelor’s degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field (or equivalent practical experience). Typically has 4-7 years of work experience, preferably in applications engineering, programming, or a related field, or a Masters degree or higher with 3-5 years of work experience.
Pay
The pay range for this role is $105,050 to $150,000 USD annually with additional opportunities for pay in the form of bonus and/or equity (applies to United States of America candidates only). Pay varies by work location, job-related knowledge, skills, and experience.
Benefits
- Health insurance
- Dental insurance
- Vision insurance
- Long term/short term disability insurance
- Employee assistance program
- Flexible spending account
- Life insurance
- Generous time off policies, including:
- 4-12 weeks fully paid parental leave based on tenure
- 11 paid holidays
- Additional flexible paid vacation and sick leave
US benefits overview
Schedule
- Full time
- Shift 1, 0% premium (United States of America)
- No travel required
- Relocation available