Scientific Software Engineer

Riverside Research Institute

$95K — $200K *
Aerospace & Defense
Less than 5 years of experience
Job Overview by Ladders

Qualifications

  • Ability to obtain and maintain a TS/SCI security clearance
  • Experience with low-level programming in C, C++, or Fortran
  • Proven ability to build and maintain complex software
  • Experience in HPC, code optimization, or scientific computing
  • Excellent communication and teamwork skills
  • Degree in Computer Science or related field with relevant experience

Responsibilities

  • Design and optimize HPC applications in C++, Fortran, and Python
  • Implement new features and address known issues throughout the software lifecycle
  • Create scalable software designs considering future needs
  • Optimize performance using parallelization and algorithm efficiency
  • Develop and migrate code to run on GPUs
  • Analyze multiple solutions and present options to users
  • Maintain comprehensive user and developer documentation
  • Stay updated with cutting-edge software engineering practices

Benefits

  • Collaboration with a diverse team of experts
  • Opportunity to work on state-of-the-art defense technology
  • Engagement in all phases of the software development lifecycle
  • Potential for learning advanced computational techniques
  • Work within an established organization with high standards
Full Job Description
Position Overview

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.
Qualifications

Required Qualifications:

  • 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.

 

Global Comp$95,000 - $200,000 This represents the typical compensation range for this position based on experience, location and other factors.

Similar Jobs

More Jobs at Riverside Research Institute

More Aerospace & Defense Jobs

Find similar Scientific Software Engineer jobs: