Adam Ralph

Information & Communications Technology

.NET .NET (Core) development .NET 5 .NET Backend .net core .net framework .NET Standard .NET Patterns & Practices C#.Net Open Source Software Distributed Software Systems Modern Software Development distributed systems distributed computing ARCHITECTURE STUFF: Monolithic Approach Microservices & Distributed systems DDD Domain Driven Design Domain Specific Languages messaging open source open source communities toolchain SOA

Flims, Grisons, Switzerland

Adam Ralph

Distributed systems expert at Particular Software

Adam is a distributed systems enthusiast and digital nomad. He works for Particular Software, the makers of NServiceBus. Adam has designed and maintained complex software systems at several companies in the finance industry. He's seen both the good and the bad that can come from applying techniques like SOA, DDD, and microservices. He also likes to speak, maintain open source projects, and fix white space rule violations.

Current sessions

Finding your service boundaries - a practical guide

We know it's useful to split up complex systems. We've seen the benefits of modular deployment of microservices. Dealing with only one piece of code at a time eases our cognitive load. But how do we know where to draw the service boundaries? In complex business domains, it's often difficult to know where to start. When we get our boundaries wrong, the clocks starts ticking. Before long, we hear ourselves say "it would be easier to re-write it".

Join Adam for practical advice on discovering the hidden boundaries in your systems. Help tease out the natural separation of concerns in a sample business domain. During 20 years of developing complex systems, Adam has had plenty of time to get things wrong. Learn to avoid the common pitfalls that can lead us down the path to "the big re-write".


What is .NET Standard?

.NET Standard is one of many techs to emerge from the open source, cross platform .NET ecosystem. Compared to what's come before, it's simpler and way more effective. It may remove most, if not all, of the confusion surrounding cross platform NuGet packages. So what is exactly is it and how does it work? How does it relate to .NET Core?

Join Adam as he answers these questions, and takes a deep-dive into the magic behind the scenes.


Getting the first PR into .NET and other tales from an OSS contributor

The world of open source software has never been more exciting than it is right now. Communities spanning all platforms are thriving and more inclusive than ever. Even Microsoft have transformed their strategy, becoming the "number one" GitHub organisation. Why the big change? What's wrong with the "old" way of doing things?

In November 2014, I became the first community member to have a pull request accepted for .NET Core. With my 15 minutes of fame now over, I'd like to reflect on the journey that took me there. How did 'that Czechoslovakian guy' go from a curious OSS onlooker to a passionate OSS advocate?

We'll discover what OSS is, why it works and how easy it is to get involved. OSS is not only about coding and there are plenty of other ways to contribute. Even if you're not a coder, this talk is still for you.


SOA Done Right (with examples in ASP.NET and NServiceBus) - 2 day workshop

Go beyond the hype and build a solid foundation of theory and practice with this workshop on SOA development.

Join Adam Ralph for a two-day deep dive covering architectural topics such as:

- UI composition
- Data ownership across the enterprise
- How to choose NoSQL databases for your services.

You’ll also learn the nitty-gritty details of building production-ready systems including:

- Fault tolerance – HTTP and queues
- Reliable integration with 3rd party systems
- Scalability, high availability & monitoring

Finally, get some hands-on experience in SOA development by building:

- Scalable command-processing endpoints
- Publish/subscribe event-processing interactions
- Long-running multi-stage business processes and policies

### Objectives

We’ll understand service oriented architecture concepts, and DDD concepts such as bounded contexts and data ownership.

We’ll apply those concepts to build a simple, yet fully functional, order management system sample with a service-oriented architecture, using patterns such as command processing, pub/sub and long-running sagas.

### Skill Level

Senior developers, tech leads, and architects will benefit most from this workshop.

### Computer setup

You'll need a Windows laptop, prepared by following the [workshop setup instructions](https://github.com/Particular/Workshop/blob/master/README.md). We recommend you prepare your laptop at least a week before the workshop.


Code on the road

In the summer of 2017, not content with only working from home, Adam turned the remote working dial up to eleven. He bought a camper van, a couple of EU SIM cards, and... hit a traffic jam near Basel. Seven months and seven countries later, he realised the ski season was starting. Back home to Switzerland it was, to reflect on his experience over a pot of hot cheese.

Ever since, Adam has switched to the "digital nomad" lifestyle every summer, pushing his remote working boundaries to cover more and more countries. Join him as he shares gory details of the challenges he faces on his journeys and the tips and tricks he's learned to overcome them. And find out why he keeps going back for more!


SOA Done Right (with examples in ASP.NET and NServiceBus) - 1 day workshop

Go beyond the hype and build a solid foundation of theory and practice with this workshop on SOA development.

Join Adam for a one-day deep dive covering both architectural topics and the nitty-gritty details of building production-ready systems including:

- Data ownership across the enterprise
- Fault tolerance – HTTP and queues
- Scalability, high availability & monitoring

You'll also get some hands-on experience in SOA development by building:

- Scalable command-processing endpoints
- Publish/subscribe event-processing interactions
- Long-running multi-stage business processes and policies

### Objectives

We’ll understand service oriented architecture concepts, and DDD concepts such as bounded contexts and data ownership.

We’ll apply those concepts to build a simple, yet fully functional, order management system sample with a service-oriented architecture, using patterns such as command processing, pub/sub and long-running sagas.

### Skill Level

Senior developers, tech leads, and architects will benefit most from this workshop.

### Computer setup

You'll need a Windows laptop, prepared by following the [workshop setup instructions](https://github.com/Particular/Workshop/blob/master/README.md). We recommend you prepare your laptop at least a week before the workshop.


Code the future, now

We know how to write code to do something now. What about code to do something tomorrow, or next year? Sometimes we use batch jobs. But as business grows, our "overnight" batch job starts finishing around lunch time. As we expand to new regions, we realise there is no "night". And it's only a matter of time before we make a change and break a batch job we forgot existed. What if tomorrow's code could live in the same place as today's code? What if it all looked the same? What if we could scale it all the same way?

Join Adam and discover how to embrace the future in the code we write now. Learn how to capture requirements as first class business logic, and avoid relegating them as second class citizens of the batch job world. Take a deep dive into techniques which combine off the shelf products with fundamental computer science.

Where we're going... we don't need batch jobs.


Evolution of a toolchain

When Adam started coding, his toolchain was one command: RUN. Since then, toolchains have evolved into rich ecosystems of IDE's, DSL's, CI systems, and more.

This session is a personal journey from an 8-bit terminal to a modern toolchain. Adam will show you what he loved, what he hated, and the toolchain that's evolved from his own experience. The end result is strangely familiar...


Past and future events

DevDay 2020

16 Nov 2020
Louvain-la-Neuve, Wallonia, Belgium

KanDDDinsky

16 Oct - 17 Oct 2019
Berlin, Germany

NDC Oslo 2019

16 Jun - 20 Jun 2019
Oslo, Norway

.NET Day Switzerland 2019

27 May 2019
Zürich, Zurich, Switzerland

NDC Porto 2019

26 Feb - 1 Mar 2019
Porto, Portugal

NDC Sydney 2018

16 Sep - 20 Sep 2018
Sydney, New South Wales, Australia

NDC Oslo 2018

12 Jun - 14 Jun 2018

NDC London 2018

15 Jan - 19 Jan 2018