DEV Community

Vahid Aghajani profile picture

Vahid Aghajani

404 bio not found

Joined Joined on 
Design a Rate Limiter: The Four-Point Answer, and the Trap

Design a Rate Limiter: The Four-Point Answer, and the Trap

1
Comments
10 min read
MCP vs API: Why Your Server Needs a /mcp Endpoint (and What You Actually Write)

MCP vs API: Why Your Server Needs a /mcp Endpoint (and What You Actually Write)

1
Comments
9 min read
RTO vs RPO: The Two Numbers That Decide What Disaster Recovery Costs

RTO vs RPO: The Two Numbers That Decide What Disaster Recovery Costs

Comments
15 min read
Cache Invalidation: The Delete Ran, and the Page Is Still Wrong

Cache Invalidation: The Delete Ran, and the Page Is Still Wrong

Comments
17 min read
Continuous Integration vs Continuous Delivery: The Two Halves Almost Nobody Separates

Continuous Integration vs Continuous Delivery: The Two Halves Almost Nobody Separates

Comments
16 min read
Service Boundaries: Where Does the Line Between Two Services Actually Go?

Service Boundaries: Where Does the Line Between Two Services Actually Go?

1
Comments
13 min read
Validating Input at the Edge: Why Four Checks in Four Places Are Worse Than One Border

Validating Input at the Edge: Why Four Checks in Four Places Are Worse Than One Border

1
Comments
13 min read
Read Replicas Explained: How to Scale Database Reads Without Shipping a Time-Travel Bug

Read Replicas Explained: How to Scale Database Reads Without Shipping a Time-Travel Bug

1
Comments
10 min read
MVCC and VACUUM: Why Deleting a Million Rows Made Your Table Bigger

MVCC and VACUUM: Why Deleting a Million Rows Made Your Table Bigger

1
Comments
10 min read
What Is Middleware? The Onion Model, and Why the Order Is the Configuration

What Is Middleware? The Onion Model, and Why the Order Is the Configuration

1
Comments
12 min read
Design Search Autocomplete: The Four-Point Answer, and the Trap

Design Search Autocomplete: The Four-Point Answer, and the Trap

1
Comments
9 min read
The Ring Buffer: Why a Queue With No Limit Is a Memory Leak (and What Happens When It Fills)

The Ring Buffer: Why a Queue With No Limit Is a Memory Leak (and What Happens When It Fills)

Comments
15 min read
What Is a Webhook? The Same HTTP Request, With the Arrow Turned Around

What Is a Webhook? The Same HTTP Request, With the Arrow Turned Around

Comments
9 min read
Read Committed vs Serializable: The Write-Skew Bug Your Default Isolation Level Allows

Read Committed vs Serializable: The Write-Skew Bug Your Default Isolation Level Allows

1
Comments
8 min read
Design a Web Crawler: The Four-Point Answer, and the \"Polite\" Trap

Design a Web Crawler: The Four-Point Answer, and the \"Polite\" Trap

1
Comments
7 min read
How Safe Is a 60-Minute Signed URL? The Link Is the Credential

How Safe Is a 60-Minute Signed URL? The Link Is the Credential

1
Comments
9 min read
Design a Notification System: The Four-Point Answer, and the Duplicate-Send Trap

Design a Notification System: The Four-Point Answer, and the Duplicate-Send Trap

1
Comments 1
8 min read
Architecture Patterns: The Six Shapes a System Can Take (and Why They Are Not a Menu)

Architecture Patterns: The Six Shapes a System Can Take (and Why They Are Not a Menu)

Comments
9 min read
SLIs, SLOs and Error Budgets: How to Turn Reliable Enough Into a Number

SLIs, SLOs and Error Budgets: How to Turn Reliable Enough Into a Number

Comments
12 min read
HTTP Caching Explained: max-age, ETag and Why Your Users Still See Last Week's CSS

HTTP Caching Explained: max-age, ETag and Why Your Users Still See Last Week's CSS

Comments
10 min read
Offset vs Cursor Pagination: Why LIMIT/OFFSET Breaks at Scale (and What to Use Instead)

Offset vs Cursor Pagination: Why LIMIT/OFFSET Breaks at Scale (and What to Use Instead)

Comments
8 min read
Running LLMs Locally — Small Models, Quantization, and Your 4GB GPU

Running LLMs Locally — Small Models, Quantization, and Your 4GB GPU

Comments
12 min read
Authentication vs Authorization: AuthN vs AuthZ (and Why 401 403)

Authentication vs Authorization: AuthN vs AuthZ (and Why 401 403)

Comments
6 min read
How AI Agents Do Deep Search — Building a Research Agent from Scratch

How AI Agents Do Deep Search — Building a Research Agent from Scratch

Comments
13 min read
PostGIS vs DuckDB — Choosing the Right Tool for Spatial Data

PostGIS vs DuckDB — Choosing the Right Tool for Spatial Data

Comments 1
11 min read
S3 vs Database Blobs: Why Your Files Don't Belong in Postgres (and What Pre-Signed URLs Fix)

S3 vs Database Blobs: Why Your Files Don't Belong in Postgres (and What Pre-Signed URLs Fix)

Comments 1
6 min read
Pub/Sub vs API Calls: Should Your Services Publish an Event or Just Call Each Other?

Pub/Sub vs API Calls: Should Your Services Publish an Event or Just Call Each Other?

Comments
5 min read
WMS vs WMTS vs WFS: A Picture, Fast Tiles, or the Raw Data (and When to Use Each)

WMS vs WMTS vs WFS: A Picture, Fast Tiles, or the Raw Data (and When to Use Each)

Comments
5 min read
Design a URL Shortener: the Four-Move Answer, and the 301 vs 302 Trap

