Language:
Backend
Indexes are the most powerful performance tool in a relational database, and the easiest to misuse. This article explains how B-tree, hash, GIN, and BRIN indexes differ, why column order in composite indexes matters, when covering and partial indexes help, and how to find indexes that only cost you.
Sep 24, 2026·6 min read
A slow query is rarely a mystery once you can read its execution plan. This guide explains EXPLAIN ANALYZE, then fixes the problems that account for most slow queries: N+1 access patterns, non-sargable filters, bad row estimates, deep pagination, and fetching more data than needed.
Graph problems power route planning, recommendations, fraud detection, and dependency resolution, and they get slow in surprising ways. This article covers choosing the right traversal algorithm, representing graphs compactly, pruning the search space, and tuning queries in graph databases.
With twenty services behind one request, "check the logs" stops being a strategy. This article covers how distributed tracing, well-chosen metrics, and structured logs work together, and how to instrument services with OpenTelemetry without drowning in data.
Sep 24, 2026·5 min read
In a distributed system, every network call can fail, stall, or succeed twice. This article compares synchronous and event-driven communication and covers timeouts, retries with backoff, idempotency keys, circuit breakers, and the outbox pattern.
Most microservice pain traces back to one decision: where the boundaries were drawn. This guide shows how bounded contexts, aggregates, and a few practical tests help you split a system into services that can change independently.
Guessing at performance problems wastes days. Go includes a profiler that shows where CPU time and memory actually go. This walkthrough covers collecting CPU, heap, and allocation profiles, reading flame graphs, and fixing the problems they reveal most often.
Go's explicit errors and flat packages feel easy early on and cause friction at 50,000 lines. This article covers the conventions that keep a growing Go service readable: wrapping errors with context, sentinel and typed errors, and a package layout organized around behavior.
Showing 28-35 of 35 articles
Tell us about your project — we'll help you get there.
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyse site usage, and assist in our marketing efforts.
Choose which cookies we may use. Strictly necessary cookies keep the site working and are always on.