Principal Software Engineer
Chameleon Consulting Group
Summary
Join our team as a Principal Software Engineer and lead multiple software teams in developing, implementing, and improving software quality and performance. You will design and update software databases, write test scripts in an agile environment, and recommend improvements to existing applications. Responsibilities include designing, developing, and testing software for Command and Control products, developing prototypes, adhering to XP practices, and collaborating with various teams. You will optimize software designs, stay informed on latest software architectures, guide technical decisions, and mentor junior engineers. This role requires a Bachelor's degree in a quantitative field or equivalent experience, extensive software development experience, and experience with various tools and technologies. A Secret clearance is required.
Requirements
- Possess a Bachelor’s degree in a highly quantitative field (Computer Science, Machine Learning, Operational Research, Statistics, Mathematics, etc.)
- Have 4 years of directly related experience in lieu of a BS
- Have 8 years of non-internship professional Full-Stack Software development experience (Java, Web services, Database, and/or web application development)
- Have 6 years of programming experience with JavaScript, Java, and preferably one more programming language (Python, etc)
- Have 4 years of experience with DevSecOps tools and processes such as Git, Concourse, GitLabCI, SonarQube, Fortify, and ThreadFix
- Have 3 years of experience with front end frameworks like React or Vue
- Have 5 years of experience with Extreme Programming practices (Test-Driven Development, Pair Programming, CI/CD, etc)
- Have 4 years of experience contributing to software architecture and design (architecture, design patterns, reliability and scaling) of both new and existing systems
- Have 2 years of experience using container technologies such as Docker or Kubernetes
- Have 3 years of experience training, upskilling, and/or mentoring engineers
- Be eligible to obtain a minimum of a Secret clearance
- Possess strong communication/general soft skills
- Conduct themselves at all times in a professional and respectful manner in effort to uphold mutual respect across the organization
- Receive feedback in a respectful and professional manner
- Maintain a positive “can-do” attitude and constructive nature in their critiques in order to maintain positive culture within Kessel Run
- Be a “team player” and contribute to Kessel Run “can-do” culture
- Be comfortable effectively leading a team and setting priorities
- Possess strong Senior Mentorship/Leadership Capabilities
- Be able to provide technical guidance and constructive feedback to more junior engineers
Responsibilities
- Design, develop, and test software for Command and Control based products
- Develop the front end and backend of software prototypes, components, and tooling that can be leveraged to speed prototyping process
- Embrace and adhere to Extreme Programming (XP) Practices, Pair-Programming, Test-Driven Development (TDD), and Continuous Integration/Continuous Delivery (CI/CD) techniques
- Help to design and develop software requirements for multiple Command and Control based products including the software architectures, APIs, frameworks, and libraries
- Work with data scientists, UX designers, engineers, and product managers to help in composing cohesive and sound software designs that form the basis of scalable Command and Control software solutions
- Optimize software designs and architectures to deliver desired performance targets and devise tooling and methodologies to profile execution and capture performance metrics
- Be highly proficient in discussing future limitations and a forward-thinking approach to resolving roadblocks presented by current strategy
- Stay informed on latest software architectures and trends from design patterns to DevSecOps and systems architecture patterns
- Guide technical decisions in order to migrate legacy systems to the cloud
- Directly influence strategy formulation on how to achieve rapid prototyping of capabilities
- Analyze and decompose activities and requirements to software designs that are allocated across systems components/sub-components, classification system levels, etc
- Capture, develop, and report reference architectures and documenting compliance standards
- Develop plans, road maps, and software design strategies
- Teach others troubleshooting techniques, design patterns, and testing strategies in order to train and upskill less experienced engineers
- Be able and willing to provide guidance and constructive feedback to junior engineers within and across product teams
- Maintain and guide the development of common best practices and tools used by multiple teams
- Implement and practice DevOps Developer Enablement and help more junior/less experienced developers to do the same
- Share best practices and technical knowledge among multiple teams/branches
Preferred Qualifications
- Possess an MS in a highly quantitative field (Computer Science, Machine Learning, Operational Research, Statistics, Mathematics, etc.)
- Have 2 years of experience with backend runtimes and frameworks like Node.js, Spring, Spring Boot, Django, Flask, etc
- Have 2 years of test authoring experience in Javascript, Java, or other languages. (Unit tests, Integration tests, and Journey tests)
- Have 1 year of experience with test mocks
- Have 1 year of experience with contract testing
- Possess a CompTIA Sec+, CMU SEI - Software Assurance Professional Certificate, or CSSLP certification
- Possess an Active Secret or TS/SCI Clearance