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 possible.
You 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
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.
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.
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.
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.
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.
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.