About the role
We are looking for a Software Engineer III to join our Instrument Software team.
You have expert-level knowledge of creating advanced instrument control software with C, C++, Python and/or Rust. You handle asyncio, threading, multiprocessing and interfacing with low-level drivers, firmware & hardware with ease. You understand the power and flexibility Python brings, but also its limitations. You are a stickler for testing and thrive on creating a clean and maintainable codebase.
You are the engineer that other engineers can count on; you are technically excellent, you attack every problem with enthusiasm, you care deeply about what it takes to build high quality software. You are a self-starter, team player, have the hunger to venture quickly into unknown areas, code and make the system work.
What you will be doing
- Hands-on coding of Python and C++ based control systems for our instruments
- Architecture and system design of next generation instruments
- Long-term evolution of our instrument codebase
- Collaborate closely with cross functional teams and US based development teams to ensure seamless integration of new products. (20%)
- Support and debug issues reported from field deployed instruments.
- Design and develop software used in manufacturing and field service of Instruments.
- Work with sustaining engineering to drive manufacturing quality issues as well as address design updates due to part obsolescence .
- Review and refactor code and system design for quality and efficiency.
- Analyze and optimize system resources to enhance efficiency, stability, and scalability.
- Support software quality assurance (QA) processes.
Minimum Requirements
- Bachelor's degree in computer science, engineering, math, or scientific discipline with 8 years experience; OR Master’s degree with 4 years of experience in software development
- Experience leading software team(s) in a technical capacity
- Instrumentation system design & architecture
- Modern C++
- Embedded Development
- Python3
- Linux
Preferred skills and experience
- Control Systems Development
- Firmware Development & EE knowledge (Digital & Analog Design)
- Rapid software prototyping & validation with attention to detail and engineering diligence
- Strong analytical and problem-solving skills
- Strong verbal and written communication skills
- Background in biology and DNA sequencing is not required. Interest in the field is.