Platform teams focus on creating solutions for multiple groups within an organization, prioritizing stability and scalability over one-off tools.
Effective collaboration between platform and product teams is vital, requiring proactive communication, coordination, and avoiding duplicating efforts.
Deep dives
Understanding the Role of Platform Teams
Platform teams are responsible for the software infrastructure portion of a company. They build and maintain software that supports multiple engineering teams or different parts of the business. This includes building and customizing tools like Kubernetes, development platforms, and storage systems. Platform teams focus on creating solutions that are used by various groups within the organization rather than one-off tools. They also prioritize stability, scalability, and reliability of the platforms they build.
The Importance of Communication and Coordination
Communication between platform teams and product teams is crucial for effective collaboration. Challenges can arise when product teams want to build their own solutions without involving the platform team. This can lead to shadow installations and resentment. It's important for platform teams to proactively communicate their capabilities and offerings to the product teams. Coordination between the teams helps ensure that the platform team can plan ahead to meet the evolving needs of the product teams and avoid duplicating efforts.
Skills and Mindset of a Platform Engineer
To excel as a platform engineer, individuals should have a strong technical background and understanding of distributed systems, open source technologies, and cloud platforms. They need to exhibit customer empathy and have the ability to collaborate effectively with other engineers. Platform engineers should also possess skills in managing long-term projects, operational focus, and balancing stability with the adoption of new technologies. Patience, problem-solving abilities, and an interest in the intersection between software and underlying systems are essential qualities.
Transitioning to a Platform Team
For engineers interested in joining a platform team, it is recommended to delve into learning about distributed systems, open source technologies, and the foundations of reliability and scalability. Understanding concepts like availability, distributed databases, and trade-offs in system design is valuable. Having experience with technologies like Kubernetes, storage systems, and performance optimization is beneficial. Joining relevant communities, reading industry publications, and following thought leaders can also help in staying updated with the latest advancements in platform engineering.
Interview with Camille Fournier, Managing Director and Head of Platform Engineering at Two Sigma. She talks about the role of platform teams, the most important skills for platform engineers, creating smooth communication with product teams and more!
Differences between product and platform engineering
Priority differences for product and platform teams
Communication channels between product and platform teams
Communication challenges in platform teams
Necessary skills for platform engineers
The time to create a platform engineering team
Excerpt from the interview:
"Communication works best when a product team reaches out directly to a team in the platform organization. They can communicate quickly about what they need and find a solution. The more you involve senior leadership in early stages, the slower and more complex the process can be.
Sometimes you don’t have a choice but to escalate the situation because the platform team you’re in contact with lacks the bandwidth to address your problem. I aim to provide flexibility for my platform teams to work with their product counterparts, but it has to be balanced.
If the platform team is constantly working on fulfilling one-off requests, it hurts productivity. If you see that happening, you need to figure out what the product teams are trying to do, and plan ahead to provide the necessary tooling."