- Salary
- $133k – $200k
- Location
- Fairfax, VA, US
- Department
- IT
- Seniority
- Senior
- Experience
- 8+ years
- Education
- PhD
- Clearance
- Required
- Closing date
- Today
- Source
- iCIMS
Description
Riverside Overview
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. All Riverside Research opportunities require U.S. Citizenship.Position Overview
Riverside Research’s Applied Mathematics and Physics Solutions group is seeking an experienced Software Engineer to assist in the development of high-performance, large scale simulation tools for electromagnetic analysis. The candidate will help continue to improve our software development and testing practices, train new developers, review code and generally advance code development and testing activities for our state-of-the-art in defense industry computational electromagnetic (CEM) tools in collaboration with our diverse team, with backgrounds in CEM, physics, computer science, electrical engineering, applied mathematics, and high-performance computing (HPC).
Candidate can work in our facilities in Fairfax, VA, Dayton, OH, Champaign, IL, or New York, NY.
Responsibilities
- Assists the team with requirements, design, development, documentation, testing (validation and verification), deployment and debugging high performance CEM software applications.
- Drives software quality through rigorous design reviews, peer reviews, automated testing and continuous integration. This may include developing test plans, supporting and improving our automated testing infrastructure, and performing testing.
- Architects and implements scalable and maintainable new features and modernizes legacy code using best practices in software engineering, identifying possible improvements during the development cycle
- Contributes to and maintains software development best practices, training material for scientific programmers on software development best practices, structure and design theory, software documentation, release cycles and version control processes
- Collaborates with physicists, RF engineers, and applied mathematicians to translate complex models into efficient code
- Mentors junior developers and fosters a culture of scientific rigor and engineering excellence
- Stays informed of advancements in computational tools, scientific frameworks, software engineering best practices and data modeling
- Other duties as assigned
Qualifications
Required Qualifications:
- Must be eligible for TS/SCI security clearance and consent to CI Poly
- Education and Experience:
- Degree in Software Engineering or closely related field with software development experience, like Computer Science or Computational Science
- Bachelor's with 8+ years of experience, or
- Master's with 6+ years of experience
- PhD with 3+ years of experience
- Relevant years of experience may be substituted in lieu of a degree.
- Strong understanding of software development methodologies (e.g., waterfall, agile), version control (Git), and continuous integration
- Previous experience working in R&D environments or collaborating with researchers
- Proven proficiency in multiple programming languages (e.g., Python, C, C++, Fortran)
- Familiarity with software development activities such as:
- Software development on and for Linux and Windows
- Front end and GUI development
- Python, Unix shell scripting and similar languages
- HPC/supercomputing: MPI, OpenMP, threading, GPUs
- Research and Development/prototyping scientific code
- Excellent communication skills and proven ability to work cross-functionally
- Ability to work independently and collaboratively with a team as projects require
- Willingness to learn and perform other duties as assigned
- Ability to travel (less than 10%)
Desired Qualifications:
- Active Security Clearance, TS/SCI (with CI poly preferred)
- Proven software engineering best practices experience (such as SWEBOK, CMMI)
- Demonstrated professional proficiency with:
- Working collaboratively within a team on software development
- The full software development lifecycle (SDLC)
- Parallel programming on high-performance computers (MPI and/or OpenMP or similar)
- Developing cross-platform (Windows and Linux) software
- The Atlassian tools (JIRA, bitbucket, Bamboo)
- Experience developing software for scientific applications
- Familiarity with linear algebra and numerical solutions techniques or numerical algorithms
- Proven experience leading and directing the efforts of a team
- Prior supervisory experience