DEV Community

Gabriel Anhaia profile picture

Gabriel Anhaia

Senior Software Engineer @ Ordio · 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

Six Year Club
Top 7
Writing Debut
Five Year Club
Four Year Club
Three Year Club
Two Year Club
One Year Club
Claude Code Told the Model 'File Unchanged' to Save Tokens. 2.1.317 Removed the Stub

Claude Code Told the Model 'File Unchanged' to Save Tokens. 2.1.317 Removed the Stub

Comments
8 min read

Want to connect with Gabriel Anhaia?

Create an account to connect with Gabriel Anhaia. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Find Dead Code With knip, Then Let a Coding Agent Delete It One Package per Worktree

Find Dead Code With knip, Then Let a Coding Agent Delete It One Package per Worktree

Comments
8 min read
RabbitMQ's Default Prefetch Is Unlimited. One Slow Worker Can Hoard the Whole Queue

RabbitMQ's Default Prefetch Is Unlimited. One Slow Worker Can Hoard the Whole Queue

Comments
10 min read
Agentjacking: A Fake Sentry Error Became a 'Fix' That Claude Code and Cursor Ran

Agentjacking: A Fake Sentry Error Became a 'Fix' That Claude Code and Cursor Ran

Comments
10 min read
An Agent That Clicks Your Screen Leaves No Diff. Keep Coding Agents Where Git Can See

An Agent That Clicks Your Screen Leaves No Diff. Keep Coding Agents Where Git Can See

Comments
7 min read
The 2017 S3 Outage Was One Wrong Input. AWS Fixed the Tool, Not the Engineer

The 2017 S3 Outage Was One Wrong Input. AWS Fixed the Tool, Not the Engineer

Comments
8 min read
Exhale: A Breathing Guide That Reads Your Breath While Claude Code Works

Presage SmartSpectra SDK Challenge Submission

Exhale: A Breathing Guide That Reads Your Breath While Claude Code Works

12
Comments 1
7 min read
Anthropic's Agent Memory Study: Rules on What to Save Cost Claude Much of the Gain

Anthropic's Agent Memory Study: Rules on What to Save Cost Claude Much of the Gain

Comments
8 min read
Import a 1M-Row CSV Through One Use Case: a Generator Adapter, No Eloquent in the Loop

Import a 1M-Row CSV Through One Use Case: a Generator Adapter, No Eloquent in the Loop

Comments
9 min read
Record Your Coding Agent's Session With asciinema, Then Replay Where It Went Wrong

Record Your Coding Agent's Session With asciinema, Then Replay Where It Went Wrong

1
Comments
9 min read
Your Agent's Command Printed Nothing for 2 Minutes. stdout Wasn't a Terminal

Your Agent's Command Printed Nothing for 2 Minutes. stdout Wasn't a Terminal

1
Comments
8 min read
9 Timeouts in Claude Code, Codex and Gemini CLI That Cut Long Test Runs Short

9 Timeouts in Claude Code, Codex and Gemini CLI That Cut Long Test Runs Short

1
Comments 1
9 min read
A File Storage Port in Go That Streams: io.Reader In, Disk and S3 Adapters Out

A File Storage Port in Go That Streams: io.Reader In, Disk and S3 Adapters Out

Comments
12 min read
Censys Found 1,465 Exposed Artex AI-Attack Consoles. A Page Title Gave Them Away

Censys Found 1,465 Exposed Artex AI-Attack Consoles. A Page Title Gave Them Away

Comments
6 min read
Uneven Branches Make a LangGraph.js Join Node Run Twice. Super-Steps Explain Why

Uneven Branches Make a LangGraph.js Join Node Run Twice. Super-Steps Explain Why

Comments
7 min read
If a Linter Can Check Your AGENTS.md Rule, the Rule Doesn't Belong in AGENTS.md

If a Linter Can Check Your AGENTS.md Rule, the Rule Doesn't Belong in AGENTS.md

Comments
11 min read
AWS's Kiro Bots Start in Trust Mode, and Crew's Default Sandbox Leaves ~/.ssh Visible

AWS's Kiro Bots Start in Trust Mode, and Crew's Default Sandbox Leaves ~/.ssh Visible

1
Comments 1
8 min read
Your Agent Changed the OpenAPI Spec. oasdiff Finds the Breaking Change Before You Land

Your Agent Changed the OpenAPI Spec. oasdiff Finds the Breaking Change Before You Land

Comments
8 min read
CREATE INDEX CONCURRENTLY Failed. The INVALID Index It Left Can Still Tax Every Write

CREATE INDEX CONCURRENTLY Failed. The INVALID Index It Left Can Still Tax Every Write

