DEV Community

Gabriel Anhaia profile picture

Gabriel Anhaia

Senior Software Engineer @ Monta · 10+ years in backend, distributed systems & AI agents · Creator of Hermes IDE (AI-native terminal) & Neural Playground · Author of 2 books · Open-source enthusiast

Location Berlin, Germany Joined Joined on  Personal website https://xgabriel.com github website

Work

Software Engineer and Book Author

Request Hedging: The Tail-at-Scale Technique Most Teams Skip

Request Hedging: The Tail-at-Scale Technique Most Teams Skip

Comments
8 min read
Pull-Based vs Push-Based Architecture: The Choice That Decides Your Reliability Story

Pull-Based vs Push-Based Architecture: The Choice That Decides Your Reliability Story

Comments
10 min read
Service Mesh in 2026: When Istio Is Overkill, When It's the Right Answer

Service Mesh in 2026: When Istio Is Overkill, When It's the Right Answer

Comments
9 min read
Caching Layers in 2026: CDN, App, DB, Query: What Goes Where

Caching Layers in 2026: CDN, App, DB, Query: What Goes Where

1
Comments 1
10 min read
Design a Multi-Device Authentication Service (Sessions vs JWT vs Passkeys)

Design a Multi-Device Authentication Service (Sessions vs JWT vs Passkeys)

Comments
10 min read
Design a Payment Ledger: Idempotent, Audit-Compliant, Reconciles to the Cent

Design a Payment Ledger: Idempotent, Audit-Compliant, Reconciles to the Cent

Comments
12 min read
Design a Real-Time Collaboration Backend (OT vs CRDT, Step by Step)

Design a Real-Time Collaboration Backend (OT vs CRDT, Step by Step)

Comments
11 min read
Design a Job Scheduler at 10M Jobs/Day: 4 Components, 3 Failure Modes

Design a Job Scheduler at 10M Jobs/Day: 4 Components, 3 Failure Modes

Comments
12 min read
Design a Feature Flag Service: 100k SDK Clients and the SSE Protocol Reframe

Design a Feature Flag Service: 100k SDK Clients and the SSE Protocol Reframe

Comments
11 min read
Design a Feature Flag Service: 100k SDK Clients and the SSE Protocol Reframe

Design a Feature Flag Service: 100k SDK Clients and the SSE Protocol Reframe

Comments
11 min read
JSONB vs Relational in 2026: 5 Query Shapes, 5 Verdicts

JSONB vs Relational in 2026: 5 Query Shapes, 5 Verdicts

Comments
8 min read
Logical Replication for Migrations: Zero-Downtime Postgres Upgrades in 2026

Logical Replication for Migrations: Zero-Downtime Postgres Upgrades in 2026

Comments
9 min read
Read-Modify-Write: The Optimistic Concurrency Pattern Most ORMs Get Wrong

Read-Modify-Write: The Optimistic Concurrency Pattern Most ORMs Get Wrong

Comments
8 min read
Postgres VACUUM Tuning: 4 Settings That Decide Whether Autovacuum Keeps Up

Postgres VACUUM Tuning: 4 Settings That Decide Whether Autovacuum Keeps Up

Comments
8 min read
Event Sourcing Snapshots: When, How Often, and Why Most Teams Over-Snapshot

Event Sourcing Snapshots: When, How Often, and Why Most Teams Over-Snapshot

Comments
7 min read
Dead Letter Queue Triage: The 5 Categories That Cover 95% of Failures

Dead Letter Queue Triage: The 5 Categories That Cover 95% of Failures

Comments
8 min read
Outbox Pattern: When CDC Beats Polling, When Polling Beats CDC

Outbox Pattern: When CDC Beats Polling, When Polling Beats CDC

Comments
8 min read
Saga Compensation When Undo Is Impossible: 3 Patterns and the Audit Trail

Saga Compensation When Undo Is Impossible: 3 Patterns and the Audit Trail

Comments
9 min read
Eval Set Drift: How to Know When Your Golden Set Went Stale

Eval Set Drift: How to Know When Your Golden Set Went Stale

