Software Engineer

Thorlabs is a dynamically growing company in the Photonics sector designing and manufacturing complex optical systems from lasers to microscopes.
Baltimore, MD, USAWashington, DC, USA
Mid-Level Software Engineer
In-Person
3+ years of experience

Description For Software Engineer

Thorlabs, a dynamic company in the Photonics sector, is seeking a talented Software Engineer to join their Fiber Laser and Spectroscopy Instrument group in the Washington D.C. metro area. This role offers an exciting opportunity to work on advanced photonics and instrumentation products, developing software for complex optical systems.

As a Software Engineer at Thorlabs, you'll be responsible for creating graphical user interfaces, instrument control software, firmware, and signal/image processing codes. You'll work in a highly collaborative environment, serving as a go-to reference for guiding multi-disciplinary teams in architecting complex codebases and facilitating collaborative software development.

Key responsibilities include:

  • Developing GUIs and instrument control software
  • Programming microcontrollers and working with GPU acceleration
  • Implementing complex software architectures
  • Performing analytical calculations for real-time instrument control
  • Collaborating across disciplines and thinking at a system level
  • Documenting progress and tracking bugs

The ideal candidate will have:

  • A Bachelor's or Master's degree in Computer Science or a related field
  • 3+ years of experience in software development for scientific or industrial instrumentation
  • Proficiency in C++, Python, and GUI development (QT and WPF)
  • Experience with Git, software design patterns, and unit testing
  • Knowledge of both Windows and Linux environments

Thorlabs offers a comprehensive benefits package, including medical, dental, and vision insurance, a 401(k) plan, generous PTO, and tuition reimbursement. This role provides an excellent opportunity to work at the forefront of photonics technology while developing your software engineering skills in a dynamic, growth-oriented company.

Last updated 4 months ago

Responsibilities For Software Engineer

  • Develop graphical user interfaces (GUI)
  • Develop instrument control software
  • Develop firmware
  • Develop signal/image processing codes
  • Guide multi-disciplinary team in architecting complex codebases
  • Facilitate collaborative software development via GIT
  • Perform bug tracking and software deployment
  • Program microcontrollers
  • Perform complex software architecture planning and implementation
  • Conduct intermediate analytical and math calculations for real-time instrument control and/or signal processing
  • Prepare regular reports and presentations on project status and progress
  • Provide production support as needed

Requirements For Software Engineer

Python
Linux
  • Bachelor's degree (BS) in Computer Science or related field (Master's degree preferred)
  • 3+ years of experience in software development for scientific, academic, industrial, biotech, medical, or semiconductor instrumentation
  • Programming for both Microsoft Windows and Linux Environments
  • Modern C++ (C++11 or later, RAII, Smart Pointers, Standardized Multithreading, Templates, Inheritance, etc.)
  • Python
  • GUI development in QT and WPF with Model–View–ViewModel (MVVM) Pattern
  • GIT
  • Software Design Patterns and practical use in complex / high performance codes
  • Unit Testing

Benefits For Software Engineer

Medical Insurance
Dental Insurance
Vision Insurance
401k
  • Medical insurance
  • Dental insurance
  • Vision insurance
  • 401(k) plan
  • Paid time off (PTO)
  • Tuition reimbursement
  • Company paid life insurance

Interested in this job?