The Cloud Native Craftsman#
Welcome to my website. I’m Mischa, a Cloud Native Engineer from Amsterdam.
Here I share thoughts and learnings about technical topics such as Microsoft
Azure, Kubernetes, Cloud Native technologies, DevOps and Linux. I’m also very
interested in anything that increases my productivity, so you will also find
writings on Zettelkasten, (Neo)vim, study techniques and anything that has to do
with taking notes.
In 2024 I was awared the Microsoft MVP title for my efforts of sharing knowledge
with the community.
Years of sharing knowledge on YouTube and this blog have uncovered a talent for
tackling difficult technical topics and explaining them in simple terms to
others.
In other words, I’ve found out that I have a knack for teaching. Following this
curiousity I started a Skool Community
where I create video courses on Kubernetes, Productivity, DevOps and much more.
My courses are also available on
Udemy
My courses have been received very well and I receive plenty of positive
feedback.
This blog is also available for your preferred RSS reader. Use
this link.
Sign Up For My Free Newsletter#
Socials#
📚 My Skool Community
🐦 Twitter - X
💻 LinkedIn
💾 GitHub
🎥 YouTube

Most Recent Posts#
I’m typing this 30 minutes after I passed my AZ-400 exam. I’m sitting in a lovely cafe on Leidseplein in Amsterdam and feel relieved. Another significant certification bites the dust. This one took about 70 hours of study.
I started preparing immediately after passing my AZ-104 exam, which was a good move. The AZ-400 requires you to know many details about Azure services and how to access them. For example, Shared Access Signatures are only used for accessing storage accounts, but they came up quite often as alternative answers to the questions.
...
The PAT (Personal Access Token) often comes up during practice tests for the AZ-400.
One way to remember when to use a PAT is that these are only for authenticating into Azure DevOps, never to external services.
For example, you might get a question on connecting your Azure DevOps project with a GitHub account from Azure DevOps, and PAT will show up as one of the alternative answers. By remembering that PATs are only for authenticating into ADO, you can elminate this alternative, and make your choice easier.
...
I did a lot of studying last year, and I achieved a few tough certifications. I’ve always been good at studying and never struggled with getting decent grades in university. As a result, I never felt the need to use particular techniques to pass my tests. However, now that I need to do my studies combined with a full-time job, I did some optimization and looked into study techniques.
One technique I’ve become very fond of is the Pomodoro Technique. I don’t have any problems focusing for long periods, but I still decided to try it. I use the standard 25-minute study with a 5-minute break routine, and after four cycles, I take a 30-minute break.
...
Last modified: 2023-01-10
In this evening’s studies I came across this bash script in a tutorial by Rob Muhlenstein:
!#/bin/bash echo -e ${PATH//:/\\n} I could not make heads or tails of all these slashes and curly braces, since the output clearly indicated that search and replacement was being performed. I’m used to the sed / vim syntax: s/foo/bar
After some research I learned that ‘//’ is a global search and replace syntax of several text processing programs. It is known as parameter expansion in bash.
...
My friend gave me a nice tip for customizing the readme on my personal GitHub page. I discovered there is a whole world of plugins and customizations out there.
I set up this one for my GitHub homepage. It uses a workflow to update the readme in my personal GitHub repo with the most recent posts from this blog, based on the RSS feed. Neat!
It was very easy to set up. If you don’t have your own blog, you could configure it with a different RSS feed. Hacker News for example.
...
I’ve used zsh for nearly two years now. I have a custom setup with autocompletion and a good looking prompt.
Recently I’ve been diving deeper into bash scripting, following tutorials by rwxrob. He emphasizes all the time that it is much better to stick to bash instead of zsh.
Advantages of using bash:
the default Linux shell available on any Linux system full documentation available anywhere at all times with man bash free software less dependent on external plugins and configurations more portable practice by working on the command line The fact that working on the commandline is already coding convinced me to leave my beloved customized prompt behind (for now) and go back to the basics.
...
I wanted to build an application from a Dockerfile and deploy it to a VM. I used a default Svelte setup as an example app.
Naturally, Azure prefers that you deploy containers to services such as Azure Container Instances or App Services, so they don’t provide modules for the pipelines to deploy to docker servers as far as I could tell.
I searched for a long time but I could not find a solution. In the end I just ran shell commands from the pipeline to run the container on on the server.
...
To reach a VM from Azure Pipelines, you need to set up an environment.
Create your Linux VM in Azure.
In Azure DevOps, click envirnoments, new, and select the Virtual Machine option.
A command is generated for you. SSH into your VM and run the command.
Now the VM should show up under environments in Azure DevOps.
Set up a repo with an azure-pipelines.yml with these contents to test. under environment, set the same name as you did in Azure DevOps for your environment.
...
For a project I’m setting up my environment with Terraform.
I used this tutorial, but modified the code to make it simpler and easier to understand for beginners. The original uses a random module to generate random names, and generates a new SSH key. Also, this tutorial uses expensive VM tiers and Premium storage, which are not necessary when you are learning.
I also thought the SSH configuration was overcomplicated. My version just takes an SSH keypair stored at ~/.ssh/id_rsa.pub
...
I use the Obsidian app, but I mostly write and search my notes with neovim. I added my zet directory from this blog repo into the Obsidian vault as a symbolic link, but I soon discovered that these files were not being searched.
Telescope.nvim uses ripgrep (rg) to do the live grepping in its search, and ripgrep does not follow symbolic links by default. You need to pass the -L flag to it.
...