Blog

I love sharing what I've learned through experience, especially when it comes to web development.


Streaming Report Progress to the Browser in a Multi-Instance Spring Boot App

Exporting a big report looks trivial until it meets production scale. This post covers heap-bounded pagination, producer-side progress throttling, and a fanout broadcast trick for pushing WebSocket updates across multiple Spring Boot instances.

springjavawebsocket
July 7, 2026
Designing a Fast, Scalable, and Fault-Tolerant Create Order Process

This article shows how a simple event-driven approach can turn a slow, fragile order flow into one that is fast, scalable, and resilient—without overengineering.

architectureasynchronousevent-driven
December 6, 2025
Avoiding Duplication During Batch Import

In a Warehouse Management System, a key challenge is preventing data duplication when multiple users run batch imports concurrently, especially for strictly unique identifiers like box codes.

springjavaredis
July 18, 2025
Speeding Up Downloads Data with Multithreading

Generating outbound reports in a Warehouse Management System can become extremely heavy—especially when dealing with thousands to tens of thousands of serial numbers or phone numbers within a single week.

springjava
July 11, 2025
Accessing Servers with SSH Keys

Password logins are the weakest part of a fresh server setup. How I set up SSH key authentication: generate a key pair, install the public key, fix the permissions, and connect.

linuxubuntubash
June 16, 2025
Creating a New User on Ubuntu Server 24

Creating a new user on Ubuntu Server 24 with adduser, granting sudo only when it's actually needed, and verifying the account works — plus the user-management commands you'll reach for later.

linuxubuntubash
June 16, 2025
Create a PostgreSQL Database and User on AWS RDS: A Step-by-Step Guide

Setting up a new PostgreSQL database on AWS RDS with a dedicated, least-privilege user: connect as the master user, create the database and user, and grant exactly the permissions the application needs.

psqlawsrds
August 29, 2024
Speed Up Your Vite Builds with Caching in GitHub Actions

Caching Yarn dependencies and Vite build output in GitHub Actions can cut minutes off every CI run. Here's the workflow I use, and how cache keys and restore keys actually behave.

frontendvitegithub
August 28, 2024