Software Development Engineer
Date PostedFebruary 9, 2023
Expiration dateApril 10, 2023
Responsible for the design, development, testing, and management of the application development projects in support of IT infrastructure. This includes the programmatic integration of third-party components, the introduction of new custom capabilities, modification of existing code, process improvement recommendation, and automation of operations and maintenance tasks. Duties include technical project milestone reviews, code architecture sessions, resource estimation, and development best practices knowledge transfer.
- Responsible for program design, coding, testing, debugging, and documentation.
- Recommend and utilize the appropriate programming language for each component or workload based upon performance requirements, supportability, integration with existing components, maintainability, and other selection criteria deemed applicable.
- Have full technical knowledge of all phases of applications systems analysis and programming.
- Analyze business functions or processes to understand the needs for which applications are being designed.
- Be able to conduct large scale development efforts.
- Develop all components and services using industry best practices such as test driven development, centralized source code management, code reviews, and automated testing.
- Utilize continuous integration / continuous deployment (CI/CD) workflows to the maximum extent possible for all published components.
- Produce DevOps best practice templates and guides to serve as examples to other development teams interested in transitioning to DevOps development workflows.
- Provide assistance with the creation and maintenance of trusted computing components, such as operating system images, application templates, platform as a service infrastructure, etc.
- Provide subject matter expertise during the review of potential technologies proposed for integration with the environment.
- Fully document development efforts using a combination of code comments, project issue tracking, change requests, and formal documentation.
- Understand agile software design and be able to create/consume stories within a sprint structure.
- Ensure that software deployments minimally impact production workloads running in production environments. All developed components should be produced in accordance with industry best practices for high availability environments.
- Performance of analysis and tests, as needed, to aid the design process and to document the end item business functionality and performance requirements.
- 6 years’ experience in the design and development of complex server based, client/server, service oriented, micro-service, and/or n-tiered applications.
- Bachelor’s degree in relevant field preferred.
- Must have active Top Secret clearance.
- Experience serving as the engineer of complex technology implementations in a web service centric environment preferred.
- Experience with containerization technologies (e.g., LXC, Docker, Rocket) preferred.
- Experience with automation/configuration management using Chef, Puppet, Ansible, or similar preferred.