Software Engineer

The HDF Group provides a unique suite of technologies and supporting services that facilitate the management of large and complex data collections. Its mission is to develop, advance and support HDF (Hierarchical Data Format) technologies and ensure long-term access to HDF data.

The HDF Group is a non-profit 501(c)3 spinoff from the University of Illinois, where it developed HDF technologies at the National Center for Supercomputing Applications from 1988-2006. The HDF Group contracts to provide customized consulting, software development, and advanced support services to organizations with challenging data-management requirements.

HDF technologies are used in virtually every industry and scientific domain to meet mission critical data management needs. Examples of the uses of HDF technologies include understanding global climate change, special effects in film production, flight testing, weather prediction, viewing medical images, analyzing DNA, designing vehicles, simulating thermonuclear explosions in space, and volcanology.

Job Summary

The Software Engineer will be part of a team that develops and supports Hierarchical Data Format (HDF) technologies. This position focuses on development and maintenance of HDF data access software, including HDF tools and the HDF5 library. HDF tools include command-line utilities and Java-based GUIs. The HDF5 library supports an extensive API  that implements the HDF5 abstract data model and storage model in the C language, with Fortran, C++, and Java wrappers. The applicant for this position should have interest in, and experience with, tool and API design and implementation, and must be comfortable working with customers and other team members. Experience with C and Java are required. Interest and experience in project management are preferred. Experience with all aspects of the software life cycle is preferred. Travel to client sites, workshops, and conferences may be required.

Essential Job Functions and Key Responsibilities

  • Participate in requirements analysis for HDF tools.
  • Design and implement new HDF tools and features.
  • Maintain and support HDF tools and libraries.
  • Produce and improve tools documentation, including requirements and design documents, code documentation, user documentation, and other reports as needed.
  • Provide a strong voice in development and maintenance priorities.
  • Work with customers.
  • Experiment with new technologies relevant to the area of tools development.
  • Work with other staff to improve the overall software design, development, testing, release, and support processes.
  • Provide user support beyond what is provided by Technical Support staff.
  • Help increase the popularity and acceptance of HDF technologies through contributions to quality software, excellent user support, and effective outreach activities.
  • Assist staff responsible for training users.
  • As needed, prepare and present demonstrations of the current technology at conferences, workshops, and to visitors.
  • Possibly take responsibility for project leadership, including staff supervision and project management.

Qualifications

Minimum requirements

  • A Bachelor degree is required, preferably in computer science or software engineering (Masters degree is preferred); experience and/or training may be considered depending on the nature and depth of the experience as it relates to current technologies.
  • Excellent knowledge of C or Java.
  • Experience with application development on Linux or other UNIX-like operating systems, and on Windows.

Knowledge, Skills, and Abilities required

  • Proven expertise in software development and maintenance.
  • Broad practical knowledge of various operating systems.
  • Ability to communicate clearly to all types of audiences – from the inexperienced to highly technical users.
  • Ability to work on several tasks simultaneously.
  • Strong organizational skills.
  • Strong oral and written communication skills.
  • Self-motivation and creativity.
  • Problem solving and analytical skills necessary to carry out essential job functions and key responsibilities.

Knowledge, Skills, and Abilities preferred

  • Knowledge of and experience with command-line tools design.
  • Knowledge of and experience with GUI design.
  • Knowledge of and experience with Java.
  • Knowledge of and experience with scripting languages such as Perl, Python, and Ruby.
  • Experience with agile software development.
  • Experience with XML.
  • Experience with software testing and quality assurance.
  • Experience with software performance evaluation and enhancement.
  • Experience with all aspects of the software life-cycle.
  • Experience working with HDF software.
  • Experience using GNU autotools.
  • Knowledge and experience in scientific programming and/or scientific data management.
  • Experience in technical writing.
  • Experience in project management.

The HDF Group offers a comprehensive collection of benefits including paid time off and health/dental/vision insurance, as well as company matching 401k to name a few.  The HDF Group is an Equal Opportunity Employer and has a strong commitment to diversity. In keeping with that commitment, individuals with disabilities, minorities, females, and veterans are encouraged to apply.

To ensure full consideration, please submit a resume, cover letter, salary history and references to HPC@hdfgroup.org.