Comments
8 min read
Hallucination Detection at the Trace Layer: 4 Detectors You Can Ship Today

Hallucination Detection at the Trace Layer: 4 Detectors You Can Ship Today

Comments
10 min read
Per-Customer LLM Cost Reports (Without Rearchitecting Your Billing Pipeline)

Per-Customer LLM Cost Reports (Without Rearchitecting Your Billing Pipeline)

Comments
8 min read
LLM Trace Storage Cost: Why Your S3 Bill Exploded, and 3 Fixes

LLM Trace Storage Cost: Why Your S3 Bill Exploded, and 3 Fixes

Comments 1
8 min read
Reasoning Effort: Low, Medium, High: When Each Setting Actually Pays Off

Reasoning Effort: Low, Medium, High: When Each Setting Actually Pays Off

Comments
8 min read
Multi-Shot vs Zero-Shot: When Adding Examples Actually Hurts Accuracy

Multi-Shot vs Zero-Shot: When Adding Examples Actually Hurts Accuracy

Comments
8 min read
Prompt Diff Testing: A/B Your Prompts Without Changing the Model

Prompt Diff Testing: A/B Your Prompts Without Changing the Model

Comments
7 min read
Structured Output Validation: Pydantic/Zod vs In-Prompt Schema vs JSON Mode

Structured Output Validation: Pydantic/Zod vs In-Prompt Schema vs JSON Mode

Comments
9 min read
Multi-Tenant RAG: 4 Isolation Patterns and the One Regulators Actually Ask About

Multi-Tenant RAG: 4 Isolation Patterns and the One Regulators Actually Ask About

Comments
9 min read
Vector DB Choice 2026: pgvector vs Qdrant vs Pinecone vs Weaviate: The Real Trade Matrix

Vector DB Choice 2026: pgvector vs Qdrant vs Pinecone vs Weaviate: The Real Trade Matrix

Comments
9 min read
Hybrid Retrieval Fusion: RRF vs Weighted vs Learned: When Each Wins

Hybrid Retrieval Fusion: RRF vs Weighted vs Learned: When Each Wins

Comments
9 min read
Chunk Overlap: The RAG Parameter Most Teams Pick Wrong

Chunk Overlap: The RAG Parameter Most Teams Pick Wrong

Comments
7 min read
Reranker Selection: Cross-Encoder vs LLM-as-Reranker vs ColBERT: Which Earns Its Latency

Reranker Selection: Cross-Encoder vs LLM-as-Reranker vs ColBERT: Which Earns Its Latency

Comments
9 min read
Computer-Use Agents: 3 Sandboxing Patterns That Don't Leak Credentials

Computer-Use Agents: 3 Sandboxing Patterns That Don't Leak Credentials

Comments
9 min read
When Your Tool Returns Garbage, Agents Loop Forever. Here's the 30-Line Guard.

When Your Tool Returns Garbage, Agents Loop Forever. Here's the 30-Line Guard.

Comments
7 min read
Multi-Turn Agent Context Window: 4 Truncation Strategies That Don't Break the Agent

Multi-Turn Agent Context Window: 4 Truncation Strategies That Don't Break the Agent

Comments
9 min read
Streaming Tool Calls with Anthropic's API: The Buffer Pattern Nobody Documents

Streaming Tool Calls with Anthropic's API: The Buffer Pattern Nobody Documents

Comments
7 min read
Agent Tool Selection Accuracy: 3 Prompt Patterns That Move It 20%

Agent Tool Selection Accuracy: 3 Prompt Patterns That Move It 20%

Comments
8 min read
WordPress in 2026: Running a Modern PHP 8.4 Stack Without Going Insane

WordPress in 2026: Running a Modern PHP 8.4 Stack Without Going Insane

Comments
9 min read
The 5 Most Common PHP Security Bugs in 2026 (And the One-Liner Fix for Each)

The 5 Most Common PHP Security Bugs in 2026 (And the One-Liner Fix for Each)

Comments
8 min read
Argon2id Is the Default Now. Stop Using bcrypt in 2026.

Argon2id Is the Default Now. Stop Using bcrypt in 2026.

