Full-stack Software Engineer I
BAE Systems, Inc.
About the Role
BAE Systems, Inc. is seeking a Full-stack Software Engineer I to join the Electronic Combat Solutions (ECS) team. This role involves developing applications using modern programming languages and focusing on cloud-native environments. The position follows a hybrid work format.
Key Responsibilities
- Develop applications using modern programming languages such as Node.js, Google Go, or Python.
- Gain experience with both relational and non-relational databases.
- Demonstrate a strong understanding of microservices architecture, including development and deployment in containerized environments using Kubernetes.
- Understand how to scale applications in a cloud-native environment, leveraging cloud services.
- Support through all phases of the software development lifecycle.
Requirements & Tech Stack
- Bachelor's degree in Computer Engineering or Computer Science.
- Ability to obtain US Secret Clearance.
- A minimum of 6 months of professional experience in programming and software development across multiple layers of the software stack (UI, web services, microservices, databases).
- Node.js, Google Go, or Python.
- Relational databases (e.g., MySQL, PostgreSQL).
- Non-relational databases (e.g., MongoDB, Cassandra).
- Microservices architecture.
- Containerized environments using Kubernetes.
- Cloud environments.
Qualifications
- Proficiency in using project management, documentation, and source control tools.
- Familiarity with cloud-native technologies and services beyond Kubernetes, such as service meshes (e.g., Istio, Linkerd), serverless frameworks, and cloud-specific resource management.
- Familiarity in implementing security best practices in application development and deployment.
- Knowledge in utilizing observability tools (e.g., Prometheus, Grafana, ELK stack) for monitoring and troubleshooting applications.
- Experience with agile development methodologies.
- Previous experience working within cross-functional development teams.
- Proven experience in leading or advanced programming and software development, including analysis, design, development, implementation, testing, maintenance, quality assurance, troubleshooting, and/or upgrading of software systems.
- Demonstrated ability to troubleshoot and support enterprise applications while ensuring 24/7 availability.
- At least 2 years of experience in full-stack development.
- Familiarity with Test-Driven Development (TDD) methodologies and continuous integration/continuous deployment (CI/CD) practices.
- Experience in ensuring high availability and reliability of enterprise applications.