Scaling database practices
Scaling databases can feel like a scary topic. I'm not going to wait until I "know everything" to write about it though, there is always a higher mountain. This post is just my little hill of scaling
Senior backend engineer writing about distributed systems, observability, AI in software development, and pragmatic career growth for developers.
Scaling databases can feel like a scary topic. I'm not going to wait until I "know everything" to write about it though, there is always a higher mountain. This post is just my little hill of scaling
Real-time is one of those features that demos in an afternoon and humbles you for a month. Open a WebSocket, push a message, watch it appear on the other screen — done, right? That's the part that's e
I usually go out and join tech events in the city. I’ve joined several of them, but the most memorable was the event where my friends and I won first prize by solving a delivery optimization problem.
Back in 2015, when the Node.js, NoSQL, and microservices ecosystem was still fresh and the tooling hadn’t matured, choosing one solution over the other would be a hit-and-miss situation. We didn’t kno
At this point, April 2026, everyone is familiar with AI integrated deeply into the software development process. Some worry that AI will eventually replace or devalue them. I know that's the common co
Conway's Law says systems end up mirroring the communication structure of the teams that build them. A small team produces a unified system; a distributed organization produces distributed software. W
In my previous post, I introduce the project Wakapi - an alternative to Wakatime but it totally free, it mean you have to self hosted it somewhere. https://hashnode.com/post/cm3i8c9mp001609ku3rhieuku The database Wakapi provide several choices of d...
I have been using Wakatime since 2017, but I stopped using it in recent years because the free plan, which only provides a two-week range report, is not very helpful. I primarily relied on it for the yearly report to see how much I coded over the pas...
A Developer's Journey I've always wanted to build a chat system, just for the joy of it. The original plan was simple: set up an old HP Elitedesk as a server, NAT the ports, point a domain to it, and share it with friends. But as I looked at today's ...
A Simple Solution to a Tricky Problem If you've ever tried to replace a string containing special characters in Vim, especially across multiple files, you know it can be a real headache. The usual search and replace commands often fall short, getting...
Introduction In this guide, we'll walk through setting up two Cloud Run services - a public frontend and a private backend - using Terraform. We'll use Google Artifact Registry to store our Docker images. This setup demonstrates how to create a secur...
Clustering Slack alerts with TF-IDF and DBSCAN Most teams have a Slack channel full of alerts that everyone eventually mutes. When something breaks, the relevant message is buried under hundreds of co
A problem-solving framework is a checklist of questions that help you break down a problem and figure out how to solve it. It's like a step-by-step guide to understanding the issue, brainstorming solutions, picking the best one, and then implementing...
User story (simple) As a user, I want to set up a time delay for my actions (e.g., send email) in a certain period, a certain day of the week, or a specific day of the year. So that my action can be executed with timing accuracy. Function requirement...
I'm using the latest commercial AI technologies, including Copilot for business, Copilot chat, Grammarly, Notion AI, ChatGPT Plus, and maybe other AI features embedded in a product that I am not aware
I'm tired of JS, not to mention TS and mostly I blame the whole JS ecosystem. If I can come in time to tell one thing to my younger self I will tell him all in BTC back in 2012! Just kidding, I will tell him to choose Java or at least C# Asp.net. Don...
I missed the feature of quickly creating a scratch when I switched back to Vim from Webstorm. A scratch file is handy, it auto-saves somewhere on your computer and allows you to paste temporary content here to do whatever you want. In Vim or Neovim ...
I was struggling to keep my dotfiles in GitHub in sync with the dot files in the $HOME directory. But now it is so smooth. Cut to the chase, here is what I do: The $HOME folder will be the single source of truth. I keep all the original files here ...
I have scheduled myself to write a weekly blog, so I am now thinking about what I want to share this week. There's always so much to talk about when it comes to AI and its impact on businesses. This w
It is the ability to transform the verbal, rough description into programmable tasks. And this skill is hard to test out during the interview. Normally we - software engineers go to an interview, and they throw a competitive programming problem to us...