Work Schedule
Standard (Mon-Fri)
Environmental Conditions
Office
Job 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 Vacuum Software Team, you will contribute to the software that keeps TEM microscopes accurate, reliable, and ready for advanced scientific use. You will work on the design, development, and maintenance of vacuum control software for High-End and Mid-Range TEM products, partnering with engineers and stakeholders to deliver dependable, high-quality solutions.
We are seeking an experienced Senior Software Engineer with 6–10 years of experience in the development and maintenance of Microscope Control Software. You should have strong hands-on expertise in
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 design, system integration, and engineering best practices, while also supporting mentoring, collaboration, and continuous improvement across the team.
What will you do?
- Develop, enhance, and maintain Microscope Control Software and related Windows-based components using C++, COM, and MFC, with exposure to C# and WPF 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.
- Participate in technical design and architecture discussions for platform and systems software with a strong focus on reliability, scalability, and maintainability.
- 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.
- Contribute to new application development using C#, WPF, and gRPC, while also supporting enhancement, feature implementation, and maintenance activities for existing applications built on C++, COM, and MFC technologies.
- Troubleshoot and resolve complex system and performance issues across application, framework, and platform layers; drive root-cause analysis and preventive fixes.
- Partner with product, systems, and test teams to clarify requirements, evaluate design trade-offs, and align delivery plans.
- 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.
- Work effectively within an Agile Scrum / SAFe framework, participating in backlog refinement, sprint planning, technical estimation, PI planning, reviews, retrospectives, and cross-team coordination to support predictable and high-quality delivery.
Required Skills
- 6–10 years of software engineering experience with strong hands-on expertise in C++ ,COM and C#.
- Required experience in Windows application development using MFC, Qt, with WPF considered a good-to-have skill.
- Strong 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.
- Strong communication and stakeholder management skills, with the ability to work effectively across global, cross-functional teams.
- 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.