Standard (Mon\-Fri)**Environmental Conditions**
Office**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 Software Technical Lead 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 a seasoned Staff Engineer with 10–15 years of experience in development and maintenance of Microscope Control Software, with strong 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 drive the design, enhancement, modernization, and quality of complex software used to control advanced scientific instruments. You will also provide technical leadership across architecture, integration, and engineering practices, while mentoring teams and strengthening software quality, testability, and long\-term maintainability.
- Provide technical leadership and guidance across the software development team and distributed sites.
- 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.
- Lead 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.
- Troubleshoot and resolve complex system and performance issues across application, framework, and platform layers; drive root\-cause analysis and preventive fixes.
- Mentor engineers on software design, coding standards, debugging techniques, and safe modernization of legacy application stacks.
- 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.
- Contribute to release readiness, technical risk management, and long\-term platform roadmap planning.
- Promote best practices in documentation, code reviews, quality engineering, and cross\-team collaboration.
- 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.
- 10–15 years of software engineering experience with mandatory hands\-on expertise in Embedded C\+\+, COM, and C\#.
+ Understanding of PLC\-based systems and industrial communication.
+ Basic knowledge of IO\-Link, OPC UA, Modbus, or Ethernet\-based protocols.
- Required experience with Windows application technologies including MFC; good\-to\-have exposure in WPF.
- 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.
- Experience leading technical design discussions and influencing engineering direction in complex product environments.
- Ability to mentor and guide engineering teams on architecture, code quality, maintainability, and engineering discipline.
- Strong communication and stakeholder management skills, with the ability to work effectively across global, cross\-functional teams.
- 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.
- 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.