Ian Dooley, Unsplash

Generating Massive Reports on a Tiny Budget – NestJS, Postgres & Streams

“How hard can it be? It’s just SELECT * FROM sales and write to a CSV.” – Me, before the server begged for mercy. I learned the hard way that generating a multi-gigabyte report on a 2-GB-RAM server is like trying to move an entire public library using a single bicycle—you need lots of small, well-balanced trips rather than one back-breaking haul. In this guide I’ll show you how to box up that data and shuttle it safely, keeping your NestJS app upright and your cloud bill slim. ...

August 3, 2025 · 5 min
Neural network visualization

Dropout: When forgetting is better

Overfitting. The bane of every machine learning engineer’s existence. You train your model, it performs amazingly on training data, and then… it completely fails on real-world data. Sound familiar? I remember the first time I encountered this problem. I was working on an image classification task, my model was getting 99% accuracy on training data but only 96% on validation. At first glance, it seemed fine - but that 3% gap was a red flag. The model was starting to memorize specific training examples instead of learning generalizable patterns. ...

July 31, 2025 · 6 min

Stochastic Gradient Descent

What’s SGD All About? Picture this: you’re trying to teach a computer to recognize cat pics or recommend your next binge-worthy show. To do that, you need to tweak a bunch of numbers (aka model parameters) to make your predictions as spot-on as possible. That’s where Stochastic Gradient Descent (SGD) swoops in like a superhero. It’s a nifty algorithm that helps machine learning models learn by nudging those numbers in the right direction, bit by bit. Think of it as finding the lowest point in a foggy valley by taking small, semi-random steps. Let’s break it down, human-style! ...

July 16, 2025 · 5 min

Handle CORS errors in gorilla websockets

TLD(W)R; // Allow everyone var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { return true }, } // Allow a specific domain var upgrader = websocket.Upgrader{ CheckOrigin: func(r *http.Request) bool { origin := r.Header.Get("Origin") return origin == "https://your.domain.com" }, } ...

December 11, 2024 · 4 min

Building a light weight clone of One million checkboxes

I first found out about the One million checkboxes website from a video on Prime’s youtube channel. I’ll admit that’s how I find about a lot of tech news these days. Ever since I found out about it I wanted to build it. I have recently started working on Go and wanted to build it directly in go instead of starting with python and then moving to go. While building this I learned two important things ...

December 4, 2024 · 10 min

Getting Started with Parcel.js and TypeScript

I have been looking for a simple way to use typescript in my html projects for some time now. There is Webpack, but it needs a lot of configuration for even the simplest of things. There is always the option to use React or Angular, but that is too much for something quick. Then there is Parcel.js Parcel.js is a fast, zero-config web application bundler that makes setting up a development environment a breeze. It comes with built-in support for TypeScript, which can be integrated into HTML with minimal hassle. Whether you’re building a simple project or something more complex, Parcel makes it easy to get up and running. In this article, we’ll explore how to use Parcel.js to set up a project with TypeScript, structure your project for scalability, and prepare it for deployment. ...

December 3, 2024 · 8 min

Adding React to an HTML Website using Parcel

I recently had to use react-window in a project. I did not want to use a full fledged framework for such a small task. I was looking for a way to add a few React components to an HTML page. My search ended at Parcel In this guide, we’ll walk through how to set up a simple React app using Parcel, a fast and zero-config bundler. Let’s jump in! ...

December 2, 2024 · 3 min
Chris Ensey, Unsplash

Understanding Endianness with Go

Byte order is crucial when working with low-level data, and messing it up can lead to bugs that are difficult to track down. It doesn’t matter whether you’re working on a network protocol, reading binary data, or doing something fancy with hardware; understanding how data is represented in memory (and how it travels) is essential. But before we dive into the byte order mess, let’s get familiar with some key concepts. You’re gonna need these as you start looking at endianness (yes, it’s a real word). ...

November 28, 2024 · 6 min
Rob, Unsplash

[WIP] 1BRC: 1 Billion row challenge in Go!

The one billion row challenge has taken the world by a storm. Today we are going to see what is the reason behind this storm… Ok. Enough with the theatrics. I recently came across the 1 billion row challenge through a video on Primeagen. And instantly I wanted to try it out myself. I really liked the iterative approach taken by the author of the original article. I have recently started working on Go and I thought this would be a good way to get my hands dirty. ...

September 25, 2024 · 3 min
Mike Winkler, Unsplash

Understanding Ports, Sockets, WebSockets, and File Descriptors

If you’ve ever peeked under the hood of a web server, you’ve probably heard terms like ports, sockets, WebSockets, and file descriptors. They sound like a cocktail of tech jargon that could confuse even the best of us. But don’t worry—by the end of this article, you’ll understand what these things are and how they fit together like puzzle pieces in the world of networking and operating systems. What’s a Port, Anyway? Think of your computer as an apartment building. Inside, you’ve got a bunch of people (programs) living in their respective rooms. A port is like the apartment number on each door. It helps incoming traffic (data) know which program to knock on. ...

September 24, 2024 · 4 min