Tips for Junior Developers
Hi everyone 👋 this blog post kind of different from my usual ones since this is based on a recent talk I delivered at the Adelaide Jnr…
Building a gRPC Client in .NET
Introduction In this article, we will take a look at how to create a simple gRPC client with .NET and communicate with a server. This is the…
Building a gRPC Client in Go
Introduction In this article, we will take a look at how to create a simple gRPC client with Go. We will be using this client to interact…
Building a gRPC Server in .NET
Introduction In this article, we will look at how to build a simple web service with gRPC in .NET. We will keep our changes to minimal and…
Building a gRPC Server in Go
Intro In this article, we will create a simple web service with gRPC in Go. We won’t use any third-party tools and only create a single…
Introduction to gRPC
Intro If you have built RESTful or other OpenAPI-like APIs for some time and wondering what’s next for you, then you have come to the right…
Automating Raspberry Pi K3s provisioning with Ansible
In this article, we will be looking at how we can automate most of the steps involved in installing a Raspberry Pi+K3s cluster by using…
A closer look at commands and args in Kubernetes Pods
In my previous blog post, we looked at how commands and args work in Docker. If you missed that one, the link is down below. A closer look…
Building your own private Kubernetes cluster on a Raspberry PI 4 with K3S
In this article, we will look at setting up your own private Kubernetes cluster on a Raspberry Pi using K3S in your home Wi-Fi network! Our…
Tips and Tricks to Ace the Certified Kubernetes Application Developer
I recently passed the Certified Kubernetes Application Developer exam and thought to share some tips and tricks that might come in handy if…
Setting up Elastic Workplace Search with Docker
Recently I started looking into Elastic Enterprise Search’s Elastic Workplace Search offering. The configuration was not quite obvious when…
A closer look at commands and args in Docker containers
Today we will be looking at how we can make use of commands and args in Docker to run our own processes when we spin up containers. This…
ASP.NET Core Health Checks
When you are developing a project where you have multiple services talking to each other, it would be hard to see their service health…
Distributed Caching in ASP.NET Core with Redis
About a year ago, I wrote a blog post on simple In-Memory Caching in ASP.NET Core with IMemoryCache. This article mainly introduced the…
Publishing Android Apps to Microsoft App Center from Azure DevOps
In my previous article, we looked at how we can set up multi-stage builds for an Android app with Azure DevOps. In this article, we will be…
Multi-stage builds for Ionic Apps with Azure Pipeline Templates
In this article, we will create an Azure Pipeline for an Ionic app using the new Azure pipelines YAML templates. We will also cover signing…
Understanding WebSockets with ASP.NET Core
In this article, we will go through RFC 6455 WebSockets specification and configure a generic ASP.NET (Core) 5 application to communicate…
How to ramp up in a new codebase with NDepend
Reading code is good. But, visualising code is even better. I recently wrapped up a gig where we had to perform a .NET Core upgrade (from…
Having Fun with Microsoft IoC Container for .NET Core
The objective of this post is to configure and use Microsoft’s default dependency injection container from scratch to understand how it all…
Understanding .NET Generic Host Model
In this article, we will concentrate on how the Generic Host model hosts ASP.NET Core 3.x Web app and a Worker Service. We will first…
D3.js Creating a Bar Chart from Ground Up
Creating a bar chart is not that difficult, or is it? Today, we are going to dissect the basic elements of a bar chart and create it from…
D3.js Join Semantics - A Conceptual Look
It’s really easy to get started with D3 when you go through their excellent documentation. However, the goal of this post is to give you a…
Securing Hangfire Dashboard in ASP.NET Core with a Custom Auth Policy
This blog post assumes that you have a basic understanding of Hangfire. If not, you can follow their excellent guide on how to get started…
Multi-stage Image Builds with Docker
What and Why Behind Multistage Builds In a Dockerfile, each statement adds up a new layer to the image. It could be counterproductive if you…
Deploying Multi-Container Services on Azure Service Fabric
To give you a bit of context on what we will be looking at today, we will have one goal - to deploy a microservices application to Azure…
Setting up your Raspberry PI 4 - Headless mode
When I first got my Raspberry PI 4 (RPI for the rest of the article), I was so excited to get started. However, there was one problem. How…
Getting Started with Azure Service Fabric
tl;dr - if you only want to get started quickly, just jump ahead to “Setting up a Development Environment” section I have been experimenting…
Simple In-Memory Caching in .Net Core with IMemoryCache
Caching is the process of storing the data that’s frequently used so that data can be served faster for any future requests. 💡 Update…
Understanding Nullable Value Types in C#
I recently started picking out different topics that I like to learn more about. One such thing I wanted to have a closer look at is…
Deploying an ASP.NET Core App on Google Kubernetes Engine
I recently started playing around with the Google Cloud Platform. Since ASP.NET Core now runs on virtually any major OS, I wanted to give it…
Demystifying Async & Await in C#
You might have come across the two keywords and many times while working on .NET projects. Although it’s a fascinating thing to use, it’ll…
How to Pre-Configure Services Before Registering with ASP.NET Core's Built-in Service Container
In ASP.NET, if you are using the default DI service container, registering services is done in the method in your class. In some special…