UmurInan
Performance Topic

Performance

Most performance problems are not algorithmic, they are operational: cold caches, pool exhaustion, replication lag, GC pauses, query plan regressions. These posts cover the diagnoses and the fixes that actually moved the p99.

Backend

Posted on May 23, 2026

The Postgres Index That Never Gets Used

Postgres indexes accumulate. Every perf push adds one. Almost no team removes any. How to find the unused ones and why their write cost is the bigger problem.

Read more
Backend

Posted on May 17, 2026

The Long Transaction That Ate Your Postgres

An idle transaction pins the xmin horizon. Autovacuum cannot reclaim anything newer than it. Tables bloat. Queries slow. Here is the fix every install needs.

Read more
Backend

Posted on May 4, 2026

Your Async Code Is Still Single-Threaded

Async lets one thread do more I/O. It does not let one thread do more CPU. Most async-related performance disappointments come from confusing those two.

Read more
Backend

Posted on Apr 29, 2026

The Cache-Control Header You're Probably Ignoring

Most developers set max-age and call it done. The directives that matter for CDN behavior, revalidation, and stale content are all sitting there unused.

Read more
Backend

Posted on Apr 28, 2026

Why Your Service Slows Down at 9am Every Day

Your service slows every morning for the same five reasons: JVM warmup, cold caches, pool growth, clustered crons, deployment timing. Here's how to fix each.

Read more
Backend

Posted on Apr 25, 2026

The Composite Index Nobody Can Read

Your composite index covers every column but EXPLAIN still shows a full scan. Column order, not column presence, determines whether PostgreSQL uses the index.

Read more
Backend

Posted on Apr 24, 2026

The Hibernate Query You Didn't Write

Hibernate writes SQL you never see. Three repository lines execute a 2,100-character query that is usually worse than anything you would have written by hand.

Read more
Backend

Posted on Apr 17, 2026

EXPLAIN ANALYZE Lies to You

PostgreSQL's EXPLAIN ANALYZE tells you the plan looks fast. It doesn't tell you the timing is cached, the estimates are stale, or the cost isn't milliseconds.

Read more
Backend

Posted on Apr 16, 2026

Database Partitioning: The Decision You Can't Undo

Range vs hash partitioning, hot spots, and the re-partitioning trap. Partitioning looks like a scaling win until you find out you cannot undo the choice.

Read more
Backend

Posted on Apr 15, 2026

Connection Pool Tuning: A Practical Guide

HikariCP's defaults look sensible until your app hits production load. Here's how to actually size your connection pool using Little's Law, not guesswork.

Read more
Backend

Posted on Mar 30, 2026

Caching Is Easy Until It Isn't

Redis, in-memory, CDN: caching feels simple until invalidation ruins your week. Here's how each caching layer bites you and what I learned the hard way.

Read more
Backend

Posted on Mar 28, 2026

Connection Pools: The Thing You Never Think About Until Production Burns

Connection pools sit quietly until they break. Here is what happens when they fail, the warning signs to watch, and how to catch it before production burns.

Read more
Backend

Posted on Mar 27, 2026

Database Indexes Explained for People Who Keep Forgetting

You've read about database indexes before. You've forgotten most of it. Here's the practical guide you'll actually remember, with PostgreSQL examples.

Read more
Tools

Posted on Feb 18, 2026

Debugging iOS Memory Issues from Your AI Chat Interface

I built an MCP server that lets Claude inspect iOS simulators from the chat window. Crash analysis, memory risk scoring, log streaming, and leak detection.

Read more
Backend

Posted on May 16, 2026 advanced

HikariCP in Production: Tuning, Monitoring, and pgbouncer

Tune HikariCP for production Spring Boot 4 services on Postgres. Little's Law sizing, the properties that matter, monitoring signals, pgbouncer fronting.

Read more
Database

Posted on Apr 25, 2026 intermediate

Database Indexes Explained: A PostgreSQL Walkthrough With EXPLAIN ANALYZE

B-tree, composite, partial indexes proved with EXPLAIN ANALYZE on 500k Postgres rows. Plus the three ways EXPLAIN ANALYZE lies to you. Tests in the repo.

Read more
Database

Posted on Apr 7, 2026 intermediate

The N+1 Problem: All Four Fetch Strategies Explained

A hands-on walkthrough of all four Hibernate fetch strategies with real query counts. Each fix is verified by a test that proves the N+1 problem first.

Read more