1
Comments
9 min read
A Botpress Staff Key Read Bot Configs in 16 Workspaces. The Target Was AI Credits

A Botpress Staff Key Read Bot Configs in 16 Workspaces. The Target Was AI Credits

Comments 1
6 min read
Do Parallel Claude Code Sessions Share a Prompt Cache? Not Across Worktrees

Do Parallel Claude Code Sessions Share a Prompt Cache? Not Across Worktrees

Comments 2
10 min read
A Cloud Agent's 'All Tests Pass' Only Covers the Services It Could Reach

A Cloud Agent's 'All Tests Pass' Only Covers the Services It Could Reach

Comments 1
9 min read
Every App Is Becoming Every Other App: Wispr Flow and Granola Just Swapped Jobs

Every App Is Becoming Every Other App: Wispr Flow and Granola Just Swapped Jobs

Comments
5 min read
Cursor's Agent Now Deploys Apps With Postgres and SSO. Its Docs List No Hosting Price

Cursor's Agent Now Deploys Apps With Postgres and SSO. Its Docs List No Hosting Price

Comments 1
7 min read
8 Type Checkers and Linters Fast Enough to Run After Every Coding-Agent Turn

8 Type Checkers and Linters Fast Enough to Run After Every Coding-Agent Turn

Comments
9 min read
No Threads, Still Races: Two awaits Can Corrupt State a Java Lock Would Have Guarded

No Threads, Still Races: Two awaits Can Corrupt State a Java Lock Would Have Guarded

Comments
9 min read
FORCE_HYPERLINK=false Turned Claude Code's Links On. Inside OSC 8 Terminal Hyperlinks

FORCE_HYPERLINK=false Turned Claude Code's Links On. Inside OSC 8 Terminal Hyperlinks

1
Comments
8 min read
Queue Work Into a Running Codex Session From Another Shell: codex queue, Step by Step

Queue Work Into a Running Codex Session From Another Shell: codex queue, Step by Step

Comments
7 min read
Design Typeahead Search Step by Step: Why the Trie Stores the Top 10 at Every Node

Design Typeahead Search Step by Step: Why the Trie Stores the Top 10 at Every Node

1
Comments 1
9 min read
Mistral's New Agents SDK Runs Tool Calls Without Asking by Default. Set a Policy First

Mistral's New Agents SDK Runs Tool Calls Without Asking by Default. Set a Policy First

Comments
7 min read
The Only Coding-Agent Benchmark That Matters Is Your Own Revert Rate

The Only Coding-Agent Benchmark That Matters Is Your Own Revert Rate

1
Comments 1
9 min read
tmux vs Zellij vs Hermes IDE: Five CLI Agents, and Which One Is Waiting on You

tmux vs Zellij vs Hermes IDE: Five CLI Agents, and Which One Is Waiting on You

Comments
10 min read
Claude Code Put Account Emails in User-Agent Headers. Stable 2.1.311 Lacks the Guard

Claude Code Put Account Emails in User-Agent Headers. Stable 2.1.311 Lacks the Guard

Comments
8 min read
Go 1.27 Adds crypto/mldsa. A Post-Quantum Signature Is 3,309 Bytes; Ed25519's Is 64

Go 1.27 Adds crypto/mldsa. A Post-Quantum Signature Is 3,309 Bytes; Ed25519's Is 64

1
Comments 1
8 min read
Moved Your Repo Folder? Every Agent Worktree Broke. git worktree repair Fixes It

Moved Your Repo Folder? Every Agent Worktree Broke. git worktree repair Fixes It

Comments
9 min read
-U0, -U3 or --function-context: Count the Tokens Your Review Agent Reads per Diff

-U0, -U3 or --function-context: Count the Tokens Your Review Agent Reads per Diff

Comments
9 min read
Two Agents Both Added a Package: 7 Lockfiles and the Command That Fixes Each Conflict

Two Agents Both Added a Package: 7 Lockfiles and the Command That Fixes Each Conflict

1
Comments
8 min read
Your Signup Emails Land in Spam. Set Up SPF, DKIM and DMARC, Then Prove It With dig

Your Signup Emails Land in Spam. Set Up SPF, DKIM and DMARC, Then Prove It With dig

4
Comments
8 min read
Gemini Omni 1.2 Flash Is 30% Cheaper. Your 1.1 Calls Move to It on December 3 Anyway

Gemini Omni 1.2 Flash Is 30% Cheaper. Your 1.1 Calls Move to It on December 3 Anyway

Comments
7 min read
Laravel 13 Puts #[Table] on Your Models. PHP Won't Load That Class Until newInstance()

