When I Grow Up I Want to Be a Platform!

Sidney Shek
Atlassian, Architect, Core Architecture Team

Sidney Shek is an architect at Atlassian, driving large-scale initiatives that underpin the Atlassian Cloud suite. He helped oversee the transformation of Atlassian's identity systems into a massively scalable and flexible authentication/authorization platform for millions of users. He likes challenging traditional constraints and applying the latest R&D and technologies in elegant yet reliable solutions to real-world problems (functional programming principles like immutable data, type-safety, and idempotence for the win!).

As engineers, once we start having more than one (micro)service or product in our architecture, we think about sharing code, functionality and having seamless user experiences between systems; that’s the start of a platform! But we have so many decisions to make:
* What features are part of the platform, and when?
* Do I go lightweight with drop-in libraries that are quick to adopt or heavyweight like frameworks for a better developer (and user) experience?
* How do I make my platform extensible and maintainable?
* How can I address the classic hockey-stick adoption pattern on your services?
* How does Conway's Law apply to the platform?

In this talk we describe a number of patterns (and anti-patterns) for designing a platform we’ve seen and implemented both from industry and as part of the platform powering Atlassian Cloud.