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