Maarten Balliauw

Maarten Balliauw

.NET and web. Works at JetBrains.

Antwerpen, Belgium

Maarten Balliauw loves building web and cloud apps. His main interests are in .NET web technologies, C#, Microsoft Azure and application performance. He is Developer Advocate at JetBrains. Creator and maintainer of https://speaker.travel. He's an ASP Insider and former Microsoft MVP. Maarten is a frequent speaker at various national and international events and organizes Azure User Group events in Belgium. In his free time, he brews his own beer. Maarten's blog can be found at https://blog.maartenballiauw.be.

Area of Expertise

  • Information & Communications Technology


  • .net
  • .net core
  • Azure
  • JetBrains
  • Software Architecture
  • Web
  • Web API
  • dotNet
  • performance

Bringing C# nullability into existing code - dammit is not the answer!

The C# nullability features help you minimize the likelihood of encountering that dreaded System.NullReferenceException. Nullability syntax and annotations give hints as to whether a type can be nullable or not, and better static analysis is available to catch unhandled nulls while developing your code. What's not to like?

Introducing explicit nullability into an existing code bases is a Herculean effort. There's much more to it than just sprinkling some `?` and `!` throughout your code. It's not a silver bullet either: you'll still need to check non-nullable variables for null.

In this talk, we'll see some techniques and approaches that worked for me, and explore how you can migrate an existing code base to use the full potential of C# nullability.

Nerd sniping myself into a rabbit hole... Streaming online audio to a Sonos speaker

After buying a set of Sonos-compatible speakers at IKEA, I was disappointed there's no support for playing audio from a popular video streaming service. They stream Internet radio, podcasts and what not. Well, not that service I want it to play!

Determined - and not knowing how deep the rabbit hole would be - I ventured on a trip that included network sniffing on my access point, learning about UPnP and running a web server on my phone (without knowing how to write anything Android), learning how MP4 audio is packaged (and has to be re-packaged). This ultimately resulted in an Android app for personal use, which does what I initially wanted: play audio from that popular video streaming service on Sonos.

Join me for this story about an adventure that has no practical use, probably violates Terms of Service, but was fun to build!

Debugging Tips and Tricks in Rider

When I started software development, I was writing “echo” statements in code to see what was happening. We’re beyond that era, but do we know how to use the debugging tools available to us? In this talk, we’ll see how we can greatly improve our debug-fu, and tour most of the debugger tools available in JetBrains Rider. A practical, demo-driven session with tips and tricks on how to let tools help us make troubleshooting and finding bugs much easier!

Get the maximum out of Minimal APIs with ASP.NET Core

A lightweight HTTP API can use a lot of the ASP.NET Core Middleware, such as routing, authentication and authorization. Using the full-blown MVC framework for such API is just overkill!

But MVC does have some things that you'll miss when using plain "app.MapGet": you have to handle HTTP request/response handling and model binding yourself.
ASP.NET Core 6.0 introduces the missing link between writing low-level HTTP and a full-blown MVC or Razor application: minimal APIs.

In this talk, we will explore what minimal APIs are, what they are not, and how/where your applications can benefit from this lightweight model to building HTTP applications.

Become a productive .NET developer with JetBrains Rider

With .NET Core, an explosion of .NET IDE's happened! There's good old Visual Studio, but also VS Code, VS for Mac, and JetBrains Rider. In this talk, we'll dive into the latter. We'll explore navigation, automatic inspections and quick fixes, code generation, built-in tooling like version control integration and local history and look at the special scenario's the debugger has to offer. Come to this session to learn about Rider, and learn plenty of tips & tricks to enhance your development productivity.

Microservices for building an IDE – The innards of JetBrains Rider

Ever wondered how IDE’s are built? In this talk, we’ll skip the marketing bit and dive into the architecture and implementation of JetBrains Rider. We’ll look at how and why we have built (and open sourced) a reactive protocol, and how the IDE uses a “microservices” architecture to communicate with the debugger, Roslyn, a WPF renderer and even other tools like Unity3D. We’ll explore how things are wired together, both in-process and across those microservices. Let’s geek out!

Maarten Balliauw

.NET and web. Works at JetBrains.

Antwerpen, Belgium