Roles and responsibilities
- You will lead a team building a Ceph focused software defined storage solution
- You will build and manage a globally distributed team of engineers
- You'll develop your team through coaching, mentoring and feedback
- You will demonstrate sound engineering principles by directly contributing toward your team's goals
- Set reasonable schedules based on considered estimates, with feedback loops for improvement
- Set and manage expectations with other engineering teams and external stakeholders
- Advance modern, agile software development practices
- Maintain a culture of quality and engineering excellence
- Grow a healthy, collaborative engineering culture in line with the company values
- Be an active part of the leadership team and collaborate with other leaders in the organisation
- Work from home with global travel up to 20% for internal and external events
Who you are
- You have a software engineering background, preferably with Python and C++ experience
- You have experience operating scale out storage clusters on Linux in production environments, preferably with Ceph
- You love embracing new technologies and pushing the boundaries of what is possibleYou love developing and growing people and have a track record of doing it
- You have an interest in building products that improve how people operate software and infrastructure everywhere
- You are knowledgeable and passionate about software development
- You have experience in leading, managing, coaching and mentoring software developers towards delivering timely, high quality software together
- You have solid experience working in an agile development environment
Desired candidate profile
1. Team Leadership and Development
- Team Management: Lead, mentor, and support a team of engineers, providing guidance on technical issues, career development, and performance.
- Recruitment: Play a key role in hiring new engineers to build and expand the team. This includes participating in interviews and assessing candidate qualifications.
- Performance Management: Set clear expectations, conduct performance reviews, and provide feedback to help team members grow and improve. Address any performance or interpersonal issues within the team.
- Professional Development: Identify opportunities for skill development and provide resources (e.g., training, learning materials) to help engineers enhance their technical abilities.
2. Project Management and Execution
- Project Planning: Plan and prioritize engineering projects based on business requirements and deadlines. Allocate tasks and resources effectively to meet project milestones.
- Timeline Management: Ensure projects are delivered on time by closely monitoring progress, identifying potential delays, and resolving issues that could impede development.
- Cross-Functional Collaboration: Work with product managers, designers, and other stakeholders to ensure alignment on project goals, feature requirements, and deadlines.
- Agile Practices: Use agile methodologies (Scrum, Kanban) to manage development cycles, improve team efficiency, and ensure iterative progress on projects.
- Risk Management: Anticipate potential challenges or roadblocks in projects and work proactively to mitigate risks.
3. Technical Leadership
- System Architecture: Contribute to the design and architecture of software systems to ensure scalability, maintainability, and performance.
- Technical Decision Making: Make key technical decisions, balancing business needs with technical constraints. Guide the team in adopting best practices for coding, testing, and deployment.
- Code Reviews and Quality Assurance: Oversee code reviews to ensure high-quality code that follows best practices. Encourage the use of automated testing and CI/CD pipelines to improve software reliability and maintainability.
- Technical Mentorship: Provide hands-on technical guidance to the team, helping solve complex engineering problems and fostering innovation.
- Innovation: Stay up-to-date with emerging technologies and industry trends. Introduce new tools or approaches that can improve the team’s productivity and the product's quality.
4. Process Improvement
- Development Processes: Continuously assess and improve engineering processes to increase efficiency and productivity. Implement process changes when necessary to optimize workflows and delivery speed.
- Feedback Loops: Establish feedback mechanisms to monitor team performance and gather input for process improvements. Encourage open communication and transparency within the team.
- Tooling and Automation: Ensure the team has the right tools and infrastructure to streamline development tasks, such as project tracking tools, code quality tools, and continuous integration systems.
5. Collaboration with Stakeholders
- Business Alignment: Work closely with senior leadership to align engineering efforts with business objectives. Help translate business requirements into technical solutions.
- Customer Focus: Collaborate with customer-facing teams (sales, support, etc.) to understand user needs and incorporate feedback into the product development process.
- Interdepartmental Communication: Ensure smooth communication between engineering and other departments (e.g., marketing, operations) to align on product launches, updates, and feature roadmaps.
6. Budget and Resource Management
- Resource Allocation: Manage team capacity and allocate resources based on project needs. Balance short-term and long-term engineering efforts.
- Budget Management: Collaborate with leadership to manage the budget for the engineering team, ensuring that financial resources are allocated effectively for tools, infrastructure, and team growth.