Back to top

OPeNDAP is looking for a software engineer with C++ experience

Submitted by jimg on Thu, 10/20/2016 - 11:16

Position title: Software Engineer

Position type: Full-time employee, rate: commensurate with experience; benefits

Reports to: James Gallagher

ATTN: James Gallagher
125 W. Granite St., suite 210
Butte, MT 59701

Basic Function of Job

Support OPeNDAP by working on its contracts and grants. These contacts and grants are typically oriented toward software R&D, but candidates will also need to be flexible; they may be called upon to handle tasks more varied than typically associated software R&D in a large organization. This position requires, at a minimum, a person who can perform requirements development, design, prototyping, testing development and documentation of both user and system software. The software will be used in both government and academic settings (primarily) with some use in the private sector.


OPeNDAP, Inc. is a not-for-profit corporation formed in Rhode Island to develop data exchange middleware. OPeNDAP’s software is used in a variety of research and data management settings, including NASA and NOAA data centers as well as universities and private corporations. All of OPeNDAP’s software is open-source.

While OPeNDAP’s business office is in Narragansett, Rhode Island, we also have employees in Montana, Oregon and Colorado.


Main task: Modify the OPeNDAP Hyrax data server (a software product) so that it uses new capabilities being developed for the transport protocol on which the server is based.

  • Add new features to the server
  • Refactor existing server software
  • Fix issues in an existing software library
  • Add new features related to usability
  • Add new features related to ongoing protocol development
  • Develop software tests
  • Write documentation (aimed at end users)
  • Interact with other users of the software; handle problem reports, et cetera.

Decision Making

Confers with OPeNDAP personnel regarding major issues, but must be able to work with a high level of independence.

Problem solving

Seeks out appropriate information regarding the various systems and applies it in a timely fashion. Evaluates problem reports, makes estimates of requirements to attain a solution and is able to follow the problem to completion.

Math skills

Algebra, Logic, Calculus


  • C++ with an emphasis on OOP; experience with C++-2011 a plus
  • Java, JavaScript and Web services experience is a plus
  • Programming practices for implementing production quality software, including performing security audits on software
  • UNIX, Linux and/or OS/X; experience with Windows is a plus
  • Developing software libraries supporting multiple applications
  • Experience with working in a distributed team


  • B.S. in Computer Science; and
  • At least three years experience in software engineering or a related field; or
  • An equivalent combination of education and experience