Laravel 13 Puts #[Table] on Your Models. PHP Won't Load That Class Until newInstance()

1
Comments
7 min read
Stop Writing the Perfect Prompt. Claude Code's Docs Say Let It Interview You

Stop Writing the Perfect Prompt. Claude Code's Docs Say Let It Interview You

1
Comments 1
8 min read
A Trailing Dot Let Copilot Rewrite Its Own .mcp.json. How Windows Paths Fool Denylists

A Trailing Dot Let Copilot Rewrite Its Own .mcp.json. How Windows Paths Fool Denylists

1
Comments
10 min read
Give Your Coding Agent a Bundle Budget: size-limit Fails the Branch Before You Land It

Give Your Coding Agent a Bundle Budget: size-limit Fails the Branch Before You Land It

Comments
8 min read
Your SaaS Needs 5 Stripe Webhook Events. Wire Them to One Entitlements Table

Your SaaS Needs 5 Stripe Webhook Events. Wire Them to One Entitlements Table

1
Comments
10 min read
METR: Anthropic's Pace Roughly Doubled, Mostly From AI. Most Key Evidence Is Redacted

METR: Anthropic's Pace Roughly Doubled, Mostly From AI. Most Key Evidence Is Redacted

1
Comments
7 min read
Conductor vs Claude Squad vs Hermes IDE: 3 Worktree Managers for Parallel Agents

Conductor vs Claude Squad vs Hermes IDE: 3 Worktree Managers for Parallel Agents

4
Comments
8 min read
Coding Agents Are Growing Memories. If You Can't git diff It, Don't Trust It

Coding Agents Are Growing Memories. If You Can't git diff It, Don't Trust It

2
Comments 1
9 min read
Claude's IP Allowlist Can 403 a Leaked API Key. It Can 403 Your Weekly Cron Job Too

Claude's IP Allowlist Can 403 a Leaked API Key. It Can 403 Your Weekly Cron Job Too

2
Comments
8 min read
Five Agents Running, Fans Screaming: 8 Commands That Find the Process to Kill

Five Agents Running, Fans Screaming: 8 Commands That Find the Process to Kill

2
Comments 1
10 min read
Why TypeScript Forgets Your Narrowing Inside a Callback, and What 5.4 Fixed

Why TypeScript Forgets Your Narrowing Inside a Callback, and What 5.4 Fixed

2
Comments
7 min read
Ubuntu 24.04 Restricts User Namespaces. That's Why Your Agent's Sandbox Won't Start

Ubuntu 24.04 Restricts User Namespaces. That's Why Your Agent's Sandbox Won't Start

2
Comments
8 min read
Land the Interface First: Split One Feature Across 3 Agents Without Conflicts

Land the Interface First: Split One Feature Across 3 Agents Without Conflicts

1
Comments
10 min read
Run Your Coding Agent in a Container With an Egress Allowlist, Not the Open Internet

Run Your Coding Agent in a Container With an Egress Allowlist, Not the Open Internet

2
Comments
11 min read
A Codex Jailbreak Pack Hides an Ad in Your Agent's Instructions. Say 'hi' to Trigger It

A Codex Jailbreak Pack Hides an Ad in Your Agent's Instructions. Say 'hi' to Trigger It

1
Comments
7 min read
Don't Let Claude Review Claude's Code. Models That Think Alike Make the Same Mistakes

Don't Let Claude Review Claude's Code. Models That Think Alike Make the Same Mistakes

1
Comments 1
8 min read
Before git worktree, git-new-workdir Symlinked .git and gc Couldn't See Its HEAD

Before git worktree, git-new-workdir Symlinked .git and gc Couldn't See Its HEAD

1
Comments
9 min read
Blobless Clones Fetch Files on Demand. Claude Code's Sandboxed Worktrees Now Fetch First

Blobless Clones Fetch Files on Demand. Claude Code's Sandboxed Worktrees Now Fetch First

1
Comments
8 min read
GitLab Had 5 Backup Methods and None Worked Reliably. Restore-Test Yours Nightly

GitLab Had 5 Backup Methods and None Worked Reliably. Restore-Test Yours Nightly

Comments
10 min read
Enable That Strict ESLint Rule Today: Bulk-Suppress the Backlog, Let Agents Burn It Down

Enable That Strict ESLint Rule Today: Bulk-Suppress the Backlog, Let Agents Burn It Down

Comments
9 min read
GPT-Image-2.6 Outputs SVG and GIFs. Unlike 2.5, You Can't Run It Through Batch

GPT-Image-2.6 Outputs SVG and GIFs. Unlike 2.5, You Can't Run It Through Batch

1
Comments
6 min read
loading...