Software Engineer Unix, Bash, Rust
Listed on 2026-09-02
-
Software Development
Software Engineer, DevOps
Software Engineer 3 - (Unix, Bash, Rust)
- Annapolis Junction, Maryland
Software Engineer 3 - (Unix, Bash, Rust)
Clearance: TS/SCI - Polygraph required
Position : 02-518-SWE3
Location: Annapolis Junction, Maryland
Description:
The Software Engineer designs, develops, tests, deploys, documents, maintains, and enhances complex and diverse software systems based upon documented requirements. These systems might include, but are not limited to, processing-intensive analytics, novel algorithm development, manipulation of extremely large data sets, real-time systems, business management information systems, and systems which incorporate data repositories, data transport services, and application and systems development and monitoring.
Works individually or as part of a team.
The Dev Ops Software Engineer shall be part of a team responsible for designing, developing and maintaining a comprehensive distributed Metrics and Monitoring solution for HPC systems to ensure the reliability, performance, and scalability of HPC infrastructure.
- 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 Open Source Software (OSS) and/or Commercial Off-The-Shelf (COTS) Government Off-The-Shelf (GOTS) software in place of new development, and requirements analysis and synthesis from system level to individual software components.
- Analyze user requirements to derive software design and performance requirements.
- Debug existing software and correct defects.
- Design and code new software or modify existing software to add new features.
- Write or review software and system documentation.
- Integrate existing software into new or modified systems or operating environments.
- Develop simple data queries for existing or proposed databases or data repositories.
- Has experience with agile development processes.
- Has experience with source code control systems, such as Git.
- Serve as team lead at the level appropriate to the software development process being used on any particular project.
- Design and development of relational and non-relational database applications.
- Use of orchestration frameworks such as Spring and Kafka.
- Familiarization with queue management systems
- Develop or implement algorithms to meet or exceed system performance and functional standards.
- Develop and execute test procedures for software components.
- Develop software solutions by analyzing system performance standards and conferring with users or system engineers; analyzing systems flow, data usage and work processes; and investigating problem areas.
- Modify existing software to adapt to new hardware or to improve its performance.
- Design, develop, and modify software systems using scientific analysis and mathematical models to predict and measure outcomes and consequences of design decisions.
- Java development using the Eclipse IDE (Integrated Development Environment).
- Development of Java 2 Enterprise Edition (J2EE) applications
- Experience using collaboration and software development tools (ie. Atlassian).
- Experience with container technologies (ie. Docker).
- Unix shell scripting
- Development of event driven, or data driven analytics
- Development of cloud-based solutions and technologies.
- Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints. Perform quality control on team products.
- Recommend and implement suggestions for improving documentation and software development process standards.
- Oversee one or more software development teams and ensure the work is completed in accordance with the constraints of the software development process being used on any particular project.
- Confer with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements, and interfaces.
- Coordinate software installation on a system and monitor performance to ensure operational specifications are met.
- Recommend new technologies and processes for complex software projects.
- Serve as the technical lead of multiple software development teams.
- Select the software development process in coordination with the customer and system engineering.
- Ensure quality control of all developed and modified software.
- Delegate programming and testing responsibilities to one or more teams and monitor their performance.
Position
Required Skills:
- Ability to perform shell scripting.
- Working knowledge of Configuration Management (CM) tools and Web Services implementation.
- Experience using the Linux CLI and Linux Tools
- Experience developing Bash scripts to automate manual processes
- Recent software development experience using Rust and Python
- Experience using Splunk for data collection, message brokers,…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).