Inside Productboard’s Platform Tribe
Platform teams essentially form the backbone of fast-growing tech startups. They help your company thrive and scale as your product becomes increasingly more complex, which is why Productboard launched a Platform Tribe this summer.
As we continue to scale, we are looking to hire more experienced engineers to help strengthen our platform teams. Could this be you? Read on to find out.
Laying the foundations
The purpose of platform teams is to create and maintain a suite of internal products that improve the organization’s efficiency and speeds up the time-to-market. These products take care of complex technical problems and allow product teams (or stream-aligned teams, if you prefer the Team Topologies naming convention) to stay focused on delivering what truly matters to their customers.
Forming a tribe dedicated to internal platforms seemed like a natural progression for us. When we formally established our Platform Tribe, we already had three teams in place that gave us a solid foundation to build on — Infrastructure, Quality Engineering, and Frontend Platform.
Infrastructure was probably the most obvious topic for us to begin our journey towards building an internal platform with. When we decided to move our services from Heroku to AWS, we didn’t necessarily want our product teams to manage their own Kubernetes clusters, database engines, monitoring systems, etc. We built a team that took care of all this foundational work and provided engineers with the tools they needed to deploy and run their services on top of the new stack.
The next addition to this pack was our Quality Engineering team. Initially, when we had just a handful of Quality Engineers, they were responsible for maintaining the quality related to tooling and supporting the needs of the product teams. But as the amount and complexity of those shared components grew, we decided to give them the focus they deserved and created a dedicated team to take care of them.
Last but not least, we ran into scalability issues with our frontend monorepo. That was one of the key moments that led us to creating a Frontend Platform team, which prepared a migration strategy to Nx and built all the tooling around it to make the monorepo manageable for a codebase and organization of our scale.
One Tribe to rule them all
Since the teams mentioned above were built ad-hoc to solve a specific problem, we ended up in a situation where they reported to different parts of the organization, and they lacked a shared vision and leadership. To give the platform topics a stronger representation within the company, and align the objectives of the teams, we created the Platform Tribe, and moved all those teams under one roof.
But we didn’t just stop there. We put our heads together, mapped out the entire space, and tried to figure out additional ways to improve the efficiency of our Engineering, Product & Design organization. In the end, we came up with a plan to spin up six platform teams, taking care of the following areas:
Frontend Platform — Develops Productboard’s frontend development framework and shapes how it interfaces with the backend. Owns a big piece of the technical architecture and is responsible for steering our micro-frontend strategy.
Production Engineering — A team that we also sometimes call the Backend Platform. Develops the backend framework that powers our microservices, and integrates it with all our tooling. Maintains a set of blueprints for the languages that are supported at Productboard, especially Kotlin and Ruby.
Developer Experience — Improves the lives of our engineers and their productivity by tackling topics such as CI/CD, local development environments, IDE plugins, and integration between development tools. Making the path from an idea to production deployment as smooth and streamlined as humanly possible.
Quality Engineering — Oversees frameworks, tooling, and infrastructure that Product Teams use to automate all kinds of tests and keeps an eye on the overall quality of our product.
Cloud Engineering — Builds and maintains our cloud infrastructure. Ensures that third party cloud services like AWS, Kubernetes, and Kafka are easily accessible for our Product Teams to consume using an Infrastructure as Code approach.
Nucleus — Our internal design system team. Maintains a library of reusable UI components and patterns, guided by clear standards. Allows us to make product-wide changes and improvements efficiently and smoothly.
Tribe’s technical challenges
Now that we covered the history and the general direction, let’s discuss some of the specific technical challenges we’re currently facing.
The most important topic on the radar right now is our approach to data fetching and state management. Productboard was originally built on top of Flux architecture designed by Facebook. To provide a desktop-like experience and real-time data updates, we’re heavily relying on having all the data for a given customer space available at any given time inside the client application. While this approach got us so far, it no longer scales for our larger customers, and we’re currently exploring the options of moving to a federated GraphQL architecture to address our issues with the application performance and initial page load time. The Platform Tribe is in charge of this initiative, and we’ll be shaping Productboard’s next generation data architecture.
Another big topic for us is the future of our backend services. Most of our API calls today are handled by a Ruby on Rails monolith. But as we grow, having a monolithic application presents more and more technical and organizational challenges for us. That’s why we decided to move towards a service-oriented architecture, with microservices written primarily in Kotlin. This transition will also require a lot of involvement from the Platform Tribe, since the distributed architecture creates all sorts of new requirements for our deployment process, observability, and testability.
The best time to join was yesterday, the second best time is today
Since the entire Platform Tribe is a brand new concept, and we’re literally creating some of the teams we mentioned above from scratch, we are obviously in the need to hire a lot of engineers to help us on our journey. We’re also still shaping the processes and the ways of working with our product engineering organization.
That being said, now is a great time to join us. We have a vision, and we know exactly where we want to go, but there are a lot of unknowns and details to be discovered along the way. That gives you a chance to significantly influence the direction of the entire Platform Tribe, our technology choices, and approaches.
If you’d like to join us on our journey, check out our latest engineering vacancies here to see how you can make your impact! We’d love to hear from you!