RSSAmplifier

Blog

Arsh Sharma

Recent content on Arsh Sharma

arshsharma.comRSS feed ↗32 posts

Latest posts

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…

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,…

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…

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,…

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…

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.…

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…

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…

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…

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 Don’t Need To Pay for the OpenAI API During Development

If you’re developing or thinking of creating an app that leverages the OpenAI API but don’t want to put down your credit card until you’re sure you have something, I have good news for you. In this article I’m going to show you how you can create a backend API which is compatiable with the OpenAI API. However, when running this API locally during development, we will use the…

How to Approach Technical Content for Dev Tools Companies

I’ve been creating technical content for quite some time now. Initially it was just a hobby - I just liked learning new things and talking about it. Then I started doing it as part of my work as well. When I joined my current company we were still a pretty early stage startup so a lot of our focus was mostly on execution. We would brainstorm ideas and areas we wanted to talk about and then I would…

WTF Is a Developer Experience Engineer

I’ve been working at Okteto for over two years now. My job title officially is Developer Experience (DevX) Engineer. I’ve been asked more times than I can count what it means and what my role involves. I think after two years, I finally have enough understanding to write about it in detail :) How It Began I’ll be completely honest - when I had joined the company, I didn’t…

Things I've Learned About Conference Speaking

On the wall across from my desk, I’ve got badges from all the conferences I’ve been to. The collection has grown quite a bit over the past two years. Recently, taking a look at it made me take a trip down memory lane and reflect on the first few talks I gave, as well as the ones I’m giving now - what’s changed, what I do differently, and the things I’ve learned. This…

Building a Blog With a CMS Using Hugo and Netlify

I consume a ton of media - books, shows, movies, games, you name it. And there are moments or lines in them that stick with me long after I’m done. So, I wanted a place to keep all these gems. Instagram was a big no-no for me because I have a love-hate relationship with that app. I wanted something different. Surprisingly, I couldn’t find a convenient solution to save and list all…

Setting Up a GitOps Workflow with Argo CD and GitHub Actions

GitOps is gaining increasing popularity these days, and for good reason. The principles of GitOps promote the use of Git repositories as the ultimate source of truth for application infrastructure and configuration. This concept revolves around storing all application-related files and manifests in a Git repository, leveraging it as the central hub for deployment management. By combining GitOps…

Platform Engineering and Developer Experience: Two Sides of the Same Coin

Around a year ago, the term “developer experience” was all the rage. It was on everyone’s lips, with discussions about its immense importance. However, the current focus seems to have shifted towards “Platform Engineering” - a term that, in my personal opinion, has become quite convoluted. Nevertheless, I feel both concepts essentially revolve around the same idea.…

If You're Using Helm, Why Not Give It a Pretty UI As Well?

Helm Dashboard is an open-source project by Komodor that offers a visual and user-friendly way to manage and visualize all the Helm charts installed in your clusters. Instead of using the terminal, you can leverage the Helm Dashboard’s intuitive UI to perform a variety of tasks that make working with Helm a breeze. Here are some of its key features: Visually pleasing chart list: The…

Deploying Your First Microservice to Kubernetes

I have written extensively about different Kubernetes concepts in my previous blogs, but I haven’t covered a proper, step-by-step hands-on guide for getting started with Kubernetes. In this article, my plan is to do exactly that. After all, there’s only so much you can learn by reading without trying things out yourself. We will take a simple microservice-based application,…

Exploring minikube: A Guide to Local Kubernetes Clusters

Rushing to a cloud provider and spinning up a remote cluster every time you want to try something out with Kubernetes isn’t always convenient - nor is it economical. minikube provides a way to run Kubernetes clusters locally so that you learn and play around with K8s. It is an excellent way to test things out before working with an actual cluster in the cloud. In this article, we’re going to…

Getting Started With AWS EC2

