Creating a REST API in Rust

I recently started learning Rust. After watching a bunch of bigboxSWE videos, I was influenced by his idea of “learning by doing.” I decided to keep things simple and start by building a REST API that supports CRUD (Create, Read, Update, Delete) functionality. Turns out, when it comes to Rust, even this wasn’t as simple as I thought. But I learned A LOT in the process. In this blog, I’ll walk you through the steps of creating a simple API in Rust and share all the things I learned along the way. Hopefully, this helps you in your journey of learning Rust :) ...

September 27, 2025 · 29 min · Arsh Sharma

How to Provide Secure Access to Your Kubernetes Clusters Using an Overlay Network

Kubernetes is complex. Securing Kubernetes clusters is even more complex. Striking the right balance between granting developers and administrators access to Kubernetes clusters and services while taking care of security is a significant challenge. Overlay networks offer a solution by providing secure, controlled access to your clusters without compromising their protection. In this blog, we’ll explore the challenges of providing secure access to Kubernetes clusters, how overlay networks can address these issues, and a step-by-step tutorial on implementing this using NetBird, an open-source WireGuard-based overlay VPN. ...

March 19, 2025 · 12 min · Arsh Sharma

Becoming CI Provider Agnostic With Dagger

CI (Continuous Integration) is essential to anyone building software. An efficient CI pipeline not only allows you to ship fast, but also ensures that your releases are well-tested and stable. There are more than a dozen reliable CI providers available today, each with its own set of features and pricing models. Picking a CI provider for a new project often boils down choosing what the company is already using or what comes included with your Git service. ...

February 10, 2025 · 7 min · Arsh Sharma

Introduction to Object Oriented Programming (OOP) in Golang

When we talk about programming, we usually mean writing a bunch of functions that modify and interact with some data. Object Oriented Programming (OOP) is a programming model that instead focuses on “objects” that contain data and and have some relevant functions attached to them. Object Oriented Programming has four pillars: Inheritance, Encapsulation, Polymorphism, and Abstraction. In this blog, we’ll take a look at how you can implement each of them in Golang with examples. Some basic idea about OOP is recommended, but if not, I will be giving a brief introduction to what all the four pillars mean. ...

December 16, 2024 · 9 min · Arsh Sharma

What Is Network Address Translation (NAT)

If you’ve been following my blog, you know I recently wrote a three-part series on the OSI Model. Continuing that trend of networking blogs, in this one, I’ll be covering a very important topic in the world of networking, and that’s NAT (Network Address Translation). I promise this is easier to understand than the OSI Model haha :P The Problem That NAT Solves: Shortages of IPv4 Address Before we learn about what NAT is and does, it’s important to discuss why we even need it in the first place. IPv4 addresses can be either publicly routable or in the private address space for IPv4. Publicly routable addresses are assigned by The Internet Assigned Numbers Authority (IANA) to ISPs, which then further allocate them to end users like AWS or even you or me. These publicly routable addresses need to be unique for the internet to function correctly. ...

December 5, 2024 · 6 min · Arsh Sharma

Understanding the OSI Model: Layer 4 to Layer 7

Welcome to the final blog in the series on the OSI Model. In the last blog, we discussed Layer 3 and how IP packets move from source to destination. In this one, we’ll cover the shortcomings of Layer 3 and then discuss all the Layers from 4 to 7! Problems with Layer 3 While Layer 3 allows devices to communicate across different networks, there are still some problems that can occur with it. ...

November 28, 2024 · 9 min · Arsh Sharma

Understanding the OSI Model: Layer 3

In the last blog, we looked at Layer 1 and Layer 2 of the OSI Model. While Layer 2 (Data Link Layer) adds a lot of improvements over Layer 1, like the ability to identify individual devices in the local network with the help of MAC addresses, it still only works best over local area networks (LAN). In this blog, let’s see some shortcomings of Layer 2 and how Layer 3 of the OSI Model improves upon them. ...

November 25, 2024 · 8 min · Arsh Sharma

Understanding the OSI Model: Layer 1 and Layer 2

The OSI (Open Systems Interconnection) Model is a framework that helps understand how communication between computers takes place in a network. It consists of 7 layers, and each layer builds on top of the ones below it and adds additional functionality. In this blog, we’ll understand the different layers part of this model, starting from Layer 1 at the bottom. All layers rely on the layers below them to continue functioning. ...

November 11, 2024 · 6 min · Arsh Sharma

AWS Root User vs IAM Users

Welcome to the first in a series of blog posts about AWS! Throughout this series, I’ll be covering various AWS topics as I prepare for the AWS Solutions Architect exam. I thought what better place to start than with one of the most fundamental steps when beginning with AWS: creating an account. In this post, I’ll discuss the root user that’s created with your AWS account and how it differs from IAM users. ...

November 2, 2024 · 4 min · Arsh Sharma

Coding Bugs with ChatGPT

Recently I was tinkering around with creating a Chrome extension. Not having a lot of experience with this, I did what the cool kids these days are doing: I decided to use ChatGPT for helping me write code. And don’t get me wrong, ChatGPT (or other AI tools for that matter) does a decent job of helping you create things and spot bugs. But it’s a gun that can easily backfire if you don’t know what you’re doing with it. This blog is going to be about one such incident that happened to me when working on this project. ...

August 1, 2024 · 6 min · Arsh Sharma