Research Programmer/Senior Research Programmer

Innovative Data and Database Services

*** search extended until Nov. 29, 2019 ***

The National Center for Supercomputing Applications (NCSA) advances discovery and innovation through extreme-scale computing, science-enabling software, and the skills of our expert staff. The center is part of the flagship University of Illinois at Urbana-Champaign—a world leader in research, teaching, and public engagement—and is located in a micro-urban community that combines cultural vibrancy with affordability and quality of life.

For more than 30 years, NCSA has partnered with visionaries to discover solutions to grand challenges for the benefit of science and society. Our advanced digital resources and world-class staff push research beyond the unimaginable. Can you imagine? We can.

NCSA is currently seeking one Research Programmer/Senior Research Programmer to join the Innovative Data and Database Services (IDDS) group, which offers data and database expertise to NCSA partners in science and industry resource allocation services. As a Research Programmer, you will provide scientific and research software development and engineering in support of projects and research which can include elements of data analysis, data ingestion and integration from heterogeneous sources, cybersecurity, web front ends, back end services that scale, as well as databases. In this position, you will interact with people in a wide range of educational, scientific, and engineering disciplines to design, develop, and support advanced software tools in areas such as civil and environmental engineering, biology, geoscience, digital humanities, library science, hazard management, medical informatics, astronomy, and computational science. Creativity, independence, a strong work ethic, as well as coordination with the project principal investigator(s) will be critical. You will also represent the group at meetings, give presentations at conferences or other venues, and contribute to publications and grant proposals.

Key responsibilities

Research Programmer
  • Research software and application development:
    • Research, engineer, and develop web, database, and other software solutions in support of research scientists using nationwide National Science Foundation-supported high-performance computers (HPCs) and other computing and science resources.
    • Work with Agile project teams using Model-View-Controller (MVC) pattern to continuously identify and implement improvements to existing applications.
    • Engineer and develop software that addresses real world complex research problems with interfaces to powerful backend tools and interdisciplinary analyses such as science, engineering, the humanities and social sciences.
    • Apply scientific domain knowledge to architect and design software programs to help researchers define and solve heterogenous problems, provide consulting expertise to researchers across a variety of domain sciences to leverage synergies across projects, and design and support shared cyberinfrastructure to support a broad range of communities.
    • Evaluate and integrate collaborative input and design new approaches and techniques to address project specific needs and critical technological challenges.
    • Track research activity in relevant fields both programmatic and domain specific.
    • Evaluate the strengths and weaknesses between varieties of novel approaches to research and scientific software development problems.
  • Research communication:
    • Publish and present results of scientific software research and development at national and international conferences.
    • Contribute to publications, technical reports, and documentation.
    • Communicate findings from research development activities above with project colleagues, including primary investigators, to be used as needed in current programming and design efforts.
  • System architecture and design:
    • Develop research-oriented code which supports an environment of secure systems, and design and develop security-oriented programs using established software development methodologies (i.e. agile, lean, rapid application, etc.) which by nature defend against disruption or misdirection of services.
Senior Research Programmer

These include the responsibilities of the Research Programmer with the addition of the following:

  • Research software and application development:
    • Drive research software development projects. This involves guaranteeing milestones are achieved, coordinating effort among project members, and recognizing emergent project needs and taking initiative to ensure these are addressed and resolved.
    • May direct and train hourly employees and interns.
  • System architecture and design:
    • Design and build the infrastructure necessary to support research projects. Engineer the underlying architecture of the project.

Required education and experience

Research Programmer
  • Bachelor's degree required, preferably in computer science or related field. Alternative degree fields will be considered if accompanied by equivalent experience (depending on nature and depth of experience as it relates to current NCSA business needs).
  • 3 years of experience in relevant software development.
  • Programming in one or more of the following: Ruby, Ruby on Rails, or Javascript.
  • Web development experience, such as server-side scripting, client side frameworks, HTML5, CSS, REST, or OAuth.
  • Ability to provide in-depth analysis of existing software solutions, to identify issues, and propose solutions or opportunities for improvement.
  • Ability to provide input for reports, presentations, and grant proposals.
  • Ability to clearly communicate results and their importance, verbally and in writing.
Senior Research Programmer

These include the qualifications of the Research Programmer with the addition of the following:

  • At least 5 years of experience in relevant software development.

Preferred experience

Research Programmer
  • Experience or Coursework in working with domain sciences.
  • Experience with databases such as PostgreSQL, Oracle, MongoDB, or MariaDB.
  • Experience working with the MVC software architectural pattern.
  • Experience working with HPC environments, cloud computing, and/or systems administration.
  • Experience with data analysis and data visualization tools.
  • Ability to provide input for reports, presentations, and grant proposals.

This is a regular academic professional position at NCSA and is an annually renewable, 12/12, 100%-time appointment with regular University benefits. Salary is commensurate with experience and start date will be as soon as possible after the close date of the search. Applicants must possess required education and experience by start date of position. Interviews and hires may occur before the closing date; however, all applications received by the closing date will receive full consideration. For further information regarding our application procedures, you may email fijalkov@illinois.edu.

To apply, please create your candidate profile at jobs.illinois.edu and upload your cover letter and CV/resume by the close date, November 29, 2019. Contact information for three references must be included on the application. For full consideration, candidates must complete the Hiretouch application process by the above date. The University of Illinois conducts criminal background checks on all job candidates upon acceptance of a contingent offer.

The University of Illinois is an Equal Opportunity, Affirmative Action employer. Minorities, women, veterans and individuals with disabilities are encouraged to apply. For more information, visit http://go.illinois.edu/EEO.

For further information regarding our application procedures, you may visit www.ncsa.illinois.edu or email NCSA-HR@illinois.edu.