Marc Duiker

Information & Communications Technology

Azure Serverless Azure Functions Durable Functions Azure Cognitive Services Microsoft Azure

Amsterdam, North Holland, Netherlands

Marc Duiker

Lead Azure Consultant @ Xpirit | I ♥ Serverless | Creative Coder

Marc is a lead consultant at Xpirit with a strong focus on event-driven architectures. He has extensive knowledge of the serverless offerings in the Azure platform and he enjoys helping organizations making effective use of cloud-based technology.

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 in their own pace.

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.

Current sessions

Creating the Azure Functions Updates Twitterbot

I created a serverless Twitterbot which tweets when new releases are made available in public GitHub repositories related to Azure Functions.

In this session, I'll walk you through the serverless application, highlighting which Azure cloud services and Azure Function specific libraries are in use and why they've been chosen. I'll show two architectural patterns which are used: function chaining and fan-out/fan-in and I'll cover the C# clients for GitHub and Twitter and describe their limitations.

Finally, I'll also go into continuous integration & deployment aspects so you'll end up with a complete picture of what is necessary to deliver a serverless solution to the Azure cloud.

Target audience: developers and architects with little to no experience with Azure Functions.


How to teach programming to blind children?

In the Netherlands, there are approximately 3300 children who are visually impaired or blind. Within this group, and especially children between the ages of 7 and 10, there is a lack of appropriate material or methods to teach them programming.

We felt that these children should also be able to learn to code and not be treated any differently than the rest. To fix this, we are collaborating with researchers from LIACS of Leiden University within their “Inclusive programming education” project. In this project, the researchers are looking at what materials children of elementary school-age can use to learn to program in the classroom.

In this talk, we'll go through the process we went through, from our initial idea (including many failures!) to test runs in classrooms and future development. Let's make programming education better for everyone!

Reinier van Maanen & Marc Duiker


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.


How to prevent building a serverless monolith?

Serverless is easy! In fact, it is *so* easy to build a serverless app 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 5 tips on how to prevent building a serverless monolith. I'll cover various aspects such as application architecture, bounded contexts, scalability, resilience, and monitoring. The code & application examples are based on Azure Functions written in .NET Core. By the end of the talk, you'll know what to look for to prevent your serverless application to become an unmaintainable monolith.


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 (C# or JavaScript). 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 show a solution built with Durable Functions which has been running for over a year now. In addition 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 a PagerDuty clone with Azure Functions

You want to send notifications to support contacts 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 notify support contacts, including notification retries, callbacks and escalations.

I'll highlight several 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 Durable Functions.


Creating an open-source learning curriculum for serverless

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 go over how this project got started, the challenges, how you can contribute, and what we're planning for the future.