Measuring Developer Experience and Improving it through Platform Engineering (feat. Ajay Chankramath)

Measuring Developer Experience and Improving it through Platform Engineering (feat. Ajay Chankramath)

Ajay Chankramath⁠, Head of Platform Engineering at ⁠ThoughtWorks⁠, discusses measuring and improving developer experience through platform engineering. Platform engineering is the abstracted set of tools, principles, and techniques that make developers' lives easier and enable DevOps. It focuses on improving developer productivity and reducing friction in the software development process. The key to successful platform engineering is adopting a product management mindset and prioritizing capabilities based on their value. Platform engineering can benefit organizations of all sizes, but the scope and implementation may vary. Internal developer platforms and managed platform engineering services are emerging as options for startups and smaller organizations. Platform engineering is the evolution of software development and delivery. It is not a passing fad or a replacement for DevOps, but rather a cultural paradigm that brings together tools, techniques, and processes. Platform engineering aims to simplify and automate the development process, improve compliance gating, and provide internal developer portals for self-service. It also involves the use of generative AI to enhance operational productivity and enable proactive issue detection. While there is no one-size-fits-all approach to platform engineering, it is important for organizations to invest in platforms that align with their specific requirements and skill sets.

Takeaways

  • Platform engineering aims to improve developer productivity and reduce friction in the software development process.
  • Adopting a product management mindset and prioritizing capabilities based on their value is crucial for successful platform engineering.
  • Platform engineering can benefit organizations of all sizes, but the scope and implementation may vary.
  • Internal developer platforms and managed platform engineering services are emerging as options for startups and smaller organizations. Platform engineering is the evolution of software development and delivery.
  • It is not a passing fad or a replacement for DevOps, but rather a cultural paradigm that brings together tools, techniques, and processes.
  • Platform engineering aims to simplify and automate the development process, improve compliance gating, and provide internal developer portals for self-service.
  • Generative AI can be used to enhance operational productivity and enable proactive issue detection.
  • There is no one-size-fits-all approach to platform engineering, and organizations should invest in platforms that align with their specific requirements and skill sets.

Chapters

00:00 Introduction to Ajay Chankramath and ThoughtWorks

03:08 Defining Platform Engineering and its Importance

07:48 The Role of Product Management in Platform Engineering

10:21 The Genesis of Platform Engineering and the Importance of Value Modeling

13:22 Platform Engineering for Organizations of All Sizes

22:16 Breaking Down Platform Engineering into Five Planes

25:41 The Importance of Observability in Platform Engineering

29:19 The Role of Orchestrators in Platform Engineering

33:26 The Impact of Platform Engineering on Developers' Daily Work

35:56 The Importance of Compliance Gating

36:47 Internal Developer Portals

38:17 Abstraction with Terraform and Other Tools

49:04 The Potential of Generative AI

55:53 Coexistence of Self-Serve Portals and Conversational UIs

01:06:25 Platform Engineering as an Evolution of Software Development

Jaksot(412)

Native Mobile App - Design Patterns & Separation of concerns (Part 1)

Native Mobile App - Design Patterns & Separation of concerns (Part 1)

(Part 1) Separation of concerns is important to keep your native mobile app modular and becomes especially important when your app integrates with 100s of APIs. You want to ensure that your app is resilient to changes to the API Spec.  #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Native Mobile App - Design Patterns & Separation of concerns (Part 2)

Native Mobile App - Design Patterns & Separation of concerns (Part 2)

(Part 2) Separation of concerns is important to keep your native mobile app modular and becomes especially important when your app integrates with 100s of APIs. You want to ensure that your app is resilient to changes to the API Spec.  #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Databases & Denormalization - Faster queries for faster retrieval

Databases & Denormalization - Faster queries for faster retrieval

Whether you are designing a NoSQL Database or a traditional RDBMS Database, one way to optimize to ensure faster retrieval is to denormalize but that's not the best (or even the first) solution. You want to try out a few other things before resorting to denormalization. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Reusable UI components (React and beyond) - both presentational & functional

Reusable UI components (React and beyond) - both presentational & functional

When building UI screens (on mobile apps) or pages (on web apps), you want to focus your energies on your specific business problems. What you don't want to do is spend time reinventing the wheel. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Caching - What to Cache, and When to Cache (Part 3)

Caching - What to Cache, and When to Cache (Part 3)

Caching is a broad topic (what isn't?). In this podcast, I've only tried to scratch the surface. How do you determine what to cache? And once you do, how do you go about it? #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20239min

Caching - Are you optimizing before identifying the problem? (Part 2)

Caching - Are you optimizing before identifying the problem? (Part 2)

If your pages take too long to render, caching may be a solution but before you go all out and start implementing or improving it, ask yourself if there are other fundamental problems that need addressing first (which led to the issues in the first place).   #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 20238min

When looking to make performance improvements, it is natural to look for that ”single” big problem. But, that’s hardly ever the case.

When looking to make performance improvements, it is natural to look for that ”single” big problem. But, that’s hardly ever the case.

I've worked on making performance improvements across all tiers, and in a variety of ways within any given tier, during the course of my career and one thing I can say with a good degree of certainty is that it gets more challenging as you get closer to your goal. Reducing a page rendering time from 3 seconds to 1 second is a whole lot easier than reducing it to 900ms, then to 800ms, and then to 50ms!   #snowpal aws.snowpal.com

24 Marras 20238min

Keep your code DRY. As in, super DRY! Code duplication is a maintenance nightmare.

Keep your code DRY. As in, super DRY! Code duplication is a maintenance nightmare.

You have to make a conscious effort to keep your code base DRY. Every time you make a change, add a feature, or fix a bug, make an effort to find duplication and to determine design patterns. This will play a huge role in keeping your code DRY, and maintainable in the long run. #snowpal aws.snowpal.com learn.snowpal.com

24 Marras 202315min