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

When Your Embeddings Stop Distinguishing Anything

When Your Embeddings Stop Distinguishing Anything

Comments
6 min read
Your Go 'Service' Layer Is Just a Transaction Script. That's Not a Bug

Your Go 'Service' Layer Is Just a Transaction Script. That's Not a Bug

1
Comments
7 min read
An Eval Harness for Tool-Use Agents: 90 Lines, 3 Judges, $3 Per Run

An Eval Harness for Tool-Use Agents: 90 Lines, 3 Judges, $3 Per Run

1
Comments
7 min read
We Killed `interface{}` From a Go Codebase. Here's What Replaced It

We Killed `interface{}` From a Go Codebase. Here's What Replaced It

Comments
7 min read
How LLMs Memorize Phone Numbers (and How Labs Stop It)

How LLMs Memorize Phone Numbers (and How Labs Stop It)

Comments
7 min read
Hexagonal for the Rest of Us: Ports and Adapters Without DDD

Hexagonal for the Rest of Us: Ports and Adapters Without DDD

Comments
8 min read
When the Reranker Hurts: Recall@5 Cases Where Two-Stage Retrieval Loses to One

When the Reranker Hurts: Recall@5 Cases Where Two-Stage Retrieval Loses to One

Comments
7 min read
Strangler Fig in Go: Migrating a Monolith Without a Big-Bang Rewrite

Strangler Fig in Go: Migrating a Monolith Without a Big-Bang Rewrite

Comments
8 min read
Why Strict JSON Mode Doesn't Stop Hallucinated Tool Calls

Why Strict JSON Mode Doesn't Stop Hallucinated Tool Calls

Comments
7 min read
Every LLM Eval Library Has the Same Bug: Stochastic Judges Used as Deterministic Oracles

Every LLM Eval Library Has the Same Bug: Stochastic Judges Used as Deterministic Oracles

Comments
7 min read
Aggregate Boundaries in Go: 1 Rule That Beats 90% of DDD Books

Aggregate Boundaries in Go: 1 Rule That Beats 90% of DDD Books

1
Comments
7 min read
Aggregate Boundaries in Go: One Rule That Beats 90% of DDD Books

Aggregate Boundaries in Go: One Rule That Beats 90% of DDD Books

Comments
7 min read
Anthropic Prompt Caching Saves 90% — Here's the One Caveat Nobody Mentions

Anthropic Prompt Caching Saves 90% — Here's the One Caveat Nobody Mentions

Comments
7 min read
Why Your Team Should Stop Reaching for errgroup by Default

Why Your Team Should Stop Reaching for errgroup by Default

Comments
8 min read
The Agent That Spent $47K on Itself: An Autonomous-Loop Postmortem

The Agent That Spent $47K on Itself: An Autonomous-Loop Postmortem

Comments
7 min read
Go Channels Aren't Free. Here's the Real Cost

Go Channels Aren't Free. Here's the Real Cost

Comments
8 min read
The 5 Failure Modes of Multi-Agent Systems Nobody Warns You About

The 5 Failure Modes of Multi-Agent Systems Nobody Warns You About

Comments
7 min read
Defer Has 3 Performance Cliffs. Here's How to See Them

Defer Has 3 Performance Cliffs. Here's How to See Them

Comments
7 min read
Cosine Similarity Lies. Here's What to Use When Your Embeddings All Cluster at 0.85

Cosine Similarity Lies. Here's What to Use When Your Embeddings All Cluster at 0.85

Comments
7 min read
RAG Without Embeddings: When BM25 Beats Your $0.20-per-1K Vector Index

RAG Without Embeddings: When BM25 Beats Your $0.20-per-1K Vector Index

Comments
7 min read
The Strange Case of Go's nil Interface Comparison

The Strange Case of Go's nil Interface Comparison

Comments
7 min read
When 'Take a Deep Breath' Stopped Working: Prompt Tricks With an Expiry Date

When 'Take a Deep Breath' Stopped Working: Prompt Tricks With an Expiry Date

Comments
7 min read
Go Generics in 2026: What Finally Works and What Still Doesn't

Go Generics in 2026: What Finally Works and What Still Doesn't

Comments
7 min read
The Hidden Tax of Structured Output: How Much Extra You Pay for JSON Mode

The Hidden Tax of Structured Output: How Much Extra You Pay for JSON Mode

Comments
7 min read
sync.Pool: The Optimization You Reach for Last, Not First

sync.Pool: The Optimization You Reach for Last, Not First

1
Comments
7 min read
Tokenizer Quirks: Claude, GPT, and Gemini Don't Count the Same Text the Same Way

Tokenizer Quirks: Claude, GPT, and Gemini Don't Count the Same Text the Same Way

Comments
6 min read
Lost-in-the-Middle Is Still Real in 2026 (Even on 1M-Token Models)

Lost-in-the-Middle Is Still Real in 2026 (Even on 1M-Token Models)

2
Comments
6 min read
context.Context Is a Tree, Not a Bag. Treat It Like One

context.Context Is a Tree, Not a Bag. Treat It Like One

Comments
6 min read
Value Objects in Go: 4 Patterns That Kill Invalid State

Value Objects in Go: 4 Patterns That Kill Invalid State