Design a URL Shortener: the Four-Move Answer, and the 301 vs 302 Trap

Comments
7 min read
Feature Flags vs Load Balancer: One Splits Versions, the Other Splits People

Feature Flags vs Load Balancer: One Splits Versions, the Other Splits People

Comments
8 min read
Chaos Engineering vs Load Testing: One Measures the Ceiling, the Other Measures the Floor

Chaos Engineering vs Load Testing: One Measures the Ceiling, the Other Measures the Floor

Comments
12 min read
Big-O Without the Maths: a Prediction, Not a Measurement

Big-O Without the Maths: a Prediction, Not a Measurement

Comments
12 min read
View vs Materialized View: A Saved Question vs a Saved Answer

View vs Materialized View: A Saved Question vs a Saved Answer

Comments
8 min read
Hot Keys in a Cache: Why One Key Saturates One Node While the Cluster Looks Idle

Hot Keys in a Cache: Why One Key Saturates One Node While the Cluster Looks Idle

Comments
12 min read
Background Jobs Without a Broker: Your Worker Is Holding a Database Connection for 40 Minutes

Background Jobs Without a Broker: Your Worker Is Holding a Database Connection for 40 Minutes

Comments
13 min read
Heaps and Priority Queues: The Array That Is Secretly a Tree

Heaps and Priority Queues: The Array That Is Secretly a Tree

Comments
13 min read
Arrays vs Linked Lists: Why the Textbook Winner Loses on Real Hardware

Arrays vs Linked Lists: Why the Textbook Winner Loses on Real Hardware

Comments
10 min read
Processes vs Threads

Processes vs Threads

Comments
6 min read
Active-Active vs Active-Passive: You Had a Second Server, So Why Were You Down for 41 Minutes?

Active-Active vs Active-Passive: You Had a Second Server, So Why Were You Down for 41 Minutes?

Comments
10 min read
Hash Tables Explained in Detail: Why a Dict Lookup Beats a List Scan by 62,000x

Hash Tables Explained in Detail: Why a Dict Lookup Beats a List Scan by 62,000x

Comments
8 min read
Write-Through vs Write-Back Caching — Explained in Detail

Write-Through vs Write-Back Caching — Explained in Detail

Comments
6 min read
Airflow vs Cron: When a Crontab Line Isn't Enough

Airflow vs Cron: When a Crontab Line Isn't Enough

Comments
6 min read
25 Years of Object Detection in 4 Walls (Sliding Window YOLO DETR)

25 Years of Object Detection in 4 Walls (Sliding Window YOLO DETR)

Comments
5 min read
Ollama vs vLLM: Local Dev Tool or Production Inference Engine?

Ollama vs vLLM: Local Dev Tool or Production Inference Engine?

Comments
3 min read
Autoscaling Explained: Why New Servers Always Arrive Two Minutes Too Late

Autoscaling Explained: Why New Servers Always Arrive Two Minutes Too Late

Comments
8 min read
Debouncing vs Throttling: Only the Last Event, or the Ones in Between?

Debouncing vs Throttling: Only the Last Event, or the Ones in Between?

1
Comments
6 min read
Proximity Search: How \"Restaurants Near Me\" Doesn't Scan Every Restaurant

Proximity Search: How \"Restaurants Near Me\" Doesn't Scan Every Restaurant

Comments
6 min read
At-Least-Once vs Exactly-Once Delivery: Why the Customer Got Charged Twice

At-Least-Once vs Exactly-Once Delivery: Why the Customer Got Charged Twice

Comments
7 min read
Chain of Thought — why 'think step by step' actually works

Chain of Thought — why 'think step by step' actually works

Comments
5 min read
Quantization vs Distillation

Quantization vs Distillation

Comments
4 min read
Distributed Tracing — how you find which service ate the 3 seconds

Distributed Tracing — how you find which service ate the 3 seconds

Comments
6 min read
SQLite FTS5: How Full-Text Search Actually Works (Inverted Index + BM25)

SQLite FTS5: How Full-Text Search Actually Works (Inverted Index + BM25)

Comments
6 min read
Next-Token Prediction: How an AI Actually Writes Text (Not Magic — Just Probability)

Next-Token Prediction: How an AI Actually Writes Text (Not Magic — Just Probability)

Comments
5 min read
Speculative Decoding, Explained: Free LLM Speed With Zero Quality Loss

Speculative Decoding, Explained: Free LLM Speed With Zero Quality Loss

Comments
5 min read
Data Modeling Explained: From One Messy Table to a Real Schema

Data Modeling Explained: From One Messy Table to a Real Schema

Comments
6 min read
GeoParquet Explained: Your Geodata Has Two Shapes (One You Edit, One You Scan)

GeoParquet Explained: Your Geodata Has Two Shapes (One You Edit, One You Scan)

Comments
8 min read
Connection Pooling: Why Your API Dies at 200 Users (But the DB Is at 4% CPU)

Connection Pooling: Why Your API Dies at 200 Users (But the DB Is at 4% CPU)

Comments
6 min read
Zero-Shot vs Few-Shot Prompting: Why Your LLM Output Keeps Breaking (and the 1-Minute Fix)

Zero-Shot vs Few-Shot Prompting: Why Your LLM Output Keeps Breaking (and the 1-Minute Fix)

Comments
4 min read
The N+1 Query Problem: Why 100 Products Cost 101 Queries (and Why an Index Won't Save You)

The N+1 Query Problem: Why 100 Products Cost 101 Queries (and Why an Index Won't Save You)

Comments
5 min read
How a Database Index Actually Works: B-Trees, Seq Scans, and the Cost Nobody Mentions

How a Database Index Actually Works: B-Trees, Seq Scans, and the Cost Nobody Mentions

Comments
6 min read
loading...