A Developer Platform, or just Platform, allows software developers to make use of underlying complex infrastructure with vastly reduced effort and knowledge requirements. This enables developers to take ownership over the full lifecycle of building and operating their software (see YBIYRI).
Platforms have a shape similar to the Facade design pattern, that they provide a simple interface that hides a away the complexity of one or multiple subsystems.
The most common types of a Developer Platforms are CI/CD systems and Runtime Environment platforms, such as Platform as a Service that give developers the capability to ship their code into Production.
Within complex systems (large scale operations) often multiple tiers of platforms establish, that build upon each other in a hierarchical topology, exposing each higher layer in that hierarchy only to a well-defined interface with reduced complexity.
The unchanging (albeit ideally versioned) interfaces that Platforms establish make it possible to mutate and entirely refactor underlying system without without changing any client that interacts with the Platform from the outside.
Platforms standardize resource usage, which makes them indispensable in complex systems that otherwise are hard to use and reason about due to massive Cognitive Load. They enable YBIYRI at scale.
The common critic about Platforms is that they reduce the flexibility of users, by constraining their ability to interact with the underlying infrastructure directly. The hard part is to find a balance in between the ability to adapt quickly (to new technologies / trends), keeping Technical Debt at bay (that results from an ever growing amount of different solutions for the same problem) while being able to address (reliability, security, etc) concerns globally (standardization vs customization).
In Depth
See my Platform Engineering: Development at Scale blog article.