馃憢 Hi there, I’m Suraj

I love Platform Engineering, Kubernetes, AWS, Golang & All things cloud native.

Backstage Tech Insights #2: Setting Up Tech Insights - Backend

In the previous post, we looked at what Tech Insights is and why it is useful. Now let鈥檚 get it running. This post walks through the backend installation and configuration of the Tech Insights plugin. Prerequisites Before you start, make sure you have: Node.js and Yarn installed A working Backstage instance and codebase Access to the Backstage backend and frontend source code If you do not have a Backstage instance yet, the official getting started guide is the best place to begin. ...

March 24, 2026 路 4 min 路 Suraj Narwade

Backstage Tech Insights #1: Introduction to Tech Insights

If you are running Backstage as your internal developer portal, you have probably dealt with this question at some point: How do we know if our services are following the standards we agreed on? Maybe you want to check whether every service has a README. Maybe you want to ensure all services have CI configured. Or perhaps you want to verify that a particular annotation is present on the components or their Kubernetes resources. ...

March 23, 2026 路 5 min 路 Suraj Narwade

Padding in Go structs

I recently came across a simple but surprisingly rich concept in Go: padding. It is the space the compiler inserts between fields so each value aligns with the architecture鈥檚 expectations. Once you see how much wasted room can live between the fields, you start to appreciate how a small reordering can shrink both the in-memory size of a struct and the amount of memory you move around. Why padding exists at all Go lays out struct fields according to each type鈥檚 alignment requirement. The compiler inserts padding bytes between fields so the next field starts at the proper boundary. This alignment keeps the CPU happy but can leave gaps between fields or push later fields forward so the entire struct ends up bigger than the sum of its fields. ...

March 12, 2026 路 4 min 路 Suraj Narwade

A Week in a Life of a Platform Engineer

In my last blog, I shared my experience and point of view on Platform Engineering. (click here to read previous blog post on Platform Engineering through my lens) In this post, I want to share what a week in the life of a Platform Engineer can look like, based on my own experience and what I鈥檝e heard from other platform folks too. Take this with a pinch of salt. Every organisation is different. Their needs are different, and their platform is different too. ...

February 28, 2026 路 5 min 路 Suraj Narwade

Platform Engineering through my lens

I stepped into Platform Engineering in 2019, before the term had the hype and buzz it has today. Before that, I was a software engineer working in the Kubernetes space, mostly building CLI tools. I genuinely loved it. Writing Go, shaping developer workflows, making day-to-day tasks simpler, that part was fun. But something kept bothering me. Most of my work was focused on local clusters or limited environments. I wanted to keep doing what I enjoyed (building tools), but also learn what happens when Kubernetes meets real production: infrastructure, reliability, deployments at scale, operational pain, and all the invisible decisions that make systems stable. ...

February 26, 2026 路 6 min 路 Suraj Narwade

How to Check Temperature on Raspberry Pi

Keeping an eye on your Raspberry Pi temperature is important, especially if you are running heavy tasks like media servers, coding projects, or home automation. Overheating can cause throttling and reduce performance. Why Temperature Matters The Raspberry Pi automatically reduces CPU speed if it gets too hot, usually above 80掳C. Monitoring the temperature helps you: Prevent performance drops Avoid unexpected shutdowns Decide if you need a heatsink or fan Quick Way to Check Temperature Open the Terminal and run: ...

February 25, 2026 路 1 min 路 Suraj Narwade

Understanding inodes in Linux

What is inode? An inode (short for index node) is a data structure in a Linux filesystem that stores metadata about a file. Each file or directory in Linux has an inode associated with it, which contains, Inode Number Uid Gid Size Blocksize Mode Number of links ACLs, etc but it does not contain the filename, interesting right, more on that later. Inodes also stores permission bits that define how a file can be accessed: ...

November 12, 2025 路 4 min 路 Suraj Narwade

Exploring Crossplane #1: Introduction

(Image taken from official crossplane website) Managing infrastructure across multiple cloud providers can be complex and challenging. Enter Crossplane鈥攁 powerful, open-source Kubernetes native control plane that allows developers and platform teams to use Kubernetes to manage cloud resources like databases, storage, and networking across multiple cloud providers (AWS, GCP, Azure, etc.) and not limited to this and much more other non-cloud resources as well such as Pagerduty, Github, etc. In this introduction to Crossplane, we鈥檒l explore its core capabilities, why it鈥檚 gaining popularity, and where it鈥檚 particularly useful. ...

October 28, 2024 路 5 min 路 Suraj Narwade

Building mkdir (linux) command in Go

One of the best way to learn language is to try recreating familiar linux command in it. In one of the previous post, we have seen how we can implement simple which command, you can check the blog post here. In this blog post, we will try to implement mkdir command, Let鈥檚 get started. mkdir is one of the important commands in Linux which helps to create directories. we will cover following in the blog post: ...

October 25, 2024 路 3 min 路 Suraj Narwade

Understanding iota function in Go

Iota is predefined identifier which is used in constant declaration in Go. It is used to simplify incrementing value of constants. iota value always start at 0 and increments automatically by 1 for next constant. here鈥檚 the syntax for the iota, const ( a = iota // 0 b = iota // 1 c = iota // 2 ) or you can simply write it as, const ( a = iota b c ) Let鈥檚 look at simple example, ...

April 16, 2024 路 2 min 路 Suraj Narwade