Comments 1
7 min read
Laravel Job Batches vs Symfony Messenger Stamps: A Pattern Comparison

Laravel Job Batches vs Symfony Messenger Stamps: A Pattern Comparison

Comments
8 min read
PHP 8.4 Lazy Objects: When They Beat Doctrine Proxies (and How to Migrate)

PHP 8.4 Lazy Objects: When They Beat Doctrine Proxies (and How to Migrate)

Comments
8 min read
PHP and gRPC: The Bidirectional Streaming Pattern Most Tutorials Skip

PHP and gRPC: The Bidirectional Streaming Pattern Most Tutorials Skip

Comments
9 min read
The Composer Trick That Cuts Deploy Time by 70% (and Why Nobody Uses It)

The Composer Trick That Cuts Deploy Time by 70% (and Why Nobody Uses It)

Comments
8 min read
Laravel Pint vs PHP-CS-Fixer: Why I Stopped Configuring My Linter

Laravel Pint vs PHP-CS-Fixer: Why I Stopped Configuring My Linter

Comments
7 min read
Laravel Pint vs PHP-CS-Fixer: Why I Stopped Configuring My Linter

Laravel Pint vs PHP-CS-Fixer: Why I Stopped Configuring My Linter

Comments
7 min read
Pest 3 vs PHPUnit 11: 4 Reasons to Switch, 2 Reasons Not To

Pest 3 vs PHPUnit 11: 4 Reasons to Switch, 2 Reasons Not To

Comments
7 min read
Rector in 2026: The 6 Rules That Pay for Themselves on Any Legacy Codebase

Rector in 2026: The 6 Rules That Pay for Themselves on Any Legacy Codebase

Comments
9 min read
PHPStan Level 10: Why You Should Stop at 8 (and What 10 Actually Costs You)

PHPStan Level 10: Why You Should Stop at 8 (and What 10 Actually Costs You)

Comments
7 min read
Blackfire vs Xdebug Profiling: Which One Tells You the Truth at Production Scale

Blackfire vs Xdebug Profiling: Which One Tells You the Truth at Production Scale

Comments
8 min read
The php-fpm Tuning Cheat Sheet: 5 Settings That Decide Your p99

The php-fpm Tuning Cheat Sheet: 5 Settings That Decide Your p99

Comments
8 min read
PHP JIT in 2026: When It Helps (Spoiler: Rarely the Web Path)

PHP JIT in 2026: When It Helps (Spoiler: Rarely the Web Path)

Comments
8 min read
FrankenPHP vs RoadRunner vs Swoole: A Production Benchmark (2026 Edition)

FrankenPHP vs RoadRunner vs Swoole: A Production Benchmark (2026 Edition)

Comments
9 min read
PHP OPcache Preloading in 2026: The 3 Mistakes That Make It Slower

PHP OPcache Preloading in 2026: The 3 Mistakes That Make It Slower

Comments
8 min read
The Symfony DI Compiler Pass Every Senior Dev Should Know

The Symfony DI Compiler Pass Every Senior Dev Should Know

Comments
8 min read
Symfony Lock Component: Distributed Locks in 50 Lines (No Redis Required)

Symfony Lock Component: Distributed Locks in 50 Lines (No Redis Required)

Comments
8 min read
Symfony Mercure: Server-Sent Events at Scale Without WebSockets

Symfony Mercure: Server-Sent Events at Scale Without WebSockets

Comments
9 min read
The Symfony Workflow Component: The State Machine PHP Quietly Ships

The Symfony Workflow Component: The State Machine PHP Quietly Ships

Comments
8 min read
Symfony API Platform vs Laravel API Resources: When Each Earns Its Keep

Symfony API Platform vs Laravel API Resources: When Each Earns Its Keep

Comments
10 min read
Symfony Messenger vs Laravel Queues: A Real Benchmark and a Decision Guide

Symfony Messenger vs Laravel Queues: A Real Benchmark and a Decision Guide

Comments
9 min read
The Laravel Service Container Trick That Cuts Boot Time by 40%

The Laravel Service Container Trick That Cuts Boot Time by 40%

Comments
8 min read
loading...