Position Overview:
We are seeking an experienced Senior C++ Programmer to support the continued development, enhancement, and maintenance of the Comprehensive Passage (COMPASS) model, a complex ecological modeling application used to predict the effects of alternative dam and reservoir operations on juvenile salmon and steelhead survival and passage through the Columbia River hydropower system.
The successful candidate will work closely with our client s scientific and technical personnel to troubleshoot and debug the existing application, implement new ecological features, enhance the graphical user interface (GUI), improve model performance, and maintain the existing C++ codebase.
Key Responsibilities
- Develop, enhance, troubleshoot, debug, and maintain a large and complex C++ application.
- Support an existing COMPASS codebase consisting of approximately 230,000 lines of C++ code.
- Complete and enhance the application's graphical user interface (GUI).
- Develop functionality allowing users to modify model parameters and environmental data such as flow and temperature.
- Create and maintain the Windows installer package for the GUI.
- Complete development of the adult fish passage module, including functionality related to:
- Dam tailrace delays
- Adult fishway passage timing
- Reservoir travel time and survival
- Fallback over dams
- Harvest-related losses
- Implement new ecological and fisheries modeling functionality developed in collaboration with project scientists.
- Expand model capabilities related to tributary travel time and survival.
- Perform routine application maintenance and minor modifications.
- Identify and implement opportunities to improve model speed, efficiency, memory utilization, and overall functionality.
- Maintain compatibility with the existing development environment and code architecture.
- Work collaboratively with NOAA personnel to investigate technical issues and determine appropriate solutions.
- Maintain technical and user documentation.
- Provide regular progress reports and participate in scheduled and ad hoc project meetings.
Required Qualifications
- Degree in a computer science field.
- 10+ years of applied programming experience.
- Demonstrated proficiency and significant hands-on experience with C++.
- Ability to provide examples of successfully completed projects using C++.
- Strong understanding of object-oriented software design and development.
- Experience maintaining, debugging, and enhancing large and complex software codebases.
- Strong analytical and troubleshooting skills.
- Ability to collaborate effectively with technical personnel, scientists, and other project stakeholders.
- Strong written and verbal communication and technical documentation skills.
Technical Environment: C++17,Qt 6,Boost C++ Libraries, Git, Object-oriented C++ architecture, windows development and deployment, Windows, Linux, and MAC
Strongly Preferred Qualifications
- Coursework, education, or professional experience in one or more of the following:
- Ecology, Fisheries, Oceanography, Natural resources, Related environmental or biological sciences