SDD 2020 has been rescheduled for 21–25 September – click for details

SDD 2020 Schedule

Change of Dates

Please note that the agenda below relates to the original conference dates (11–15 May), and will be updated soon with details for 21–25 September.

We’ll need to make a few amendments, but most of the sessions and workshops will remain as detailed here.

Show all presentation descriptions

Monday 11 May 2020

9:30

9:30–17:30

Pre-Conference Workshop

Mark Richards

PRE-01 Software architecture fundamentals

Mark Richards

9:30–17:30

Pre-Conference Workshop

Jules May

PRE-02 Programming like your life depends on it: a reliability masterclass

Jules May

9:30–17:30

Pre-Conference Workshop

Andrew Clymer

Richard Blewett

PRE-03 Asynchronous programming with .NET

Andrew Clymer

Richard Blewett

9:30–17:30

Pre-Conference Workshop

Jonathan Johnson

PRE-04 Kubernetes working for you

Jonathan Johnson

9:30–17:30

Pre-Conference Workshop

Neal Ford

PRE-05 Building evolutionary architectures: hands-on

Neal Ford

9:30–17:30

Pre-Conference Workshop

Jeff Prosise

PRE-06 A day of Azure

Jeff Prosise

9:30–17:30

Pre-Conference Workshop

Stefan Hofer

Isabella Tran

PRE-07 Dive deep into your domain with Domain Storytelling

Stefan Hofer

Isabella Tran

9:30–17:30

Pre-Conference Workshop

Jimmy Bogard

PRE-08 SOA done right – with examples in ASP.NET Core & NServiceBus

Jimmy Bogard

9:30–17:30

Pre-Conference Workshop

Juval Löwy

PRE-09 Righting software – a method for system and project design

Juval Löwy

Tuesday 12 May 2020

9:30

9:30–11:00

Keynote Presentation

Jules May

Quantum supremacy: what's in it for me?

Jules May

11:00

11:00–11:30

Coffee Break

11:30

11:30–13:00

Track 1

Jeremy Clark

I’ll get back to you: task, await, and asynchronous methods in C#

Jeremy Clark

11:30–13:00

Track 2

Kim van Wilgen

Keep calm and put it on Azure

Kim van Wilgen

11:30–13:00

Track 3

Sander Hoogendoorn

Do or don’t. There’s no try. Or is there? The power of monads explained. Sort of.

Sander Hoogendoorn

11:30–13:00

Track 4

Oliver Sturm

Getting started with React

Oliver Sturm

11:30–13:00

Track 5

Allen Holub

What is a Microservice?

Allen Holub

11:30–13:00

Track 6

Jimmy Bogard

Continuous integration & delivery for databases

Jimmy Bogard

11:30–13:00

Track 7

Neal Ford

Software architecture foundations: styles, patterns & tradeoffs

Neal Ford

11:30–13:00

Track 8

Venkat Subramaniam

Qualities of a highly effective architect

Venkat Subramaniam

13:00

13:00–14:00

Lunch Break

14:00

14:00–15:30

Track 1

Andrew Clymer

Richard Blewett

Ten OO design patterns every developer should know in 90 minutes

Andrew Clymer

Richard Blewett

14:00–15:30

Track 2

Dominick Baier

OpenID Connect & OAuth 2.0 – security best practices

Dominick Baier

14:00–15:30

Track 3

Jules May

Closures: the next great development in software technology

Jules May

14:00–15:30

Track 4

Venkat Subramaniam

Rediscovering JavaScript

Venkat Subramaniam

14:00–15:30

Track 5

Mark Richards

Microservices migration patterns

Mark Richards

14:00–15:30

Track 6

Jonathan Johnson

Code analysis and team culture

Jonathan Johnson

14:00–15:30

Track 7

Neal Ford

Software architecture foundations: identifying characteristics

Neal Ford

14:00–15:30

Track 8

Simon Brown

Visualising software architecture with the C4 model

Simon Brown

15:30

15:30–16:00

Coffee Break

16:00

16:00–17:30

Track 1

Jeremy Clark

Get func-y: understanding delegates in .NET

Jeremy Clark

16:00–17:30

Track 2

Jeff Prosise

Fundamentals of Machine Learning

Jeff Prosise

16:00–17:30

Track 3

Kim van Wilgen

Continuous security

Kim van Wilgen

16:00–17:30

Track 4

Julie Lerman

Building serverless data APIs

Julie Lerman

16:00–17:30

Track 5

Allen Holub

Choreographing Microservices

Allen Holub

16:00–17:30

Track 6

Jessica White

Controlling wildfires while only getting singed

Jessica White

16:00–17:30

Track 7

Juval Löwy

Actors – the past and future of software engineering

Juval Löwy

16:00–17:30

Track 8

Venkat Subramaniam

