- Published on
Software Engineering Notes
Practical software engineering notes for real-world systems
CodeNotes is a software engineering blog about building, debugging, and evolving real systems. It covers backend architecture, databases, APIs, observability, reliability, engineering process, and the decisions that shape maintainable software over time. It is written for developers who want stronger fundamentals and better judgment as they grow.
Start Here
These are strong entry points if you are new to the site and want a feel for its technical depth across several software engineering topics.
- How to Find and Fix Slow SQL Queries in Production
A production workflow for finding slow SQL queries, reading EXPLAIN plans, choosing fixes, and proving the endpoint improved.
- How to Prevent Race Conditions in Backend Systems
How to prevent race conditions in backend systems by naming the invariant, enforcing it at durable boundaries, and testing overlapping requests and retries.
- Background Jobs in Production
How to run background jobs safely in production with replay-safe handlers, bounded retries, dead-letter triage, visibility timeouts, and queue dashboards.
- OpenTelemetry for Backend Engineers
A practical OpenTelemetry guide for backend engineers: what to instrument first, and how traces, metrics, logs, sampling, and collectors aid debugging.
Topic Clusters
The site covers software engineering broadly, with a few deeper technical clusters that make related articles easier to explore.
Backend Reliability
Retries, queues, cascading failures, and production-safe recovery patterns.
SQL And Data Correctness
Query performance, migrations, locking, and correctness under production load.
- How to Find and Fix Slow SQL Queries in Production
- Database Connection Pool Exhaustion in Production
- Database Transaction Boundaries in Backend APIs
- Safe Database Migrations in Production
- Database Migration Testing in CI: Catch Schema Bugs Before Production
- Database Migration Rollback Strategy in Production
- SQL Isolation Levels Explained
- SKIP LOCKED vs FOR UPDATE vs Advisory Locks in Postgres Queues
Observability And Debugging
How to understand complex systems when logs stop being enough.
Software Engineering Fundamentals
Decision-making, maintainable code, code review, and engineering judgment.
API Correctness
Contract testing, race conditions, integration tests, idempotency, and safe API evolution.
Testing And Software Delivery
Integration tests, contract safety, staged releases, and changes that survive live rollout.
- Flaky Integration Tests in CI: Find and Fix Nondeterministic Failures
- Database Migration Testing in CI: Catch Schema Bugs Before Production
- Why Tests Pass but Production Still Breaks
- How to Write API Integration Tests
- API Contract Testing: Prevent Breaking Clients Before Release
- When Feature Flags Increase System Complexity
Latest Articles
Practical software engineering notes on backend systems, debugging, architecture, reliability, databases, and the engineering judgment developers build over time.
- How to compare SKIP LOCKED, plain FOR UPDATE, and advisory lock job claims in PostgreSQL with a runnable pgbench harness and a claim-strategy decision table.
- Published on
How to test database migrations in CI with production-shaped data, compatibility checks, backfill verification, schema drift detection, and rollback gates.- Published on
How to diagnose flaky integration tests in CI: shared state, timing assumptions, parallel worker conflicts, database cleanup gaps, and unstable dependencies.- Published on
How to plan database migration rollback in production with compatibility windows, forward fixes, backfill recovery, and clear stop points.- Published on
How database connection pool exhaustion happens under load, how to tell pool wait from slow SQL, and how to size pools across instances safely.