Scientific Software Engineer

Riverside Research Institute
Champaign, United States of America
12 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Junior
Compensation
$ 200K

Job location

Champaign, United States of America

Tech stack

Microsoft Windows
Algorithm Design
Software Applications
Confluence
JIRA
C++
CMake
Compilers
Program Optimization
Profiling
Code Review
Computer Simulation
Computer Programming
Computer Engineering
Continuous Integration
Data Visualization
Software Debugging
Software Design Patterns
Linux
Fortran
Python
OpenMP
Software Architecture
Scientific Computating
Software Engineering
Multithreading
Graphics Processing Unit (GPU)
Parallel Computation
Scalability Testing
GIT
Information Technology
Atlassian Tools
Modeling and Simulation
Bitbucket
Bamboo

Job description

Riverside Research's Applied Mathematics and Physics Solutions Division is seeking an experienced Scientific Software Engineer to join our team in developing our high-performance computing (HPC) electromagnetic analysis simulation toolset. The candidate will add new features to our codebase and modernize some of the legacy sections. Our developers are involved in all phases of the software development lifecycle, including requirements analysis, design, coding, testing, debugging, documenting and peer-reviewing other team members' code. Our software product is a state-of-the-art computational electromagnetic (CEM) tool for the defense industry, where efficiency and high-performance really matter. You will collaborate closely with our diverse team of physicists, engineers, mathematicians and developers. We expect our developers to be knowledgeable in algorithm design, code efficiency, compiler optimization, high-performance computation, parallel programming and be able to follow software development best practices. Responsibilities Design, implement, optimize, and maintain HPC CEM applications written in C++, Fortran, and Python by collaborating with physicists, RF engineers, and applied mathematicians.

  • Implement new features and correct known issues while participating in all stages of the software development lifecycle, including requirements analysis, software architecture definition, design reviews, code reviews, and continuous integration testing.
  • Produce robust and scalable software designs that balance today's requirements with expectations of future needs.
  • Optimize code performance with your knowledge of parallelization, vectorization, compilers, code profilers, scalability testing, algorithm efficiency, and design patterns.
  • Develop new and port existing code to execute on graphics processing units (GPUs).
  • Perform analysis of alternatives when multiple solutions exist and present them to users.
  • Create and maintain user and developer documentation.
  • Keep up to date with state-of-the-art software engineering practices.
  • Follow the organization's established code development standards and practices.
  • Other duties as assigned.

Requirements

  • Ability to obtain and maintain a TS/SCI security clearance.
  • Experience programming and debugging non-trivial projects in low-level languages such as C, C++, or Fortran.
  • Demonstrated ability to build and maintain complex production-quality software.
  • Experience working with one or more of the following:
  • HPC/supercomputing;
  • Code optimization;
  • Computer simulation;
  • Physics-based modeling and simulation; or
  • Scientific computing.
  • Excellent communication skills and ability to work in and with a team.
  • Education and Experience:
  • Degree in Computer Science, Computer Engineering, or a related field with software development experience.
  • Bachelor's with 5+ years of experience, or
  • Master's with 2+ years of experience, or
  • PhD with 0 years of experience
  • Relevant years of experience may be substituted in lieu of a degree.
  • A willingness to learn and perform other duties as assigned.
  • Ability to travel (less than 10%).

Desired Qualifications:

  • Expertise in C++11 and newer.
  • Familiarity with HPC/supercomputing: MPI, OpenMP, multi-threading, and GPUs.
  • Familiarity with developing cross-platform (Windows and Linux) software.
  • Familiarity with Python or other similar high-level languages.
  • Familiarity with CMake and CTest.
  • Familiarity with 3D data visualization.
  • Familiarity with radiofrequency (RF) and radar system concepts such as fields, antenna patterns, radar cross section (RCS), range profiles, and similar.
  • Experience with numerical algorithms and techniques for scientific software applications.
  • Experience with Atlassian tools (Jira, Bitbucket, Bamboo, and Confluence) and git.

Benefits & conditions

$95,000 - $200,000 This represents the typical compensation range for this position based on experience, location and other factors. Closing Statement Riverside Research Institute is a not-for-profit, technology-oriented defense company, where service to our customers and support of our staff is our overall mission. Riverside is an affirmative action-equal opportunity employer and complies with all applicable federal, state, and local laws regarding recruitment and hiring. Riverside offers comprehensive compensation and benefit packages to our employees.

About the company

Riverside Research is an independent National Security Nonprofit dedicated to research and development in the national interest. We provide high-end technical services, research and development, and prototype solutions to some of the country's most challenging technical problems.

Apply for this position