Speaker

Marc Duiker

Marc Duiker

I ♥ Serverless, Dev Communities, & Creative Coding

Amsterdam, Netherlands

Marc is a Sr Developer Advocate with a strong focus on event-driven architectures in the Azure cloud. He loves helping developers to achieve more every day.

You might have seen Marc at a developer meetup or conference since he's a regular speaker in the area of Azure cloud & serverless technologies. He started Azure Functions University, a free and open source learning curriculum on GitHub, where everyone can learn about Azure Functions at their own pace. From 2019 to 2022 Marc received the Microsoft Azure MVP award for his community contributions.

In his spare time, Marc likes to give attention to the creative part of his brain. He likes to create pixel art (check out VSCode Pets), code visuals & music, and an occasional retro game.

Area of Expertise

  • Information & Communications Technology

Topics

  • Azure
  • Serverless
  • Azure Functions
  • Durable Functions
  • Microsoft Azure
  • Realtime communication
  • WebSockets
  • Web Development

How to deal with persistence in serverless applications?

Serverless means stateless, right? But surely applications need to persist some state somewhere. What are the right choices for storage solutions that fit a serverless architecture?

In this session, I'll provide several answers to this question. We'll look at several Azure Functions, written in .NET Core. The other key Azure components in this architecture include; CosmosDB, Table Storage, Blob Storage, and Durable Entities. By the end of this session, you'll have a good grasp of the various storage options which will fit your serverless architecture best.

Help! I've created a serverless monolith!

Serverless is easy! In fact, it is *so* easy to build a serverless app on Azure it *will* grow out of control in no-time if you don't pay attention to your application architecture and disregard any learnings from maintenance and operations perspectives.

In this session, I'll give several tips on how to prevent building a serverless monolith. I'll cover various aspects such as application complexity, bounded contexts, scalability, resilience, and metrics. By the end of the talk, you'll know what to look for to prevent your serverless application to become an unmaintainable spaghetti monster.

Target audience are developers with some knowledge about serverless on Azure. Session length is about 30 minutes.

Start exploring your creative coding side now!

This session is all about discovering and expressing your creative coding side!

I believe creating software is an incredibly creative process. Although it may not feel like this when your day job is to code 'Yet Another Timesheet Application'. By doing some creative coding such as programming graphics, music or a small game you'll get a very rewarding feeling because you usually discover something new and others can enjoy your creation.

Let's break away from our regular work and explore 3 fun creative programming tools to create retro games, visual arts, and music: PICO-8, Processing, and Sonic Pi. I'll give a brief demo of each of these tools to show what you can achieve with them. By the end of the talk, I hope I've inspired you to take your creative coding skills to the next level!

How to deal with complex workflows in serverless applications

Running one or two serverless functions is easy. But what if you're rebuilding a complex workflow based on serverless that requires dozens of functions. How do you design and manage that?

In this session, I'll cover building complex long-running workflows using Azure Durable Functions, an extension to Azure Functions that lets your define workflows in code. Durable Functions allow you to:

- Easily chain functions together,
- Perform fan-out/fan-in scenarios,
- Wait for external events,
- Use built-in support for retry policies to achieve a resilient architecture.

I'll cover some advanced scenarios how to use multiple orchestrations, either in one function app, or across multiple function apps. By the end of this session you know how to keep your complex serverless workflows under control!

Creating an incident response system with Azure Durable Functions

Do you want to notify your incident response team when your application is failing? Then join this in-depth session and learn how you can use Azure Functions and Durable Functions to create workflows in code to alert to your team members, do notification retries, callbacks and escalations.

I'll highlight several Durable Functions application patterns that are used in this solution, such as: sub-orchestrators, eternal orchestrations, waiting for events, and stateful entities.

By the end of this session you've learned how you can solve this real life use case by using some of the more advanced capabilities of Azure Durable Functions.

Creating an open-source curriculum to learn serverless

People all learn in a different way. Some prefer reading documentation, some prefer videos, some start coding right away. So what do you do when you want to help others to achieve more with serverless technology? You build an online & open-source learning curriculum, or at least, that is what I did 😅. It's called Azure Functions University, and the content is available for free on GitHub (http://bit.ly/az-func-uni) and YouTube (http://bit.ly/az-func-uni-playlist).

In this session, I'll cover why I started this project, how to initiate collaborations with people from the community, the challenges we faced, and how you can contribute to this project.

Start building serverless applications on Azure

Do you want to focus on creating business value and worry about servers less? Then join this session where I'll show you how to get started with serverless on Azure! I'll cover the benefits of serverless applications, various integration options using bindings, and I'll demonstrate how to create a HTTP triggered function written in .NET 6 and deploy it to the Azure cloud. By the end of the session you'll have enough knowledge to create your own Azure Functions.

The quest for serverless WebSockets, an adventure with Azure Functions and Durable Functions

What do you need to build a serverless application that can communicate with client devices in realtime? In this session I'll show how to combine Azure Functions, Durable Functions and serverless WebSockets (Ably) to achieve this.

The context is a multi-player ADnD style game (with pixel-art of course) running on Azure Static Web Apps. I'll cover:
- How the clients interact with HTTP triggered functions in the .NET based Azure Functions back-end.
- How Durable Entities are used for the centralized game state.
- How serverless WebSockets are used to sync the state to the clients.

We will play the game live as well! https://quest.ably.dev/

Session requires an internet connection (for me and the attendees) to play the game live.

Creating a serverless collaborative pixelart drawing app!

These days you can edit documents, spreadsheets and presentations collaboratively with dozens of people at the same time. Why not do the same for a drawing app!?

In this session I'll show you how to add collaborative functionalities to a web application that uses serverless WebSockets (such as Ably or Azure WebPubSub) for realtime communication. The application allows multiple users to draw on a 16x16 pixel canvas. All mouse movements and clicks on the canvas are synchronized with the other users.

I can guarantee we'll have lots of fun drawing together during the live demo!

Get real-time with .NET 7, how to use Server-Sent Events and WebSockets

Real-time applications are everywhere, we chat with friends & colleagues, we receive location updates of our deliveries, and we get notifications about important news.

But how can we add real-time functionality to our applications? Let's dive into Server-Sent Events and WebSockets to see how they can provide real-time communication in different ways. I'll show demos in .NET 7 minimal web APIs and equally minimal JavaScript front-ends.

Marc Duiker

I ♥ Serverless, Dev Communities, & Creative Coding

Amsterdam, Netherlands