1
Comments
8 min read
Migrating a Large Go Service to Hexagonal Without a Rewrite

Migrating a Large Go Service to Hexagonal Without a Rewrite

2
Comments
11 min read
Domain Events in Go Without an Event Bus

Domain Events in Go Without an Event Bus

3
Comments
7 min read
Your Go Middleware Is Doing Too Much. Move It to an Adapter

Your Go Middleware Is Doing Too Much. Move It to an Adapter

1
Comments
8 min read
main() Is the Most Important Function in Your Go Service

main() Is the Most Important Function in Your Go Service

1
Comments
8 min read
I Replaced 2,000 Lines of Go Mocks With 200 Lines of Fakes

I Replaced 2,000 Lines of Go Mocks With 200 Lines of Fakes

1
Comments
7 min read
Your gRPC Protobuf Types Don't Belong in Your Domain Layer

Your gRPC Protobuf Types Don't Belong in Your Domain Layer

1
Comments
6 min read
Go's Implicit Interfaces Are Its Best Architecture Feature

Go's Implicit Interfaces Are Its Best Architecture Feature

1
Comments
8 min read
The Anti-Corruption Layer That Saves Your Next Vendor Migration

The Anti-Corruption Layer That Saves Your Next Vendor Migration

1
Comments
8 min read
Your Go Config Package Is a Hidden Dependency Monster

Your Go Config Package Is a Hidden Dependency Monster

1
Comments
7 min read
The Coupling Problem Hiding in Every Go Microservice Codebase

The Coupling Problem Hiding in Every Go Microservice Codebase

1
Comments
8 min read
Stop Importing database/sql in Your Go Business Logic

Stop Importing database/sql in Your Go Business Logic

2
Comments
7 min read
Your Go Tests Take 6 Minutes Because Your Architecture Is Wrong

Your Go Tests Take 6 Minutes Because Your Architecture Is Wrong

1
Comments
7 min read
The Repository Pattern Everyone Gets Wrong in Go

The Repository Pattern Everyone Gets Wrong in Go

Comments
8 min read
Your Go HTTP Handler Is 400 Lines. That's the Whole Problem

Your Go HTTP Handler Is 400 Lines. That's the Whole Problem

Comments
9 min read
DDD in Go Without the Bureaucracy: Aggregates, Not Abstractions

DDD in Go Without the Bureaucracy: Aggregates, Not Abstractions

Comments
10 min read
Your GORM Model Is Not Your Domain (And It's Eating Your Business Logic)

Your GORM Model Is Not Your Domain (And It's Eating Your Business Logic)

1
Comments
10 min read
golang-standards/project-layout Is Not a Standard. Russ Cox Said So

golang-standards/project-layout Is Not a Standard. Russ Cox Said So

Comments
10 min read
Your Go 'Clean Architecture' Is Just Java in Disguise

Your Go 'Clean Architecture' Is Just Java in Disguise

Comments
10 min read
Your First Month in Go as a PHP Developer: The Honest Diary

Your First Month in Go as a PHP Developer: The Honest Diary

Comments
10 min read
PHPUnit Mocking Made You Lazy. Go Will Force You to Design

PHPUnit Mocking Made You Lazy. Go Will Force You to Design

Comments
10 min read
Stop Looking for Laravel's Service Container in Go

Stop Looking for Laravel's Service Container in Go

Comments
10 min read
Exceptions Made You Sloppy. Go's if err != nil Fixes That

Exceptions Made You Sloppy. Go's if err != nil Fixes That

Comments
10 min read
First Week in Go: 9 Habits Every PHP Developer Has to Unlearn

First Week in Go: 9 Habits Every PHP Developer Has to Unlearn

Comments
10 min read
Everyone Logs Wrong with slog. 7 Patterns for 3 AM

Everyone Logs Wrong with slog. 7 Patterns for 3 AM

Comments
10 min read
Go's range-over-func: 4 Footguns the Compiler Won't Warn You About

Go's range-over-func: 4 Footguns the Compiler Won't Warn You About

Comments
10 min read
50,000 Goroutines Took Down Prod at 3 AM. The Fix Is One Line

50,000 Goroutines Took Down Prod at 3 AM. The Fix Is One Line

1
Comments
10 min read
A Malicious Go Module Sat in the Mirror for 3 Years. Your go.sum Won't Save You

A Malicious Go Module Sat in the Mirror for 3 Years. Your go.sum Won't Save You

Comments
10 min read
Go 1.25 Green Tea GC: Why the 40% Number Is Real for Some Workloads

Go 1.25 Green Tea GC: Why the 40% Number Is Real for Some Workloads

1
Comments
10 min read
GOMAXPROCS Is Lying to Your Kubernetes Pod (Costing You CPU)

GOMAXPROCS Is Lying to Your Kubernetes Pod (Costing You CPU)

Comments
10 min read
Tool-Calling Prompts That Don't Blow Up on the Five Edge Cases

Tool-Calling Prompts That Don't Blow Up on the Five Edge Cases

1
Comments
8 min read
Migrating From a JSON Column to a Proper Schema in Postgres

Migrating From a JSON Column to a Proper Schema in Postgres

1
Comments
6 min read
loading...