Product Management with Amplitude



Software engineering is hard, and leading a team as an engineer can be even harder. Many of us feel more comfortable writing code than working with people, and we often believe our value lies solely in our technical output. But when you step into team leading, the balance shifts: there are more people than code, and your value changes and, often, grows.Over the last 25 years I was dropped into team leading several times without warning, but three and a half years ago I chose to do it deliberately. It still took more than a year before I realised I was only just beginning to understand what leading a software team really involves.This revised and updated version of my talk - now expanded to better reflect the ideas in my book So You Think You Can Lead a Team? - shares the highs, lows, surprises, and lessons learned along the way. I can't promise a magic formula (I'm still learning every day), but I hope to help you avoid some of the mistakes I made and find your own path to becoming a better team lead.
As software engineers, it's easy to get lost in the excitement of implementing clever business logic: the algorithms, the workflows, the elegant domain models. But the success (or failure) of a service rarely hinges on its core logic alone. What really separates a fragile prototype from a resilient, scalable system is everything that happens around that logic: the invisible scaffolding that shapes how a service behaves, communicates, and recovers when things go wrong.In this session I'll explore the often-overlooked aspects of building robust services. The decisions that make the difference between smooth operations and painful refactors months down the line. I'll unpack how thoughtful design choices early on can pay dividends in maintainability, observability, and security later. Whether you're building your first microservice or managing an ecosystem of services, you'll leave with practical ideas for designing services.Key Takeaways:
As software engineers, it's easy to get lost in the excitement of implementing clever business logic: the algorithms, the workflows, the elegant domain models. But the success (or failure) of a service rarely hinges on its core logic alone. What really separates a fragile prototype from a resilient, scalable system is everything that happens around that logic: the invisible scaffolding that shapes how a service behaves, communicates, and recovers when things go wrong.In this session I'll explore the often-overlooked aspects of building robust services. The decisions that make the difference between smooth operations and painful refactors months down the line. I'll unpack how thoughtful design choices early on can pay dividends in maintainability, observability, and security later. Whether you're building your first microservice or managing an ecosystem of services, you'll leave with practical ideas for designing services.Key Takeaways:
![[nor(DEV):con] Beyond the Code: Designing Services That Stand the Test of Time](/img/audience-f817e8b7.jpg)
As software engineers, it's easy to get lost in the excitement of implementing clever business logic: the algorithms, the workflows, the elegant domain models. But the success (or failure) of a service rarely hinges on its core logic alone. What really separates a fragile prototype from a resilient, scalable system is everything that happens around that logic: the invisible scaffolding that shapes how a service behaves, communicates, and recovers when things go wrong.In this session I'll explore the often-overlooked aspects of building robust services. The decisions that make the difference between smooth operations and painful refactors months down the line. I'll unpack how thoughtful design choices early on can pay dividends in maintainability, observability, and security later. Whether you're building your first microservice or managing an ecosystem of services, you'll leave with practical ideas for designing services.Key Takeaways:
![[nor(DEV):con] Leadership: Carrots, Sticks, and Slack Panel](/img/audience-f817e8b7.jpg)
What truly separates a ‘good’ leader from a ‘great’ one? Join our panel as we consider the realities of leading modern software teams in a world that has gone hybrid. We will talk about the technical and cultural hurdles of managing remote developers and how to keep your team happy when high-salary remote roles are just a click away.Furthermore, we want to get practical about the human side of the job: how do you challenge someone to grow while making sure they feel valued? Whether you are just stepping into management or you have been leading for years, come along for some honest conversation and good vibes. Let’s consider how we build loyal, high-performing teams together.

Software engineering is hard, and leading a team as an engineer can be even harder. Many of us feel more comfortable writing code than working with people, and we often believe our value lies solely in our technical output. But when you step into team leading, the balance shifts: there are more people than code, and your value changes and, often, grows.Over the last 25 years I was dropped into team leading several times without warning, but three and a half years ago I chose to do it deliberately. It still took more than a year before I realised I was only just beginning to understand what leading a software team really involves.This revised and updated version of my talk - now expanded to better reflect the ideas in my book So You Think You Can Lead a Team? - shares the highs, lows, surprises, and lessons learned along the way. I can't promise a magic formula (I'm still learning every day), but I hope to help you avoid some of the mistakes I made and find your own path to becoming a better team lead.

As software engineers, it's easy to get lost in the excitement of implementing clever business logic: the algorithms, the workflows, the elegant domain models. But the success (or failure) of a service rarely hinges on its core logic alone. What really separates a fragile prototype from a resilient, scalable system is everything that happens around that logic: the invisible scaffolding that shapes how a service behaves, communicates, and recovers when things go wrong.In this session I'll explore the often-overlooked aspects of building robust services. The decisions that make the difference between smooth operations and painful refactors months down the line. I'll unpack how thoughtful design choices early on can pay dividends in maintainability, observability, and security later. Whether you're building your first microservice or managing an ecosystem of services, you'll leave with practical ideas for designing services.Key Takeaways:

A double-header evening with two talks by Paul Grenyer.18:30 - So you think you can lead a team?This presentation explores the challenges engineers face when transitioning to team leadership roles. Drawing from 25 years of career progression, Paul shares lessons about shifting from code-focused work to people management, covering both successes and mistakes encountered over time.19:45 - From Zero to Deployed: Building & Shipping an AWS Lambda with TypeScript, Terraform & GitHub ActionsA practical demonstration on building serverless functions using AWS Lambda with TypeScript, Terraform, and GitHub Actions. Topics include writing Lambda functions, provisioning infrastructure through code, automating deployments, and lessons from serverless implementations.Free pizza and beer provided, with book signing available.