Principal Instrumentation Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Role details
Tech stack
+19 more
Job description
We are seeking an experienced software engineer to lead software and firmware development for a novel scientific instrumentation platform. This individual will assume technical ownership of the instrument’s software architecture, integrating custom electronics, commercial hardware, data acquisition, instrument control, experimental automation, and data processing into a reliable, extensible system.
The position combines hands-on development with technical leadership, working closely with scientists, electrical and mechanical engineers, and external equipment manufacturers. As the company’s founding software engineer, the successful candidate will establish development practices and architecture while helping guide the instrument from research prototype toward deployment. The role is expected to grow into leadership of an expanded software engineering team.
Principal Responsibilities
- Instrument Control and Software Architecture
Evaluate, maintain, improve, or replace existing instrument-control software and firmware, including potentially undocumented legacy code. Design a modular, maintainable software architecture integrating commercial and custom hardware. Develop unified instrument-control interfaces, including an operator GUI, hardware monitoring, diagnostics, calibration, and configuration management. Work with equipment manufacturers to integrate their products through APIs, SDKs, and other communication interfaces.
- Embedded Systems and Hardware Integration
Develop firmware and control software for custom electronics in collaboration with PCB designers and electrical engineers. Implement hardware communication, synchronization, triggering, and timing-sensitive operations. Support hardware commissioning, troubleshooting, and integration of new instrument subsystems, including sensors, power supplies, motion controls, and data acquisition electronics.
- Measurement Automation and Instrument Safety
Develop flexible experimental automation tools, including a user-accessible scripting framework for defining and executing custom measurement sequences. Implement instrument-state management, operating limits, fault detection, and recovery procedures, with appropriate safeguards in close collaboration with scientific team members.
- Scientific Data Processing
Develop software for acquisition, storage, visualization, and analysis of complex, high-volume, multidimensional scientific datasets. Collaborate with scientific staff to implement custom analysis and processing algorithms. Ensure efficient data handling, reproducibility, and preservation of experimental metadata.
- Software Engineering and Technical Leadership
Establish software engineering standards, including version control, documentation, automated testing, release management, and system validation. Coordinate software-related activities with external contractors and hardware manufacturers. Work with technical leadership to establish development priorities and long-term software strategy, and eventually assist in recruiting and leading additional engineers.
Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering, Physics, or a related discipline, or equivalent professional experience.
- Approximately 5+ years of relevant experience in scientific instrumentation, embedded systems, industrial automation, or other hardware-intensive software development. Demonstrated ability is more important than years of experience.
- Strong proficiency in C++ and Python, including development and maintenance of substantial software systems.
- Demonstrated experience with hardware/software integration, device communication, instrument control, and manufacturer APIs or SDKs.
- Experience with embedded programming, multithreading, asynchronous or event-driven systems, and timing-sensitive operations.
- Experience designing software architectures and developing graphical user interfaces for technical applications.
- Familiarity with modern software engineering practices, including testing, version control, debugging, and documentation.
- Ability to independently investigate unfamiliar hardware and legacy software, troubleshoot complex systems, and collaborate effectively with multidisciplinary engineering teams.
Preferred Qualifications
Experience with scientific or analytical instruments, including microscopy, spectroscopy, particle detection, or precision measurement systems, is particularly desirable. Additional valuable experience includes Qt/PySide GUI development; microcontroller firmware and real-time operating systems; FPGA-based systems; high-speed data acquisition and precision timing; scientific computing with NumPy/SciPy; distributed instrument-control frameworks; and development of user-programmable experimental automation.
Experience transitioning prototype instruments into reliable scientific platforms, or serving as a technical lead on multidisciplinary engineering projects, would be especially advantageous.
Ideal Candidate
The ideal candidate combines strong software engineering fundamentals with an understanding of physical instrumentation and experimental science. They are comfortable working directly with unfamiliar hardware, developing new capabilities in an evolving research environment, and balancing rapid prototyping with long-term reliability.
Above all, we seek a technically independent, collaborative engineer capable of taking ownership of a complex instrument’s software ecosystem and developing it into a robust, maintainable, and extensible platform.
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Prepare application
- Draft this with your agent
- Open in Claude
- Open in ChatGPT
Good distractions
Loading talks and stories from around this role…