Turn cutting-edge code into clearer views of the universe as our new Adaptive Optics Software Engineer!
Join W. M. Keck Observatory as an Adaptive Optics Software Engineer and help develop the advanced software and real-time control systems that sharpen our view of the cosmos. You’ll collaborate with engineers and scientists to solve complex challenges, support world-class observing, and advance the technology behind astronomical discovery.
What the Adaptive Optics Software Engineer Does:
The Adaptive Optics Software Engineer designs, develops, tests, and maintains the sophisticated software that powers the Observatory’s adaptive optics and related subsystems. These subsystems include the AO real-time control systems, laser control systems, telemetry data systems, and interfaces to the telescope control system and science instruments. Working collaboratively with engineers, scientists, and external partners, the Adaptive Optics Software Engineer integrates new technologies, analyzes system performance, troubleshoots operational challenges, and advances innovative techniques—including predictive control, sensor fusion, and machine learning. From software development in the lab to commissioning and testing at the summit, the Adaptive Optics Software Engineer helps keep Keck’s world-class observing systems reliable, efficient, and performing at their peak.
Why Choose W. M. Keck Observatory:
Competitive starting salary
Generous benefits package, including 4 weeks of annual paid vacation
A robust 8% 403(b) employer contribution (with a 4% employee contribution)
Tuition assistance for dependent children grades K-12 attending private school on Hawai’i Island
Comprehensive, employer provided health insurance
We offer relocation support for candidates moving from outside the area
Be a part of a dedicated team working on the frontiers of astronomy
Required Qualifications:
Education
Bachelor of Science or equivalent in Computer Science, Computer Engineering, Electrical Engineering, Physics, or Applied Mathematics
Experience
Five (5) years experience in development of software for engineering or scientific applications
Two (2) years or more of experience in motion control and related hardware
Five (5) years experience in programming in C or C++, and Python
Experience developing real-time control applications
Experience implementing automation controls (such as device control, motion control and sequence control) in a scientific or industrial setting
Experience with real-time operating systems
Experience in Unix/Linux and shell scripting
Skills
Mastery of software engineering principles and practices
Demonstrated data analysis skills with experience in either Python, IDL, or MATLAB
Technical Competencies
Microsoft Office Proficiency
Broad knowledge of modern software engineering practices, especially in software re-use and testability
High level of competency in C, C++, or Python programming
Strong competency using O-O paradigm and design patterns in delivering software solutions
Practical experience of configuration management, build and release management processes