What are the responsibilities and job description for the Senior Software Engineer position at Thorlabs?
Purpose of the Position
This position will develop desktop application software and software development kits (SDKs) in service of our product development objectives. Our mission is to develop cutting edge lasers as well as optical test and measurement electronics. The Software Engineer III will contribute to both sustaining existing products and new product development, experienced desktop software developer with the ability to lead the full scope of software development from proof of concept to production testing. The position would also have knowledge and experience with kernel driver development on Windows and Linux
Essential Job Functions include the following, but are not limited to:
- Develop desktop software applications in C# and .NET
- Develop SDKs in C / C , Python, Matlab, and LabVIEW
- Create wireframe concepts of User Interfaces (UI)
- Architect software applications supporting multiple Thorlabs products
- Develop unit and regression tests
- Provide sustaining support for released software in the form of bug fixes and feature additions
- Contribute to DevOps through sustaining existing production pipelines and connecting new applications to our CI/CD infrastructure
- Participate in software quality control workflows and code reviews
- Provide scope of work assessments
- Advise and mentor junior engineers
The Company retains the right to change or assign other duties to this position.
Salary range for this position is 120K to 145K
Qualifications
Experience
· Professional experience developing customer facing desktop software applications running on Windows
· Expert knowledge in C# .NET
· Competency with C and C programming
· Capability to independently configure compiler toolchains
· Knowledge of software development best practices
· Independent facility with version control tools (git)
· Enthusiasm and skill for creating attractive Graphical User Interfaces (GUIs)
· Understanding of Ethernet, WiFi, and USB interfaces on modern Windows and Linux Machines
· 5-10 years of professional software development experience
· Experience setting up software build toolchains from scratch
Education:
BS or MS Degree in Computer Science or equivalent experience
Specialized Knowledge and Skills:
- C# .NET (essential)
- C (essential)
- C (essential)
- Python (essential)
- Matlab (nice to have)
- LabVIEW (nice to have)
- Windows and / or Linux Kernel Drivers (nice to have)
- Sockets and COM port programming
- Object Oriented Design principles
- CMake
- GCC
- Visual Studio (essential)
- Azure DevOps
- UI / UX development (essential)
- Knowledgeable of common design patterns in desktop software development
- Good planning, prioritizing and organization and multiple priority management skills.
Thorlabs values its diverse environment and is proud to be an Equal Employment Opportunity/Affirmative Action employer. All qualified individuals will receive consideration for employment without regard to race, color, religion, gender, gender identify or expression, sexual orientation, national origin, genetics, disability, age or veteran status. Job descriptions are not intended as and do not create employment contracts. The organization maintains its status as an at-will employer. Employees can be terminated for any reason not prohibited by law.
Thorlabs offers a complete benefits package that includes medical, dental and vision insurance, company paid life insurance, a generous PTO package, a 401(k) plan, and tuition reimbursement just to name a few.