The Software Engineering Manager is responsible for the people, capabilities, processes, and technical health of the software engineering organization. This role leads software engineers and software team leads, manages staffing and resources, strengthens software engineering practices, and helps ensure teams successfully deliver complex software products.
This is a deeply technical management position requiring a strong software engineering background. The Software Engineering Manager is expected to develop a thorough understanding of the architecture, design, and operation of the software systems under their organization. While not the primary technical lead on every project, this person must be able to engage deeply enough to understand how systems work, recognize technical risks and questionable design directions, challenge assumptions, and help software leads and engineers make sound engineering decisions.
This role requires a leader who combines technical depth with humility—someone who seeks to understand before directing, values the expertise of others, and views their role as enabling engineers and technical leads to do their best work.
Essential Duties and Responsibilities
People and Organization
- Lead, coach, and develop software team leads and software engineers.
- Manage hiring, performance, career development, promotions, and other personnel responsibilities.
- Build a culture of technical excellence, accountability, collaboration, and continuous improvement.
- Lead with humility, curiosity, and respect for the expertise of others; seek to understand problems and perspectives before drawing conclusions.
- Enable software leads and engineers to succeed by providing clarity, removing obstacles, securing needed resources, coaching through challenges, and giving teams appropriate ownership of their work.
- Allocate software resources across development efforts and maintain staffing and capacity plans.
- Estimate labor and skill requirements for upcoming projects and proposals.
- Manage contractors and supplemental engineering resources as needed.
Software Engineering Leadership
- Develop and maintain a strong working knowledge of the architecture, design, interfaces, operation, and technical challenges of the organization’s major software systems.
- Engage deeply in technical discussions with curiosity and respect, asking questions and challenging assumptions while recognizing the expertise of the engineers closest to the problem.
- Develop a deep understanding of the organization’s software systems while preserving clear technical ownership within the teams.
- Promote effective software architectures, engineering practices, standards, tooling, automation, and reuse.
- Recognize architectural weaknesses, technical risks, unnecessary complexity, and other issues that may affect system reliability, maintainability, or future development.
- Challenge technical assumptions and decisions when appropriate while maintaining clear ownership and accountability within software teams.
- Lead a software engineering community of practice to share knowledge, align standards, and address cross-team technical challenges.
- Create an environment where engineers can openly raise concerns, acknowledge uncertainty, challenge decisions, and learn from mistakes without defensiveness or blame.
- Help teams make appropriate technical tradeoffs between schedule, cost, performance, risk, and maintainability.
Planning and Execution
- Ensure software teams have clear plans, realistic estimates, appropriate resources, and measurable outcomes.
- Maintain sufficient technical and execution visibility to identify problems early and understand whether development efforts are progressing in a sound direction.
- Hold software leads accountable for understanding the work and technical health of their teams.
- Support project planning, estimation, resource management, progress reporting, and corrective actions.
Cross-Functional Leadership
- Collaborate with Chief Engineers, Engineering Execution, Product Management, Product Assurance, and other engineering disciplines.
- Coordinate software activities with electrical, mechanical, aerospace, systems, test, production, and operations teams.
- Support proposals, technical estimates, statements of work, and customer discussions.
- Represent software engineering in organizational planning and engineering leadership activities.
Qualifications
Required
- Bachelor’s degree in Software Engineering, Computer Science, Computer Engineering, Electrical Engineering, or a related technical field.
- 8+ years of professional software engineering experience developing complex software systems.
- 2+ years of experience leading software engineers or technical teams.
- Strong technical depth in software architecture, system design, development, integration, debugging, and testing.
- Demonstrated ability to understand complex software systems at both the architectural and implementation level.
- Experience reasoning about system behavior, interfaces, dependencies, failure modes, performance, and technical tradeoffs.
- Strong understanding of modern software development practices, configuration management, automated testing, CI/CD, and software lifecycle management.
- Strong project planning, estimation, resource management, prioritization, and communication skills.
- Demonstrated leadership characterized by humility, curiosity, accountability, and respect for the expertise and contributions of others.
- Ability to challenge technical decisions constructively, receive challenge without defensiveness, and change direction when presented with better information.
Preferred
- Previous software engineering management experience.
- Experience with embedded, distributed, networked, or mission-critical software.
- Experience with Linux, C/C++, Python, web applications, containers, and related technologies.
- Experience developing multidisciplinary products involving software, electronics, communications, sensors, or physical systems.
Working Conditions
Work is primarily performed in an office and engineering development environment. Occasional work outside normal business hours may be required to address significant project or operational needs.
Occasional travel may be required to customer, test, or field locations within the United States or internationally.
What Success Looks Like
The Software Engineering Manager understands the organization’s major software systems well enough to recognize when teams are on a sound technical path and when deeper investigation or intervention is needed. Software leads and engineers have meaningful ownership of their work and are supported by a manager who provides clarity, removes obstacles, asks difficult questions, and helps them succeed. Problems are identified early, commitments are realistic, technical decisions are sound, and teams operate with accountability, trust, and respect.
Equal Opportunity Employer/Protected Veterans/Individuals with Disabilities
This employer is required to notify all applicants of their rights pursuant to federal employment laws.For further information, please review the Know Your Rights notice from the Department of Labor.