Claude vs Gemini for coding: an honest two-week developer comparison (plus the DeepSeek surprise)

Not a benchmark — two weeks of real work on a Next.js app, a Python script and some ugly SQL. Where Claude Sonnet 4.5 pulled ahead, where Gemini's context and grounding won, and why DeepSeek R1 fixed the bug both missed.

KKryotta TeamProduct & research · · 3 min read
A developer's desk with two monitors of code late at night
A developer's desk with two monitors of code late at night

Every developer group I'm in has the same argument on loop: "Claude is better for code." "No, Gemini's context is huge." "Just use whatever's free." So instead of arguing, I spent two weeks using both for real work — a Next.js app, a Python data script, and some annoying SQL — and kept notes.

This is not a benchmark post. It's what happened when the models met a real codebase.

Where Claude (Sonnet 4.5) pulled ahead

Reading and changing existing code. I pasted a 600-line React component and asked for a refactor to hooks with no behaviour change. Claude kept every edge case, explained each change, and flagged a bug I hadn't noticed (a stale closure in an effect). Gemini's refactor was cleaner-looking but quietly dropped a fallback branch.

Code review tone. Claude reviews like a senior colleague — specific, prioritised, not preachy. Handy when you paste the review straight into a PR.

Following constraints. "Don't add dependencies, keep the public API, TypeScript strict" — Claude obeyed all three every time. Gemini occasionally added a helper library because it was "cleaner".

Where Gemini pulled ahead

Big context. I dropped an entire small repo (about 40 files) into Gemini Pro and asked "where is auth actually enforced?" It answered correctly with file references. Claude handled it too, but Gemini was more comfortable at that size.

Current libraries and docs. For "how do I do X in the latest version of this framework", Gemini's grounded search meant fewer answers based on a two-year-old API. This alone saved me a couple of hours of "why is this deprecated".

Speed on quick questions. Gemini Flash is very fast for "what does this regex do" and "give me the pandas one-liner".

The surprise: DeepSeek R1 for the nasty bug

Both Claude and Gemini went in circles on an off-by-one in a date-range query. DeepSeek R1 thought for a while, then walked through the boundary cases and nailed it. For algorithmic bugs, "let the reasoning model think" is now my first move.

And GPT-OSS?

OpenAI's open-weight GPT-OSS 120B was a solid all-rounder — good code, good explanations, noticeably cheaper. For internal tooling and scripts I'd happily default to it.

What I actually do now

  • Reading/refactoring existing code: Claude Sonnet 4.5.
  • Questions about the latest framework version: Gemini (grounded).
  • Weird bugs, algorithms, SQL edge cases: DeepSeek R1.
  • Bulk/boring stuff (tests, docstrings, small scripts): GPT-OSS 120B or Haiku 4.5.
  • Not sure: run the prompt through two models side by side in Compare and read both — the disagreement often points to the real problem.

Having them in one workspace is what makes this practical. I'm not copying code between four tabs; every answer says which model wrote it, and my prompts, files and history are in one place.

Two habits that mattered more than the model

  1. Paste the error, the code, and what you expected. Every model gets dramatically better with all three.
  2. Ask for the diff, not the whole file. Faster to review, fewer accidental rewrites.

Two weeks in, my honest take: Claude for the code I'll ship, Gemini for the code I'm learning, R1 for the code that's broken. Argue in the comments — or better, run the comparison on your own repo.

K
Written by
Kryotta Team
Product & research

Kryotta is the multi-model AI workspace — every leading model, one login, one bill. Try it free →

Related reading