Towards an evolutionary architecture

Venkat Subramaniam

17:30

17:30–19:00

Drinks Reception

Wednesday 13 May 2020

9:30

9:30–11:00

Track 1

Andrew Clymer

Richard Blewett

What’s new in async for .NET Core

Andrew Clymer

Richard Blewett

9:30–11:00

Track 2

Jeff Prosise

Fundamentals of Deep Learning

Jeff Prosise

9:30–11:00

Track 3

Kate Gregory

Naming is hard: let’s do better

Kate Gregory

9:30–11:00

Track 4

Christian Wenz

The Final Line of Defence: Browser Security Headers

Christian Wenz

9:30–11:00

Track 5

Allen Holub

Practical event storming

Allen Holub

9:30–11:00

Track 6

Mark Richards

Essential architecture practices

Mark Richards

9:30–11:00

Track 7

Rob Richardson

Git scenarios: how do I fix that?

Rob Richardson

9:30–11:00

Track 8

Kim van Wilgen

How people learn

Kim van Wilgen

11:00

11:00–11:30

Coffee Break

11:30

11:30–13:00

Track 1

Jeremy Clark

Diving deeper into dependency injection

Jeremy Clark

11:30–13:00

Track 2

Dominick Baier

OpenID Connect and OAuth 2.0 – tips from the trenches

Dominick Baier

11:30–13:00

Track 3

Dror Helper

From clever code to better code

Dror Helper

11:30–13:00

Track 4

Philip Japikse

Getting started with ASP.NET Core 3.x

Philip Japikse

11:30–13:00

Track 5

Sander Hoogendoorn

Building a Microservices architecture in small steps

Sander Hoogendoorn

11:30–13:00

Track 6

Dave Farley

Reactive systems

Dave Farley

11:30–13:00

Track 7

Sven Peters

How to rock remote work

Sven Peters

11:30–13:00

Track 8

Juval Löwy

Zen of architecture

Juval Löwy

13:00

13:00–14:00

Lunch Break

14:00

14:00–15:30

Track 1

Cecilia Wirén

Security features to consider in .NET Core

Cecilia Wirén

14:00–15:30

Track 2

Jeff Prosise

Practical AI for software developers

Jeff Prosise

14:00–15:30

Track 3

Joe Natoli

Dark patterns: responsible software design in the age of moving fast and breaking things

Joe Natoli

14:00–15:30

Track 4

Philip Japikse

Moving to ASP.NET Core 3.x from ASP.NET

Philip Japikse

14:00–15:30

Track 5

Jonathan Johnson

Understanding Kubernetes: fundamentals

Jonathan Johnson

14:00–15:30

Track 6

Jimmy Bogard

Messaging with metaphors

Jimmy Bogard

14:00–15:30

Track 7

Julie Lerman

Dev and test agility for your database with Docker

Julie Lerman

14:00–15:30

Track 8

Juval Löwy

Software project design

Juval Löwy

15:30

15:30–16:00

Coffee Break

16:00

16:00–17:30

Track 1

Hadi Hariri

Kotlin for .NET developers

Hadi Hariri

16:00–17:30

Track 2

Philip Japikse

Moving to Entity Framework Core 3.x

Philip Japikse

16:00–17:30

Track 3

Scott Brady

Stop blaming your users for bad passwords

Scott Brady

16:00–17:30

Track 4

Christian Wenz

Hidden treasures: browser APIs

Christian Wenz

16:00–17:30

Track 5

Jimmy Bogard

Effective Microservice communication and conversation patterns

Jimmy Bogard

16:00–17:30

Track 6

Rob Richardson

Securing Docker containers: Kubernetes just handles that, right?

Rob Richardson

16:00–17:30

Track 7

Neal Ford

“Design patterns” in dynamic and functional languages

Neal Ford

16:00–17:30

Track 8

Mark Richards

Leading and guiding development teams

Mark Richards

Thursday 14 May 2020

9:30

9:30–11:00

Track 1

Jeff Prosise

Machine Learning for C# Lovers: building sophisticated ML models with ML.NET

Jeff Prosise

9:30–11:00

Track 2

Dror Helper

Unit testing patterns for concurrent code

Dror Helper

9:30–11:00

Track 3

Venkat Subramaniam

Twelve ways to make code suck less

Venkat Subramaniam

9:30–11:00

Track 4

Philip Japikse

Versioning ASP.NET Core APIs

Philip Japikse

9:30–11:00

Track 5

Mark Richards

The rise and fall of Microservices

Mark Richards

9:30–11:00

Track 6

Oliver Sturm

CQRS and Event Sourcing

Oliver Sturm

9:30–11:00

Track 7

Cecilia Wirén

Add security into your Agile process

Cecilia Wirén

9:30–11:00

Track 8

Neal Ford

Automating architecture governance

