Assistant Research Programmer/Research Programmer/Senior Research Programmer

Integrated Cyberinfrastructure

*** search extended until Dec. 31, 2019 ***

The National Center for Supercomputing Applications (NCSA) at the University of Illinois at Urbana-Champaign provides supercomputing and advanced digital resources for the nation's scientific enterprise. At NCSA, University of Illinois faculty, staff, students, and collaborators from around the globe use advanced digital resources to address and research grand challenges for the benefit of science and society. NCSA has been advancing one third of Fortune 50® companies for more than 30 years by bringing industry, researchers and students together to solve grand challenges at rapid speed and scale.

NCSA is currently seeking one or more Assistant Research Programmer/Research Programmer/Senior Research Programmer(s) to create 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. 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 have the opportunity to represent the group at meetings, give presentations at conferences or other venues, and contribute to publications and grant proposals.

NCSA is committed to increasing the diversity of the campus community. Candidates who have experience working with a diverse range of faculty, staff, and students, and who can contribute to the climate of inclusivity are encouraged to apply.

Key responsibilities

Assistant Research Programmer
Research software and application development
  • 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.
  • 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
  • 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.
Research Programmer

These include the key responsibilities for the Assistant 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.
Research communication
  • Publish and present results of scientific software research and development at national and international conferences.
System architecture and design
  • Design and build the infrastructure necessary to support research projects. Engineer the underlying architecture of the project.
Senior Research Programmer

These include the key responsibilities for the Research Programmer in addition to the following:

Research software and application development
  • Oversee multiple projects: ensure deliverables and deadlines are met, contribute to proposals, and guide developers in project management.
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

Assistant 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).
  • Course level experience in software development and a year or less of relevant programming experience.
  • Ability to clearly communicate results and their importance (verbally and in writing).
  • Ability to provide input for reports, presentations, and grant proposals.
Research Programmer

These include the requirements of the Assistant Research Programmer with the addition of the following:

  • At least three years of experience in relevant software development.
Senior Research Programmer

These include the requirements for the Research Programmer with the addition of the following:

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

Preferred experience

Assistant Research Programmer
  • One or more years of experience in relevant software development.
  • Experience or coursework in working with domain sciences.
  • Programming in one or more of the following: C/C++, Java, PHP, Python, Scala, Ruby, Javascript.
  • Web development (e.g., server-side scripting, client side frameworks, HTML5, CSS, REST, OAuth).
  • Databases (e.g., MySQL, MongoDB, PostgreSQL).
  • Linux DevOps experience.
  • Contributions towards research publications.
  • Experience in one or more of the following:
    • Machine learning or data mining.
    • Natural language processing.
    • Geospatial data management and programming.
    • High-speed, real-time data analysis.
    • Computer vision or graphics.
    • HPC environments, cloud computing, and/or systems administration
Research Programmer

This is the same as the preferred experience for the Assistant Research Programmer.

Senior Research Programmer

These include the preferred experience of the Assistant Research Programmer and Research Programmer with the addition of the following:

  • Experience working with domain sciences.
  • Proficient in three or more programming languages with an ability to explain/decide why one would be utilized over another in different development scenarios.
  • Subject matter experts on one or more technologies.
  • Ability to establish a software development effort from the ground up (create software from scratch).

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.

To apply, please create your candidate profile at jobs.illinois.edu and upload your cover letter and CV/resume by the close date, December 31, 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.

Illinois is an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, religion, color, national origin, sex, age, status as a protected veteran, or status as a qualified individual with a disability. Illinois welcomes individuals with diverse backgrounds, experiences, and ideas who embrace and value diversity and inclusivity. Visit www.inclusiveillinois.illinois.edu.

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