Research Programmer / Senior Research Programmer

Scientific Software and Applications Directorate

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

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 science enterprise. At NCSA, University of Illinois faculty, staff, students, and collaborators from around the globe use advanced digital resources to address research grand challenges for the benefit of science and society. NCSA has been advancing one third of the Fortune 50 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 Research Programmers/Senior Research Programmers to develop and engineer scientific software 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. The successful incumbent 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. The Research Programmer/Senior Research Programmer will also have the opportunity to give presentations at conferences or other venues, and contribute to publications and grant proposals.

Key responsibilities

Research Programmer
  • Engineer and develop software that addresses real world complex problems with simple interfaces to powerful backend tools and analyses across basic science, engineering, the humanities and social sciences, both independently and in collaboration with team members.
  • Work with researchers across a variety of domains to leverage synergies across projects and design and support common cyberinfrastructure to support a broad range of communities.
  • Use independent judgment to evaluate and integrate collaborative input and design new approaches and techniques to address project specific needs and critical technological challenges.
  • Evaluate the strengths and weaknesses between varieties of novel approaches to software development problems.
  • Communicate findings with project colleagues, including primary investigators, to be used as needed in current programming and design efforts.
  • Employ methodologies and develop code which supports an environment of secure systems and design and develop security-oriented programs which by nature defend against disruption or misdirection of services.
  • Track research activity in relevant fields both programmatic and domain specific.
  • Publish and present results of scientific software research and development at national and international conferences.
Senior Research Programmer

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

  • Oversee and develop projects in scientific software engineering in support of projects and research.
  • Ensure project deliverables are completed within deadlines.
  • Contribute significantly to publications and grant proposals.
  • Guide project team members in terms of developing software and tools as well as prioritization of deliverables and deadlines.

Required education and experience

Research Programmer
  • BA/BS in computer science. Alternative degree fields will be considered/accepted if accompanied by equivalent experience.
  • Experience in software development.
  • Ability to clearly communicate results and their importance (verbally and in writing).
Senior Research Programmer
  • BA/BS in computer science. Alternative degree fields will be considered/accepted if accompanied by equivalent experience.
  • Five years of experience in software development.
  • Ability to clearly communicate results and their importance (verbally and in writing).

Preferred experience

Research Programmer
  • Programming in one or more of the following: C/C++, Java, PHP, Python, Scala, Ruby, Javascript.
  • Web development: server side scripting, client side frameworks, HTML5, CSS, REST, OAuth.
  • Databases: MySQL, MongoDB, PostgreSQL.
  • Linux DevOps experience with rapid prototyping.
  • 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.
    • Parsers and protocol analyzers.
    • HPC environments, cloud computing, and/or systems administration.
    • Networking/security protocol or log analysis.
    • Authentication/Authorization protocols and standards (e.g., SAML, OAuth, TLS, Kerberos).
Senior Research Programmer
  • Programming in one or more programming languages (e.g. Java, C++, Python, Scala, Ruby, Javascript).
  • 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).
  • Web development: server side scripting, client side frameworks, HTML5, CSS, REST, OAuth.
  • Databases: MySQL, MongoDB, PostgreSQL.
  • Linux DevOps experience with rapid prototyping.
  • 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.
    • Parsers and protocol analyzers.
    • HPC environments, cloud computing, and/or systems administration.
    • Networking/security protocol or log analysis.
    • Authentication/Authorization protocols and standards (e.g., SAML, OAuth, TLS, Kerberos).

This is a regular academic professional position at NCSA and is an annually renewable, 12/12, 100%-time appointment with full 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, 2017. Contact information for three references must be included on the application (letters maybe also be uploaded or sent to the contact below). 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.