High Level Software Engineer

Submission Information
Publish Date: 
Saturday, April 13, 2019
Archive Date: 
Saturday, May 25, 2019
Job Summary
Job Category: 
Science Engineering
Institution Classification/Type: 
La Serena
Job Announcement Text: 

The Gemini Observatory operates two state-of-the-art 8-Meter telescopes, one in Chile and one in Hawaii.  Gemini is undertaking an upgrade of its Observatory Control Software (OCS) and is seeking a dedicated software engineer to assist with this work.  The OCS provides the infrastructure and tools to support proposal submission, program preparation, planning and execution of science projects, and is a critical component of the telescope operational software. In addition, the OCS will be integrated with a global network of observatories enabling Gemini to perform follow up observations of time-domain based astronomy.

This position will work closely with Gemini software engineers, scientists and telescope operators to upgrade the OCS, simplify its operation, reduce complexity and facilitate long-term maintenance. Our legacy system is Java-based but we are working towards upgrading it to a pure functional system using Scala and the Typelevel software stack. End-user tools will be web-based, using React, css, scala.js and Javascript. A significant part of the work will be focused on these end user tools, so experience with these technologies will be important.

Duties and Responsibilities:

  1. Develop and maintain end user software tools to support telescope operations.
  2. Translate complex requirements into software models and elegant user experience designs.
  3. Translate software models into their relational database representations.
  4. Collaborate with other software engineers, scientists and telescope operator specialists.
  5. Follow a rigorous software development life cycle, including all phases: requirements gathering, design, documentation, development, testing and deployment.
  6. Provide clearly written documentation, both technical and user-oriented, including software interface control documents and user manuals.

Education Required:

This position requires a Bachelor’s degree in computer science, engineering or related field; an advanced degree in computer science is preferred.

Experience Required:

Must have a minimum two years of experience in design, implementation and testing of high-level software for both new and existing systems, especially focused on end-user software. Must have experience in functional programming using Scala and working experience on object-oriented languages, like Java. Must have experience in user interface development, especially in web applications using React, css, and javascript. Experience with scala.js will be a plus. Experience with developing and testing software in a Unix-like environment is required. Must have visual and user-focused design skills with an eye for details. Previous experience in an astronomical research or scientific environment is highly desirable but not required.

Skills Required:

Must be self-motivated and able to work independently to solve problems and organize work.  Must be able to work effectively as part of a widely distributed team.  Must be able to rapidly read, understand and document existing and poorly documented code.  Must have a rigorous approach to software development, documentation and testing. Must demonstrate good design skills. A good working level of the English language is required for this position.

The successful candidate will have a strong background in both functional and object oriented languages with experience in user interface design and development, especially in Scala and Java. Experience using GitHub and willingness to work with legacy code is required. Experience contributing to open source projects is a plus.

Application Deadline: 
Saturday, May 25, 2019
Current Status of Position: 
Accepting Applicants
Apply to Job
Attention To: 
AURA Human Resources
Institution/Company Job ID or Reference Code: 
Inquiries About Job