Software Engineer I or II
PLEASE NOTE: These are full-time positions. Initial consideration will be given to applications received prior to 4:00 p.m. on September 21st 2016, and applications received after that date will be reviewed until all positions are filled.
NCAR – Earth Observing Laboratory (EOL)
Partial relocation costs paid per UCAR’s relocation policy.
U.S. Citizenship, Permanent Residency, or other protected status under 8 U.S.C. 1324b(a)(3) is required for this position. UCAR/NCAR will not sponsor a work visa (e.g., J-1, H1-B, etc.) for this position.
The National Center for Atmospheric Research (NCAR) Earth Observing Laboratory (EOL) seeks multiple full-time Software Engineers to join a team of engineers, scientists, and technicians to support the development and deployment of advanced instrumentation for meteorological research. EOL serves the advanced observational needs of the atmospheric science community and provides opportunities for a diverse approach to software engineering, servicing many different platforms and instruments with specific requirements. EOL software engineers are involved with all aspects of instrument development, testing and deployment on atmospheric research field projects around the world. The EOL development environment is primarily Linux, C++, Python and Qt, with other leading technologies also playing a role. To see more: https://www.eol.ucar.edu/join-our-team
Please note: some positions will be located in Boulder, CO, and some will be located at the Rocky Mountain Metropolitan Airport in Broomfield, CO.
BASIC JOB FUNCTION:
Perform directed software design, development, testing, maintenance and field support of high performance research grade atmospheric observing systems. Develop and support observing system software for instrument control, data acquisition, system configuration, data archival, visualization, and diagnostics, both at home and in the field. Measurement technologies include atmospheric sounding, profiler, radar, optical, in-situ ground based and airborne platforms. Work on a team and collaborate with other engineers, scientists, and technicians.
- Participate in one or more of the following: real-time data system software development, instrument control, data acquisition, signal processing, network communications, remote operations, integrated data displays and data management. Debug software systems. Contribute to the design and implementation of software components. Work with other engineers and scientists to analyze instrument software requirements.
- Implement, enhance and support post processing, analysis and visualization software in support of EOL instrumentation and data. Contribute to the refactoring and maintenance of existing software tools.
- Support field projects, including system configuration, testing, deployment, and operation. Activities may include the installation and retrieval of measurement equipment, the deployment, configuration and debugging of computer systems and networks, and general help for field campaign operations. May serve as the first point of contact for software support of designated field systems, and may call for help from other software engineers as needed.
- Perform data system configuration management, software deployment, network management, and system debugging.
- Interact with and support users of EOL software, data, and instruments.
- Author technical reports, system documentation and operations manuals.
Education and Experience:
- Bachelor of Science in Computer Science or a physical science; and 1-5 years of relevant experience; or an equivalent combination of education and experience.
- Internships, capstone projects and similar practicums are considered experience for these positions.
Knowledge, Skills and Abilities:
- Demonstrated proficiency in object-oriented design.
- Skill in the development of reliable, structured, and efficient C++ code.
- Proficiency and experience with Linux operating systems.
- Experience with the application of team oriented software engineering practices, including revision control and concurrent development.
- Knowledge of bash/csh, python, or other shell scripting languages.
- Knowledge of software testing and configuration management.
- Ability to learn and apply new technology, tools and methods to software applications.
- Good oral communication and writing skills.
- Ability to effectively work on several projects at the same time.
- Ability and willingness to work with other software and technical staff in a team environment.