Entry Level Software Engineer
JOB DESCRIPTION *
Naval Nuclear Laboratory (NNL) seeks a Scientific Software Engineer to provide leadership in the area of software development on a diverse technical team. The ideal candidate will work collaboratively to identify and solve engineering problems and will require interactions across application developers, engineering users, and system administrators. Work assignments will include designing, implementing, testing, verifying, deploying, and maintaining engineering software within modern computing architectures. Other job responsibilities will include troubleshooting software user issues, refactoring software to improve capability and performance, and working with structural and materials engineers to integrate new technologies into NNL developed user subroutines and supporting software tools. Application areas include structural analysis and material models. The ideal candidate will work closely and collaboratively with other software developers and engineering users to identify and solve technical problems through implementation of software products.
REQUIRED SKILLS *
- BS degree in software engineering, computer science or Bachelor's degree in an engineering or science related field from an accredited college or university
- Experience in software design and development workflows and utilities (e.g. unit testing, continuous integration, version control, debugging, profiling, compiler operation and optimization.
- Experience developing subroutines and software with both compiled (e.g. C, C++, Fortran) and interpreted (e.g., Python) scientific computing languages.
- Experience with High Performance Computing.
- Experience with software development on Linux OS including use of compilers and the GNU make tool. Experience with modern Fortran language including use of modules.
- Prior use and familiarity with version control systems such as Git, Subversion, and CVS.
- Ability to work independently as well as in interdisciplinary teams with minimal supervision.
- Experience publishing (technical reports, etc.) and presenting technical material.