Engineer II – Control Software
Work Schedule
Standard (Mon-Fri)Environmental Conditions
OfficeJob Description
Job Description
When you join us at Thermo Fisher Scientific, you will become part of a highly collaborative team that is passionate about building software platforms that power advanced scientific instruments and solutions. With industry-leading investment in innovation, we provide our teams with resources and opportunities to make meaningful contributions to the world.
How will you make an impact?
As a Senior Engineer in the Enabling Modules & Technology (EM&T) team, you will play a key role in developing the software and control systems that keep TEM microscopes safe, reliable, and ready for experiments. The team is responsible for system and workflow coordination, temperature and power management, motion safety, and service and monitoring capabilities across advanced microscopy platforms.
We are seeking an experienced Software Engineer with 4–6 years of experience in the development and maintenance of Control Software. You should have hands-on expertise in Embedded C++, COM, MFC, Qt, C#, and test frameworks such as GTest/GMock. Experience with WPF will be an added advantage.
In this role, you will help drive the enhancement, modernization, and quality of software systems used in advanced scientific instruments. You will contribute to software development, system integration, and engineering best practices, while also supporting collaboration and continuous improvement across the team.
What will you do?
- Develop, enhance, and maintain Microscope Control Software and related Windows-based components using Embedded C++, COM, MFC, and C# as core technologies, with WPF and Qt exposure where applicable.
- Develop software layers that interface with supplier-provided hardware APIs.
- Implement and maintain hardware abstraction layers (HAL).
- Integrate SCU, PLC, and IO-Link based devices into microscope control platforms.
- Develop device communication and control modules.
- Drive integration across native and managed components, including interoperability between legacy COM/MFC-based systems and newer software components.
- Establish and improve engineering quality practices using unit, integration, and system-level testing frameworks such as GTest/GMock.
- Troubleshoot and resolve complex system and performance issues across application, framework, and platform layers; drive root-cause analysis and preventive fixes.
- Support the introduction of advanced testing approaches such as BDD and model-based testing where appropriate, while recognizing that specialized knowledge in MBT (Axini), Dezyne, and ASD may be learned on the job.
- Contribute to release readiness, technical risk management, and long-term platform roadmap planning.
Required Skills
- 4–6 years of software engineering experience with mandatory hands-on expertise in Embedded C++, COM, and C#.
- Required experience in Windows application development using MFC, Qt, with WPF considered good-to-have skill.
- Good understanding of software engineering principles, object-oriented design, design patterns, and development methodologies, with experience in multi-module application development and integration of legacy and modern software components.
- Hands-on experience with unit and component test frameworks such as GTest/GMock.
- Strong debugging and troubleshooting skills across control software, desktop applications, system integrations, and performance-sensitive environments.
- Working knowledge of Agile delivery frameworks, including Scrum and SAFe, with experience operating effectively in sprint-based and cross-team planning environments.
- Experience operating in structured product-development environments with strong quality and delivery expectations.
Desired Skills
- Exposure to Behavior Driven Development (BDD) and an understanding of how it can improve functional collaboration and test coverage.
- Awareness or prior exposure to Model Based Testing (MBT) tools such as Axini.
- Familiarity with Dezyne, ASD, or similar model-based engineering approaches.
- Experience with development and maintenance of microscope control software or other complex instrument-control software is highly desirable.
- Exposure to regulated, safety-conscious, or high-reliability product environments.
- Experience with automated build, test, and continuous integration workflows for desktop or systems software.
Preferred Qualifications
- Bachelor’s degree in computer science, Electronics, Instrumentation, or a related technical field; advanced degree is a plus.
- Prior experience in scientific, industrial, or instrument-control software environments is highly desirable.
- Knowledge of BDD, MBT (Axini), Dezyne, or ASD is advantageous but not mandatory; candidates with strong core engineering foundations should be willing to learn these areas on the job.
Software pay context
Based on 7,475 disclosed Software salaries on RoleSuite, the role pays a median of $159K/year, with most offers between $125K and $200K (10th–90th percentile: $102K–$236K).
See the full Software salary breakdown →