Blog
Here you can see all of my blog posts that I've published, grouped by year.
Want to receive updates straight in your inbox?
Subscribe to the newsletter2026
-
Building worklog, a CLI for my daily reports
From idea to a simple but incredibly useful personal tool
5 min read
-
Building a tabata timer: state machines, wake locks, and haptic feedback
Building a tabata timer app
8 min read
-
env() function in CSS (and Tailwind)
Niche function that is incredibly useful
2 min read
-
ORMs vs query builders vs raw SQL
Short story discussing each approach
6 min read
-
JSON + metadata = useful logs
Improvements in the observability of the system
3 min read
-
Date parsing in JS
The Date parsing bug that lived in production for years
3 min read
-
i18n-utils: CLI to simplify i18n file management
CLI utility to streamline operations on i18n files
4 min read
2025
-
Advent of Code 2025, part 2
My journey through AoC 2025, days 7-12
14 min read
-
Advent of Code 2025, part 1
My journey through AoC 2025, days 1-6
13 min read
-
Bash "strict" mode
Essential options in bash scripts
4 min read
-
XSS security vulnerability
A real-world example of a classic security mistake, and how I tracked it down and fixed it.
5 min read
-
Building local-first app with IndexedDB
Laying out the foundation for a robust app
7 min read
-
Storage in the browser
What are the ways to persist data in the browser?
6 min read
-
Exploring Drag and Drop API
Learning about web platform fundamentals and applying them on practice
7 min read
-
inert HTML attribute
What is inert and what problem does it solve?
3 min read
-
React performance hooks and compiler
Overview of React perf hooks and compiler
4 min read
-
Git Worktrees
Lesser-known but incredible Git feature
4 min read
-
Maze generation algorithms
Exploring different approaches to generate a maze
10 min read
-
Blog updates
New things on the website and in the blog
2 min read
-
Levenshtein distance algorithm
How do computers understand that two words are similar?
6 min read
-
Different line endings
A quick guide to line endings across operating systems
4 min read
-
Finally block not running - war story
What are the reasons when finally block might not run
4 min read
-
The GitFrag challenge
A diary of the mini util that I've built as a challenge
11 min read
-
Pokémon MCP server
Exploring what MCP is and building an MCP server for fun
8 min read
-
Building a wizard form
With react-hook-form, zod & zustand
9 min read
-
Trie data structure
Deep dive into what trie is and its applications
7 min read
-
Making Sudoku game from scratch
Utilizing algorithms and data structures for fun
7 min read
-
Solving Sudoku
Algorithm to solve Sudoku and visualization
5 min read
-
Sudoku verification
Breaking down an algorithm to verify sudoku
7 min read
-
UTF-8 encoding
How text is encoded in UTF-8, visualized
5 min read
-
Warehouse simulator from scratch: Part 2
Finishing up the simulator inspired by Advent of Code 2024, Day 15
8 min read
-
Warehouse simulator from scratch: Part 1
Building a simulator inspired by Advent of Code 2024, Day 15
13 min read
-
TypeScript vs JavaScript private
Deep dive into differences between TS private modifier and native JS #private fields
7 min read
-
Flood fill algorithm
How flood fill algorithm works, visualized
8 min read
-
One of my favorite Java interview questions
A deep dive into singleton implementation details
9 min read
-
The hardest day of AoC 2024 (for me)
Or how I learned about the Bron-Kerbosh algorithm
6 min read
-
LRU Cache: visualization & implementation
What is LRU cache, hot to build it, and some visualizations for better understanding
6 min read
-
Better approach to automated UI testing
Utilizing data-testid attributes to simplify automation
6 min read