Roles and responsibilities
- Grow and lead a team of engineers in your region
- Develop talent through coaching, mentoring, feedback, and hands-on career development
- Apply sound engineering principles and directly contribute toward your team's goals
- Create and maintain productive relationships with stakeholders
- Set and manage expectations with other engineering teams, management, and external stakeholders
- Collaborate proactively with a distributed team and community
- Lead the ongoing development of Launchpad, the infrastructure on which great software like Ubuntu is built
- Advocate and advance modern, agile software development practices and help develop and evangelise great engineering and organisational practices
- Grow a healthy, collaborative engineering culture in line with the company values
- Actively engage with the broader leadership team
- Work from home with international travel up to 6 weeks per year for internal and external events
Who you are
- You have experience leading a distributed team to deliver features and manage production services at scale
- You love to mentor, develop, and grow people, and have an outstanding track record of doing so
- You are knowledgeable and passionate about technology
- You have experience delivering high quality software
- You have experience designing and evolving complex distributed systems
- You have effective written and verbal communication skills
- You have solid experience working in an agile development environment
Desired candidate profile
1. Team Leadership and Development
- Recruitment: Lead hiring efforts to build and expand the software engineering team, ensuring a good balance of skills and experience.
- Mentoring and Coaching: Provide technical mentorship and career development to team members. Help engineers grow in their roles by setting clear goals, offering feedback, and fostering a culture of continuous learning.
- Performance Reviews: Conduct regular performance reviews, provide constructive feedback, and establish performance metrics to assess team members’ growth and contributions.
- Team Culture: Foster a positive, collaborative, and innovative team culture that emphasizes accountability, high performance, and ownership of the product.
2. Software Development and Architecture
- Architecting SaaS Solutions: Lead the design and implementation of scalable, reliable, and secure SaaS applications, ensuring that they can handle increasing user loads and provide a seamless experience.
- Microservices Architecture: Design and manage microservices-based systems that are modular, reusable, and allow teams to work on features independently while ensuring the systems work as a whole.
- Cloud Infrastructure: Ensure that SaaS applications are built with cloud-native principles in mind, utilizing services from platforms like AWS, Azure, or GCP.
- CI/CD: Drive the adoption of continuous integration and continuous deployment (CI/CD) practices to increase software delivery speed, quality, and reliability.
3. Product and Project Management
- Collaboration with Product Management: Work closely with product managers to define product roadmaps, gather user feedback, and prioritize features based on business needs.
- Project Delivery: Oversee the planning, execution, and delivery of software releases. Make sure that projects are delivered on time, meet requirements, and are aligned with the company’s business goals.
- Cross-functional Collaboration: Collaborate with other teams, such as DevOps, QA, UX/UI, and marketing, to ensure the success of the SaaS product.
- Risk Management: Identify potential risks in the development process and mitigate them. This could include technical risks, resource constraints, or dependencies on other teams.
4. Scalability, Reliability, and Performance
- Scalable Architecture: Ensure that the software architecture is designed to scale effectively, accommodating growing customer demands while maintaining high performance.
- Performance Optimization: Continuously monitor and optimize the performance of SaaS products, improving both server-side performance and client-side performance.
- Uptime and Availability: Work with DevOps and infrastructure teams to ensure that SaaS applications achieve high uptime, meet SLAs (Service Level Agreements), and have disaster recovery procedures in place.
- Security: Implement best practices for security, ensuring that the SaaS solution complies with industry standards (e.g., GDPR, HIPAA) and offers robust protection against threats.
5. Monitoring and Continuous Improvement
- Metrics and Analytics: Set up and monitor key performance indicators (KPIs) for application performance, user experience, and system health. Use data to drive decision-making and continuous improvement.
- Bug Resolution: Oversee the process for identifying, tracking, and resolving bugs and other issues that arise in the SaaS product.
- User Feedback: Ensure that user feedback and system telemetry are incorporated into the development cycle, driving the evolution of the product in line with customer needs.
6. Process and Quality Management
- Agile Methodology: Lead the adoption of agile development methodologies (e.g., Scrum, Kanban) to improve team collaboration, product iteration, and overall efficiency.
- Code Quality: Ensure that engineering teams follow best practices for code quality, including code reviews, unit testing, integration testing, and performance testing.
- Automation: Advocate for the automation of repetitive tasks, such as testing, deployment, and infrastructure provisioning, to improve efficiency and reduce human error.
7. Stakeholder Communication
- Regular Reporting: Provide regular updates to senior leadership on project progress, technical challenges, and resource needs. Highlight any risks or issues that may impact timelines or quality.
- Technical Evangelism: Act as the technical voice within the company, ensuring that engineering decisions align with business goals and provide value to customers.