Neal Ford

11:00

11:00–11:30

Coffee Break

11:30

11:30–13:00

Track 1

Jeremy Clark

Run faster: parallel programming in C#

Jeremy Clark

11:30–13:00

Track 2

Kevlin Henney

Get kata

Kevlin Henney

11:30–13:00

Track 3

Heidi Waterhouse

The death of data: retention, rot, and risk

Heidi Waterhouse

11:30–13:00

Track 4

Jennifer Wadella

Supporting an old-fashioned AngularJS app in a modern TypeScript world

Jennifer Wadella

11:30–13:00

Track 5

Rob Richardson

Choosing from the many ways to Docker in Azure

Rob Richardson

11:30–13:00

Track 6

Andrew Harmel-Law

Gayathri Thiyagarajan

Adopting Domain-Driven Design at scale – combating near enemies

Andrew Harmel-Law

Gayathri Thiyagarajan

11:30–13:00

Track 7

Allen Holub

Patterns of software architecture

Allen Holub

11:30–13:00

Track 8

Neal Ford

Restructuring & migrating architectures

Neal Ford

13:00

13:00–14:00

Lunch Break

14:00

14:00–15:30

Track 1

Jeremy Clark

What’s new in C# 8 interfaces (and how to use them effectively)

Jeremy Clark

14:00–15:30

Track 2

Venkat Subramaniam

Core software design principles for programmers

Venkat Subramaniam

14:00–15:30

Track 3

Joe Natoli

What do you WANT from me? Figuring out what users really need, want and will actually use

Joe Natoli

14:00–15:30

Track 4

Rob Richardson

JavaScript: the grumpy parts

Rob Richardson

14:00–15:30

Track 5

Oliver Sturm

GraphQL and Microservices

Oliver Sturm

14:00–15:30

Track 6

Luca Mezzalira

Demystifying micro-frontends

Luca Mezzalira

14:00–15:30

Track 7

Allen Holub

DbC (Design by Coding): applying TDD principles to architecture

Allen Holub

14:00–15:30

Track 8

Mark Richards

Patterns of event-driven architecture

Mark Richards

15:30

15:30–16:00

Coffee Break

16:00

16:00–17:30

Track 1

Jules May

Version control for data

Jules May

16:00–17:30

Track 2

Kate Gregory

Emotional code

Kate Gregory

16:00–17:30

Track 3

Jennifer Wadella

Leadership without a paycheck

Jennifer Wadella

16:00–16:40

Track 4

Julie Lerman

Experience report: bringing DDD to a big corporation

Julie Lerman

16:00–16:40

Track 5

Andrew Clymer

Building reliable systems with Polly

Andrew Clymer

16:00–16:40

Track 6

Sven Peters

The effective developer – work smarter, not harder

Sven Peters

16:00–16:40

Track 7

Simon Brown

The lost art of software design

Simon Brown

16:00–17:30

Track 8

Kevlin Henney

Lambda? You keep using that letter

Kevlin Henney

16:50

16:50–17:30

Track 4

James Crowley

Tech for good

James Crowley

16:50–17:30

Track 5

Andrew Clymer

Parallel loops

Andrew Clymer

16:50–17:30

Track 6

Christian Wenz

Surviving a security audit of your ASP.NET site

Christian Wenz

16:50–17:30

Track 7

Simon Brown

The model-code gap

Simon Brown

16:50–17:30

Track 8

Heidi Waterhouse

Y2K and other disappointing disasters: risk reduction and harm mitigation

Heidi Waterhouse

Friday 15 May 2020

9:30

9:30–17:30

Post-Conference Workshop

Mark Richards

Neal Ford

POST-01 Architecture: the hard parts

Mark Richards

Neal Ford

9:30–17:30

Post-Conference Workshop

Oliver Sturm

POST-02 Developing React applications

Oliver Sturm

9:30–17:30

Post-Conference Workshop

Allen Holub

POST-03 Practical Microservices

Allen Holub

9:30–17:30

Post-Conference Workshop

Clare Sudbery

POST-04 Compassionate refactoring

Clare Sudbery

9:30–17:30

Post-Conference Workshop

Dave Farley

POST-05 Advanced deployment pipeline techniques

Dave Farley

9:30–17:30

Post-Conference Workshop

Kenny Baas-Schwegler

João Rosa

POST-06 EventStorming for Domain-Driven Design modelling

Kenny Baas-Schwegler

João Rosa

9:30–17:30

Post-Conference Workshop

Dino Esposito

POST-07 Machine Learning for .NET developers with ML.NET

Dino Esposito

9:30–17:30

Post-Conference Workshop

Juval Löwy

POST-08 A modular development process

Juval Löwy

9:30–17:30

Post-Conference Workshop

Jules May

POST-09 Hello, quantum world!

Jules May