Software Engineer 3 - IV
InterImage · Annapolis Junction, MD · 2 mo ago
On-siteInformation Technology$50k/yrFull-time
About the role
The Software Engineer develops, maintains, and enhances complex and diverse software systems based upon documented requirements. They work individually or as part of a team, reviewing and testing software components, resolving software problem reports, and providing input to the software components of system design.
Responsibilities
- Analyze user requirements to derive software design and performance requirements
- Debug existing software and correct defects
- Provide recommendations for improving documentation and software development process standards
- Design and code new software or modify existing software to add new features
- Integrate existing software into new or modified systems or operating environments
- Develop simple data queries for existing or proposed databases or data repositories
- Write or review software and system documentation
- Serve as team lead at the level appropriate to the software development process being used on any particular project
- Design or implement complex database or data repository interfaces/queries
- Develop or implement algorithms to meet or exceed system performance and functional standards
- Absorb or assist with developing and executing test procedures for software components
- Modify existing software to correct errors, 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 outcome and consequences of design
- Design or implement complex algorithms requiring adherence to strict timing, system resource, or interface constraints
- Perform quality control on team products
- Implement recommendations 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
- Cook up and monitor equipment functioning to ensure operational specifications are met
- Recommend new technologies and processes for complex software projects
- 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
Requirements
- Twelve years experience as a SWE in programs and contracts of similar scope, type, and complexity
- Bachelor's degree in Computer Science or related discipline from an accredited college or university
- Four years of additional SWE experience on projects with similar software processes may be substituted for a bachelor's degree
Qualifications
- Analyzes system performance standards
- Confers with users or system engineers
- Analyzes systems flow, data usage and work processes
- Investigates problem areas
- Modifies existing software to correct errors, adapt to new hardware, or improve its performance
- Designs or implements complex algorithms requiring adherence to strict timing, system resource, or interface constraints
- Performs quality control on team products
- Implements recommendations for improving documentation and software development process standards
- Oversees one or more software development teams and ensures the work is completed in accordance with the constraints of the software development process being used on any particular project
- Confers with system engineers and hardware engineers to derive software requirements and to obtain information on project limitations and capabilities, performance requirements and interfaces
- Cooks up and monitors equipment functioning to ensure operational specifications are met
- Recommends new technologies and processes for complex software projects
- Selects the software development process in coordination with the customer and system engineering
- Ensures quality control of all developed and modified software
- Delegates programming and testing responsibilities to one or more teams and monitors their performance
Skills
- Front-End Web Development Languages: Javascript (and eventually some Typescript), React/JSX
- Back-End Development Languages: node.js/Javascript, Rust (for high-performance or secure portions), Python, shell script
- Micro-Services architecture: Kubernetes, Helm Charts, Micro-Services deployment patterns, Service-mesh, Multi-site applications, Load Balancing topologies, Cloud Migration Tech-Stack Familiarity
- Architecture: Nifi
- Testing frameworks: JEST
- Monitoring tools: Grafana
- Data storage: InfluxDb, Elasticsearch, Redis, mysql, Apache Superset, RabbitMQ/Kafka/Message Fabrics
- Automation tools: Ansible, Salt, Terraform
- Networking: Web-Sockets, JBLOCKS, CASPORT, Neo4j
- Security: Agency Security Labels (CAMKEY, LAC, COI, etc.)
Benefits
- 401K: up to 3% discretionary profit sharing contribution + 100% match on the 1st 7% of pay
- PTO: 20 days per year
- Healthcare, dental, vision, Free for a single participant $50,000 Life insurance provided, additional voluntary life insurance available
Pay
TBD
Schedule
TBD