A platform is a system that can be used in more than one context. For example, Google initially wanted to build a search engine. But it didn’t just develop a search engine, it built a reusable platform instead. Google engineers wrote a system for code review, a generic system for testing, a system for deploying code into production, a generic communication library, a generic data storage framework, and systems for monitoring applications and servers, among several others.
By designing all this in a generic way, Google was able to reuse what the company already had at hand as a starting point for its new offerings, such as YouTube or Google News. Thus, when a new idea came along, it wasn’t necessary to write everything from scratch because the basics were already in place.
A computer system is composed of a hierarchy of components connected to each other, such as Lego pieces (using Lego as a generic term derived from LEGO® building blocks). Lego building blocks can be viewed as the most basic of platforms, and you can build anything using them. Once you have used them to assemble a basic structure, like the chassis of a vehicle, such a structure can be reused in different contexts. You can build ambulances, Formula 1 cars, trucks, and tractors faster by reusing the generic chassis. In other words, it is much easier to reuse a platform than to have to build everything you want from scratch.
Hierarchy of platforms
There are platforms at various levels:
- Platforms that validate code or deploy binaries into production are engineering platforms that support a wide range of systems
- Platforms for managing customer data or billing clients are more specialized product platforms—they solve the specific problems of a given area
Product platforms are built using engineering platforms as foundational blocks.
Let’s say a company builds an application for delivering ready-made meals for dogs (the meals are delivered to the dog owners; the dogs just eat them). The technology team works tirelessly to build the entire application, but shortly after they are done, the company decides to expand the business to the lucrative area of dog grooming. Now that it has two different businesses, where will the customer information be stored? Who is responsible for this information?
To solve this issue, the company creates a common customer information management platform. With this platform in place, the company realizes that it also needs a common scheduling platform. So, little by little, their team builds reusable platforms, which will not only be used for all the current offerings but will also work for future offerings, such as the even more lucrative business of custom-made dog outfits. The technology team can also rely on third-party cloud services as part of the platforms to support their activities.
Generic platforms
Cloud computing services function as generic outsourced platforms. These services, like Microsoft Azure, Google GCP, and Amazon AWS, run on servers scattered in data centers around the world. This means that instead of needing to buy and manage a server to run your systems, cloud providers do that for you and millions of other customers.
This is feasible only because cloud providers have platforms that work at scale, from the server’s fault management systems to the logistics systems that can repair or replace specific parts of a server, to the systems that ensure that the servers run sustainably, with a low carbon footprint.
With these generic platforms at their disposal, a small startup is free to focus on its core business. If the startup doesn’t want to use a cloud provider, it would need to consider a series of technical issues, such as where it will run its systems, who will restart them if failures occur, and how to keep the systems connected. This is obviously possible, but it implies huge costs not linked to the core product of the business itself.
The strategic decision about what systems to build in-house falls under the umbrella of engineering leadership. The key, however, is to think in terms of reusable platforms.
When to invest in platforms
Platforms can be developed either because:
- A company has a unique need
- A company wants to innovate with some new product
There is no point in developing an expensive platform if there is no clear business application. If a platform that takes three days to generate a customer’s credit score is computationally cheap and does what the company needs, it is probably good enough. However, if another credit score platform is 10% more expensive, but produces better results, a switch may produce a good return on investment (ROI) for the organization.
The technology leader and the CFO should constantly analyze where and how best to invest the company’s financial and human resources. Before any development starts, they must analyze its cost, how long it will take, whether there is an externally available platform that solves the same problem, and whether it will be possible to develop it to be reusable and generic to solve other problems.
It’s always good to remember that reusable platforms may avoid several independent applications being developed by different teams, raising the risk of technical debt. Avoiding duplication is also an important objective of technology leaders, who should focus on unifying technology areas of various departments, as well as platforms. and should think of standardization as the backdrop to improve collaboration and efficiency.

Marcus Fontoura
Marcus Fontoura is a technical fellow and CTO for Azure Core at Microsoft, and author of A Platform Mindset. He works on efforts related to large-scale distributed systems, data centers, and engineering productivity. Fontoura has had several roles as an architect and research scientist in big tech companies, such as Yahoo! and Google, and was most recently the CTO at Stone, a leading Brazilian fintech.