Soham Kamani
I write about programming, technoloy, and my journey to being a better developer.
Latest posts
About Me
A Complete Guide to UUID Versions (v1, v4, v5) - With Examples
This post will describe UUID v1, v4, and v5, with examples. We will go through their implementation and differences, and when you should use them
Should I write that blog post? 📝
AI Prompt Tuning: Using Meta-Prompting To Improve Your Prompts
How To Write Reader-Friendly Technical Blog Posts
In this post I summarize the processes and techniques I use to write blog posts, and some tips that I've learned over the years
How to Write Good Documentation (And Its Essential Elements)
A comprehensive guide on how to write good documentation for your code and libraries
A Gentle Introduction to SQL Queries
Monitoring The Health Of Your Golang Application Using the Detective Library
Mastering AI Agent Skills
How Games Are Programmed: An Introduction To The Core Concepts Required To Program A Video Game
An introduction to the core concepts required to build a video game, while building a game of snake
Why We Should Stop Using Gifs
Web Security Basics - An Introduction to the Essential Concepts Behind a Secure Website
A comprehensive introduction to web security basics like XSS, CSRF, SQL injection, and other important concepts to keep in mind when creating a website.
How to Install and Run a Kafka Cluster Locally
Using the BusyBox Docker Image for Building Applications : A Complete Guide
This post will go through how to build and run a BusyBox container in Docker and run custom executables on it, using Go (Golang) as an example
Polymorphism in Go - without interfaces 🦆
A demonstration on using polymorphism in Go without using interfaces
Factory patterns in Go (Golang) 🏭
A tutorial explaining how factory patterns are implemented in Go, with example code showing how to create factory functions and factory methods
A Comprehensive Guide of Arrays and Slices in Golang (and their differences)
This post will cover everything you need to know about arrays and slices in Go, and the differences between them.
Tensorflow Introduction and Basic Operations
Creating a MongoDB Replica Set Using Docker
This tutorial is a beginner friendly way to set up your own MongoDB replica sets using docker, and docker-compose.
Linear Regression with Python
An Introduction to Channels in Go (Golang)
An introduction on channels in Go, and how to visualize them
Golang Constructors - Design Patterns For Initializing Variables
How to Use Context in Golang (Deadlines, Cancellation, and Passing Values)
How to use Go's context package to make faster and more robust applications.
Data races in Go(Golang) and how to fix them
What is a data race? What causes it? How to fix it?
Golang's 'Defer' Keyword: What It Is and How It Works
This post talks about the special "defer" keyword in Go. We look at some advanced features and code examples to know how and when to use "defer" in your Go application.
Using Enums (and Enum Types) in Golang
How to implement enumeration types in Go (Golang), illustrated with examples and sample code
Mastering Error Handling in Go: A Comprehensive Guide
Dive deep into Go error handling, covering best practices, custom error types, and techniques for effective debugging.
Command Pattern in Go (Golang)
This article explains how to implement the command design pattern in Go with example code, as well as sample use cases.
Executing Shell Commands in Golang
Golang functions vs methods 👯♀️
What is the difference between functions and methods in Go? When do we use them?
Golang - Implementing Heap Data Structure (and Heap Sort)
Build a web application in Go (golang)
An end to end tutorial on how to build a full stack web application in golang
Making REST API Requests in Golang using the HTTP Client
How to Use Iota in Golang
A Complete Guide to JSON in Golang (With Examples)
This post will describe how to marshal and unmarshal JSON in Go. We will learn how to convert from JSON raw data into Go types like structs, maps, and slices
Golang Make Function - Initializing Slices, Maps, and Channels (Size and Capacity)
Golang Omitempty Explained
Functional Options in Go: Implementing the Options Pattern in Golang
This post describes how to use the option pattern to implement functional options in Go. Functional options provide greater flexibility and a more explicit interface when creating new objects.
Using Maps in Golang - With Examples
Creating an OAuth2 Client in Golang (With Full Examples)
This post explains how to implement OAuth 2.0 in a Golang application
Implementing JWT based authentication in Golang
A tutorial on building a web application in Go that uses JWT (JSON web token) based authentication
Using a Mutex in Go (Golang) - with Examples
This tutorial describes how to use mutexes to prevent race conditions in Go (Golang), as well as the different kinds of mutexes (sync.Mutex and sync.RWMutex)
How to Implement Password Authentication and Storage in Go (Golang)
This post demonstrates how to sign up and sign in users using password authentication in Go
Using a PostgreSQL Database in Go (in Production)
This post will go through how to interact with an SQL database in Go, and how to make your Go application production ready when it comes to connecting and querying your database server.
Implementing RSA Encryption and Signing in Golang (With Examples)
A comprehensive guide on RSA Encryption and Signing, and how to implement them in Golang
Time in Golang - Working With Time, Duration, and Dates (With Examples)
This tutorial will teach you how to work with Time in Go (Golang) - including how to parse and format date-time strings, add and subtract time durations, and get the current system time.
A Guide On SQL Database Transactions In Go
This article explains what database transactions are, and how to implement them in Go (Golang)
Session Cookie Authentication in Golang (With Complete Examples)
How to authenticate users using sessions and cookies in a Golang server application
Type Conversion and Type Assertion in Golang - Everything You Need to Know (With Examples)
Explaining type assertions and type conversions in Go(Golang), and when to use them