Full Job Description
The Software Engineer develops, maintains, and enhances complex and diverse software systems (e.g., processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, and business management information systems) based upon documented requirements. Works individually or as part of a team. Reviews and tests software components for adherence to the design requirements and documents test results. Resolves software problem reports. Utilizes software development and software design methodologies appropriate to the development environment. Provides specific input to the software components of system design to include hardware/software trade-offs, software reuse, use of Commercial Off-the-shelf (COTS)/Government Off-the-shelf (GOTS) in place of new development, and requirements analysis and synthesis from system level to individual software components.
Qualifications:
3030 Ten (10) years' experience as a SWE in programs and contracts of similar scope, type, and complexity is required.
3030 Bachelor's degree in Computer Science or related discipline from an accredited college or university is required.
3030 Four (4) years of additional SWE experience on projects with similar software processes may be substituted for a bachelor's degree.
Position Details:
3030 Design, document, and execute tests of FOSS, COTS, and GOTS software architectures to determine what aspects of the software and/or computer infrastructure are limiting performance. Research and identify metrics necessary to understand performance limitations of the software and/or computer infrastructure to support testing. Research and identify monitoring necessary to support timely alerting of infrastructure and software failures encountered during testing.
3030 Identify hardware and software failure trends and develop mitigations encountered during testing.
3030 Perform root cause analysis.
3030 Work with the customer metrics and monitoring team to introduce new metrics capabilities to support testing.
3030 Modify the software architecture and/or develop new software capabilities to overcome performance limitations encountered during testing.
3030 Experience with the distributed computing FOSS software frameworks below is beneficial: Apache Spark, Dask, and Ray.
3030 Experience developing software in the languages below is beneficial: Python, Scala, Java, and C.