Marc Duiker

Information & Communications Technology

Azure Serverless Azure Functions Durable Functions Azure Cognitive Services Microsoft Azure Realtime communication

Amsterdam, North Holland, Netherlands

Marc Duiker

I ♥ Serverless, Dev Communities, & Creative Coding

Marc is a Sr Developer Advocate at Ably 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. In 2019, 2020, and 2021 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.

  blog.marcduiker.nl (blog)
  ably.com (company)

Current sessions

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.


Realtime messaging with Azure Functions & Ably

Do you want to do realtime messaging at scale in your serverless application? In this session, I’ll demonstrate how to build an event-driven solution that pushes notifications from Azure Functions (based on .NET) to an online dashboard using Ably as the realtime component. I’ll show how to use the new Ably output binding for Azure Functions that makes integrations with Ably a frictionless experience.

Format: mix of slides and showing code + some live coding (using VSCode).
Target Audience: .NET developers familiar with Azure Functions. Application architects who are interested in event driven architecture & realtime messaging.


Creating a realtime serverless collaboration tool: Agile Flush

Do you work in sprints? Are you doing planning poker to estimate story points? Then have a look at Agile Flush, a free & open source realtime collaboration tool for planning poker, built with Vue, Azure Static Web Apps, Azure Functions, and Ably.

In this session, I’ll demonstrate how to build an event-driven collaboration tool and host it in the Azure cloud. I’ll zoom in on Agile Flush, how the front-end components are built with Vue, and how the data is synchronized between participants using Ably, a realtime messaging platform. By the end of the session, you’ll have a good understanding of how to build a serverless collaborative application yourself.

Format: A mix of slides and showing code (using VSCode).
Target Audience: Developers interested in serverless & realtime collaboration tools.


Building a fully featured scalable chat app

Real-time communication has become a core feature in many modern applications. One implementation of real-time, is chat functionality in websites and dedicated communication apps.

In this session, we'll cover how we're building FFS Chat, a Fully Featured and Scalable chat application, built with React, hosted on Azure Static Web Apps, and using CosmosDB as the main storage service.

We'll zoom in on the various Azure services and how Ably fits in as the real-time component.


Let's create a custom GitHub Action

Everyone appears to be using GitHub these days. I've been using it to store source code for my ~~bottomless pit of ideas~~ side projects, my blog (on GitHub Pages), and now you can even do continuous integration & delivery using GitHub workflows & actions.

GitHub Actions are the best things since sliced bread. I use them to check hyperlinks, build projects, run unit tests, and deploy my artifacts to the cloud. There are literally thousands of actions available from the Actions Marketplace, but if you can't find what you need, you can build a custom one yourself, and that's what I'll show in this session. I'll cover the various types of actions, the required metadata, and some toolkits that help you build them. By the end of the session, you will feel confident you can build your own!


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 and deploy it to the Azure cloud. By the end of the session you'll have enough knowledge to create your own functions.