In the previous post , we talked briefly about EC2. In this post, we’ll explore it in a bit more detail. We’ll launch an instance and use it to run an nginx web server which will be accessible from anywhere using a URL. So without further ado, let’s get started :) Search for “EC2” in the AWS search bar. From there click the “Launch Instance” button. Now…

Introduction To AWS IaaS

This article is going to introduce you to the Infrastructure as a Service side of AWS. We’ll start from the basics of how accounts in AWS work and cover some fundamentals in this article. Then in the next post, we’re going to do something a bit more hands-on and see EC2 and S3 in action. AWS Accounts? So let’s talk a bit about AWS accounts first. If you just have a username and…

So What Even Is This Cloud Computing?

Cloud computing is what everybody seems to be talking about these days? But what does it even mean? In this short article, I’ll go over what it is and the different types of cloud deployment and delivery models. What is Cloud Computing? Earlier to host applications you would have to rent or build data centers where you would store the hardware which would run your servers. Cloud computing…

Random Bash

Hey everyone, recently I developed quite an interest in Bash so I’ve been trying to learn it. Unlike other things, this time it wasn’t much-structured learning rather just some random tidbits I picked on here and there. In this post I’ll share those things so that together we can demystify this fancy language. Also, some things might just be about Linux in general rather than…

Using Kyverno To Enforce EKS Best Practices

Hey folks, in this post we’ll see how you can use Kyverno to enforce some best practices for your EKS cluster. For those not familiar, Kyverno is a Kubernetes native policy engine that aims to make your life easy when managing clusters. To know more you can read my previous post on Kyverno where we discuss the project and its internals in detail. With that out of the way, let’s get started! EKS…

Channels In Golang

This is the final post in my “Do You Concur?” series. If you’ve not checked the other two out it is highly recommended you do that before reading this one. With that out of the way let’s get started! What Are Channels? A channel in Go can be best understood by comparing it with a box. It is a box where goroutines can put and take out the data. So essentially channels help…

Race Conditions In Golang

This post is the second in my series of articles on Concurrency in Go . In this post, we’ll understand what a race condition is, the why and how of it, and finally, we see some code that creates a race condition, and then we will learn to fix that race condition with the help of Mutexes. So let’s get started! The What, Why And How Of A Race Condition A race condition in Go occurs when…

Concurrency In Golang

I recently started learning more about concurrency in golang and so as with other things I learn, I decided to write about it. This article will be a part of a short series I plan to write about concurrency in Go. So let’s get started! Concurrency Vs Parallelism Before we start looking at some code, I think it would be better to know what concurrency actually is. But even before we do that…

Pod Health With Liveness Probes

Kubernetes relies on Probes to determine the health of a Pod container. A probe can be understood simply as a periodical diagnostic performed by the kubelet on the container. In this short article, I’m going to show you a liveness probe in action. Liveness probes are used to check if a Pod is healthy (running as expected) or not. It simply acts as a check for Kubernetes to know when it…

kubectl exec Is So Cool!

I recently learned about kubectl port-forward and kubectl exec , and I was amazed by what simple but cool stuff you could o with just these two commands when getting started with Kubernetes. So that’s what this post is going to be about. Running Our Pod I’m going to use minikube to launch my cluster but feel free to use whatever you like. Once you have your cluster up and running…

Creating A CLI In Golang

This is technically the first post on my blog so I’m pretty excited to write this one 😄 For the last few months, I’ve been working on depstat , which is a command-line tool to analyze dependencies, as part of my CNCF Internship. I’ve had a blast working on this especially because of the welcoming community. depstat is going to be used to evaluate dependency updates to Kubernetes…

To New Beginnings!

Hey folks! I’ve finally set up my own blog (yaaaaaay!). I was looking at ways to import the articles from my Dev.to but it seems like there is no easy way to go about it and I can’t find the mental strength to copy-paste all 14 articles I’ve written till now. From now on, I will be posting all articles here first and then cross posting them to Dev.to (maybe Medium too). In case…