Principal Software Engineer
VT Group (VTG) · Hanover, MD · Yesterday
On-siteEngineering$200k–$245k/yrFull-time
What will you do?
- Analyze user, system, and mission requirements to derive software design, interface, and performance requirements.
- Design, develop, modify, test, integrate, and maintain complex mission-critical software systems.
- Develop high-quality software primarily using Python and related programming languages and frameworks.
- Design and implement distributed services and system interfaces using Protocol Buffers and gRPC.
- Debug existing software, identify root causes, and correct defects across complex applications and services.
- Create and maintain scalable, reliable, and highly available mission systems using modern software architecture and system design principles.
- Build, deploy, configure, and maintain containerized applications using Kubernetes, Helm, and Docker-based technologies.
- Create and maintain Helm charts, Kubernetes resources, deployment configurations, and supporting infrastructure.
- Develop and execute test procedures for individual software components, services, interfaces, and integrated systems.
- Develop automation scripts and tools to improve software development, testing, integration, deployment, and operational workflows.
- Support automated GitLab continuous integration and continuous deployment pipelines.
- Use scientific analysis and mathematical models to predict, measure, and evaluate software and system performance.
- Collaborate with systems engineers and hardware engineers to define software requirements, system interfaces, performance expectations, capabilities, and project limitations.
- Integrate software with databases, messaging platforms, search technologies, configuration services, and external interfaces.
- Troubleshoot application, container, deployment, network, database, and system integration issues.
- Review existing engineering practices and recommend improvements to software documentation, development processes, testing standards, coding practices, and deployment procedures.
- Create and maintain technical documentation throughout the software development life cycle.
- Participate in software architecture, design reviews, integration, verification, validation, deployment, and sustainment activities.
- Provide technical guidance and mentorship to software engineers as needed.
Requirements
- US Citizen with TS/SCI with Poly required.
- Bachelor’s degree in Computer Science, Software Engineering, Computer Engineering, Electrical Engineering, Mathematics, or a related technical discipline.
- Minimum of 20 years of professional software engineering experience.
- Advanced software development experience using Python.
- Strong experience developing distributed applications and services using Protocol Buffers and gRPC.
- Extensive hands-on experience with Kubernetes and container orchestration.
- Experience developing, configuring, and maintaining Helm charts.
- Experience designing and maintaining scalable, highly available, and mission-critical software systems.
- Experience debugging, testing, integrating, deploying, and supporting complex software applications.
- Experience developing automation scripts and improving engineering workflows.
- Demonstrated ability to translate user and system requirements into software design and performance requirements.
- Experience collaborating with software, systems, and hardware engineering teams.
- Strong analytical, troubleshooting, documentation, and communication skills.
- Experience with several of the following technologies is strongly desired: Java, RESTful APIs and web services, GNU Autotools, Docker and Docker Buildx, Automated GitLab CI/CD pipelines, MongoDB, etcd, Elasticsearch, RabbitMQ, Distributed systems and microservices, Container-based build and deployment processes, Automated software testing and system integration.