make Function in Go

Looks like some new Gophers are confused about the difference between var and make(). First of all, let’s talk about Go’s approach to types and values. Go doesn’t have a null value like some other languages. This means a variable will always have some value, even when you define it without an assignment. Well, how does Go handle these defined variables, you ask? Simple, Go assigns the “zero value” of that type to the variable. For example, when you write var x int, even if you don’t assign anything, the value of x will be 0. ...

July 4, 2026 · 4 min

Impact of Bad Software

Software has become the core of our lives. Businesses use software to run their operations. People use software most commonly for social connection, but also to solve various problems in their daily lives. But what happens when these software systems are badly designed? Let me give you my most recent example. I had a problem with a piece of furniture recently and couldn’t use it for seven weeks. While the manufacturer intended to provide high-quality service, they failed catastrophically. The reason? The software they use. ...

June 30, 2026 · 3 min

What AI Thinks About Me

Everyone is talking about AI nowadays. I am not an expert on AI or anything, but as far as I know, they are just prediction machines. Meaning you give some words to it, and it gives back some words that are most commonly used together with the words you gave. At least, that was what it was at the beginning. Nowadays they have improved, and now they can take actions too with the words you give them. ...

April 24, 2026 · 4 min

Go Modules

Modules are a fundamental part of Go. They are collections of related packages versioned together. Every Go project includes a go.mod file, which defines the module path and keeps track of dependencies. I am going to build a simple Go module for sorting slices and talk about my module design process. This module will be available here Module Structure Since this module is small, with only five exported functions, splitting it into multiple packages would add unnecessary complexity. That is why this module contains a single package with the same name (the root package). More complex modules usually contain multiple packages for different domains, but they also have a root package to act as an orchestrator for the other packages. ...

April 22, 2026 · 4 min

Thinking Like a Gopher

Lately, I’ve been seeing a lot of teams switching over to writing Go. Most of the people I cross paths with are coming from object-oriented languages like “Java” or “C#”. Since I love talking about Go, every time I encounter someone who is considering making the switch (or already has), I find myself in long chats. In those chats, I realized some problems are very common among various teams, and I want to talk about those in this post. We Go enthusiasts call ourselves “Gophers” and I’m going to talk about how I think while writing Go code (hence the title “Thinking like a Gopher”). ...

February 24, 2026 · 7 min

The Human Factor

Software engineering doesn’t just mean thinking about code or performance. It also means thinking outside the code. Most importantly “The Human Factor”. Well, yes we are building something with code but at the end of the day it’s humans who will use what we built. Let me give you an example and this actually happened to me. My wife and I were both too lazy to cook the other day, so we decided to order some food. We logged into a food delivery service and placed a large order (please don’t judge us we just love to eat). ...

October 5, 2025 · 3 min

Hello World

Yes, another software engineer with a blog. Well, why would I start a blog when there are already so many others covering the same topics? Why am I special? I’m not. I just want to talk about my profession. I don’t expect anyone to care enough to even read my posts. In fact, my posts will probably include some unpopular opinions (or at least what I think are unpopular), but they’re still my opinions. ...

October 1, 2025 · 2 min