Responsibilities
- Lead, manage, mentor, and build a team of software engineers and data engineers fostering a culture of collaboration, innovation, and creative problem-solving.
- Establish Engineering best practices, frameworks, agile methodologies, and tools to promote Technology Engineering Excellence in an industrial setting.
- Ownership of Engineering Budget. Manage resources including staffing, software licenses, and tools.
- Closely partner with product managers, UX/UI designers, business stakeholders, and the IT Group to develop the technical strategy, design, and architecture of the Business Unit’s technology platform.
- Lead the engineering team in executing the technical strategy ensuring the highest standards of design patterns, code quality, solution extensibility, usability, and maintainability.
- Help define a clear framework of compliance, governance, system integration, and data integrity between the Business Unit (Vertical) and IT Group (Horizontal).
- Guide the design and architecture of a purpose-built data platform for the Business Unit establishing an ecosystem for data science, machine learning, artificial intelligence, and other innovations.
- Design and implement a SaaS platform enabling multiple feature teams to build business-specific solutions while maintaining a standard user experience.
- Lead and conduct technical evaluations of 3rd party applications/solutions.
- Establish DevOps processes and best practices.
- Create a comprehensive framework for Quality Assurance, Testing, and Automation.
- Strive to learn and apply the latest technologies and methodologies promoting a culture of continuous learning on the team.
Minimum Requirements
- Bachelor’s degree in Computer Science, Computer Engineering, or a related field.
- A Master’s degree is a plus.
- 8+ years experience in full-stack software engineering, including 3+ years in leadership roles.
Desired Candidate Profile
1. Team Leadership and Management
- Managing Engineering Teams: Lead and mentor a team of software engineers, ensuring that team members have the support, resources, and guidance needed to perform at their best.
- Recruitment: Play an active role in hiring new talent, conducting interviews, and evaluating candidates for technical roles.
- Performance Management: Conduct regular performance reviews, provide feedback, and help engineers set career development goals.
- Resource Allocation: Ensure that the team has the right balance of skills and resources to complete their work efficiently, and handle staffing assignments based on project needs.
- Conflict Resolution: Address conflicts within the team and facilitate a collaborative, positive working environment.
2. Project and Product Management
- Project Planning and Delivery: Oversee the planning, scheduling, and execution of software development projects, ensuring they are completed on time and meet quality standards.
- Roadmap and Prioritization: Work with product managers to define project roadmaps, prioritize tasks, and align engineering efforts with business goals.
- Resource Management: Ensure the engineering team is appropriately resourced and that deadlines are met without compromising the quality of the code.
3. Technical Leadership
- Guiding Technical Decisions: Provide guidance and input on technical architecture, software design, and overall technical direction. Help the team solve complex technical problems.
- Code Reviews and Quality Assurance: Implement and enforce coding standards, review code, and ensure that software is built with maintainability, scalability, and security in mind.
- Technical Debt Management: Help balance the need for new features with the importance of maintaining and refactoring existing code to avoid accumulating technical debt.
- Collaboration with Other Teams: Work closely with product managers, designers, QA engineers, and other stakeholders to deliver software that meets business requirements.
- Communication: Communicate technical concepts to non-technical stakeholders and ensure alignment on project objectives.
- Stakeholder Management: Manage expectations and keep stakeholders informed of progress, risks, and issues related to software development.
5. Process Improvement and Best Practices
- Agile and Development Methodologies: Foster an environment of continuous improvement, and implement or improve agile practices such as Scrum, Kanban, or other methodologies.
- Automation and CI/CD: Advocate for automation in testing, build processes, and deployment to increase team efficiency and improve code quality.
- Incident Management: Oversee the handling of production issues, ensuring that critical bugs or incidents are resolved quickly and thoroughly.