The Director of Software Engineering is responsible for the leadership, development, and execution of software engineering activities across the organization. This role provides organizational leadership for software engineering teams focused on embedded software, applications, user interfaces, data platforms, and product software development. The Director will establish engineering practices, drive technical excellence, develop engineering talent, and ensure the successful delivery of software solutions aligned with company objectives, customer needs, and product roadmaps.
This position works closely with Product Management, Hardware Engineering, Cloud Engineering, Quality Assurance, Manufacturing, and Executive Leadership to deliver innovative software solutions while fostering a collaborative, high-performing engineering culture.
Responsibilities
- Lead, develop, and manage software engineering teams responsible for embedded software, applications, gateway software, edge computing software, mobile applications, and user interface development.
- Establish and communicate software engineering strategy, goals, priorities, and best practices.
- Build, mentor, and retain high-performing engineers through coaching, career development, performance management, and succession planning.
- Collaborate with Product Management and Engineering leadership to establish roadmaps, project priorities, staffing plans, and resource allocations.
- Drive successful execution of software development projects, ensuring quality, schedule, budget, and technical objectives are achieved.
- Oversee software architecture, design reviews, and development processes to ensure maintainable, scalable, secure, and reliable solutions.
- Champion continuous improvement initiatives related to engineering processes, quality systems, development methodologies, testing, and automation.
- Promote and enforce software development standards, coding practices, cybersecurity requirements, documentation standards, and quality procedures.
- Monitor project status, identify risks, and remove obstacles impacting development teams.
- Guide adoption of modern development tools, DevOps practices, CI/CD workflows, and software quality metrics.
- Support recruiting, interviewing, onboarding, and workforce planning activities.
- Establish engineering performance objectives and monitor team effectiveness through key performance indicators.
- Participate in strategic planning, technology evaluations, build-versus-buy decisions, and long-term product architecture discussions.
Qualifications
- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, or related field required. Master's degree preferred.
- 10+ years of software engineering experience.
- 5+ years of engineering leadership experience managing technical teams.
- Experience leading embedded software, Linux-based systems, networking, IoT, or industrial software development teams.
- Strong understanding of software architecture, software design methodologies, and development processes.
- Experience with Agile development methodologies and software project management.
- Experience with source control systems, CI/CD pipelines, automated testing, and release processes.
- Experience managing budgets, staffing plans, and vendor relationships preferred.
- Experience with cybersecurity and secure software development practices preferred.