Senior full-stack engineer · React · Next.js · Node · Postgres · Romania → US East Coast & Western Europe

Frontend developer writing backend — 11 years of it. React and Next.js on the front, Node and Postgres behind. I'm most useful on the parts that are actually hard: performance, document diff/merge, rich-text editors, auth, RAG. I understand every line I ship.

I build web apps end to end — or bring the team.

1.4s 100ms
14× faster keystroke latency · a YC-backed docs platform
re-engineered
a Git-style diff/merge engine for branching docs

The stack I build with

  • React
  • Next.js
  • TypeScript
  • Node.js
  • PostgreSQL
  • Express
  • Fastify
  • Drizzle
  • Redis
  • BullMQ
  • Tailwind
  • Slate/Plate
  • pgvector
This site: Lighthouse 100 · 100 · 100 · 100LCP 0.4sINP 47msCLS 0.00

Proof

Three stories, with receipts.

The AI docs agent

0 unguarded writes

A production tool-use agent with real write access to customer docs — and no path to corrupt them: branch-staged writes, three validation layers, a bounded, cancellable loop streamed live into the editor.

read the case study →

The branching engine

Git, for documents

Git-style version control for writers: branches that copy nothing, an identity-based three-way merge, and conflicts resolved as rendered editor blocks — never raw markers.

read the case study →

The guide recorder

50 events → 3 steps

A Chrome MV3 extension that records real clicks into illustrated how-to guides — four isolated contexts, one typed 40-message protocol, designed backwards from the crash Chrome guarantees.

read the case study →

Standards

How I write code.

Reads like its own explanation

Intentful names, everything typed, no any. A reader should narrate the logic back without simulating it in their head.

Root cause, not symptom

The bug you see is where you noticed it, not where it started. Fixes land at the origin, with the blast radius checked.

Measured, not guessed

Profile first, then fix, then measure again. Every performance number on this site has a before and an after.

Verify, don't assume

Docs, tests, and types beat vibes — and “I don't know, let me check” ships fewer bugs than a confident guess.

Tests ride along

Risky logic ships with its tests in the same PR — merge engines and money paths don't get IOUs.

One source of truth

For values, logic, and state alike — the second copy is the one that silently drifts.

Debugging

How I fix problems.

The bug you see is where you noticed it — not where it started. Four real ones, fixed at the origin:

“Works on QA, fails on prod — and nothing saves.”

First suspect: a migration that was written, deployed, and never run. Code-vs-schema skew is invisible until you look for it — so it's the first place I look.

“I changed one line and the diff says everything changed.”

Traced to a lossy markdown round-trip regenerating stable node IDs. Fixed what the code carried — and left the diff algorithm, which had been right all along, untouched.

“A click takes seconds before the cursor even shows.”

400+ blocks re-rendering on a raw global subscription. Derived selector atoms brought that to 2 — instant, with the profiler trace to prove it.

“The merge sometimes eats concurrent edits.”

A stale pre-transaction read was clobbering newer writes. Clone-based stamping fixed the race — and a data backfill repaired the history it had already touched.

Work with me

Five ways in.

Every engagement runs the same way: senior work, remote, on a clean B2B invoice — no payroll, no visa, no employment risk. It works from both sides of the Atlantic: a full working-day overlap with Western Europe, and afternoons that cover US East Coast mornings. And the arithmetic works in your favor: I'm in Bucharest, not the Bay Area or Berlin, so you get merge-engine-level engineering at a Central-European rate.

01

Full-stack build

From a design or an idea to a shipped, fast Next.js app — front to back, owned end to end.

project
02

Performance rescue

A slow, janky React/Next.js app made fast — profiled and fixed, with before/after numbers.

project
03

The hard-thing build

What generalists stall on: rich-text editors, document diff/merge, structured-data UIs, auth & RAG.

project
04

Fractional senior

Ongoing senior full-stack capacity for a team that needs to ship well, not just fast.

monthly
05

The senior team

Need more than one pair of hands? I bring senior frontend, backend, and DevOps engineers from Romania — humans, not AI. We ship fast, startup-style: fewer meetings, more landed work.

project or monthly

Need more?

I can bring you a senior team.

Same bar, more hands: senior frontend, backend, and DevOps engineers from Romania — humans, not AI. We ship fast, startup-style. You don't get lost in meetings; you watch features land.

  • Frontend
  • Backend
  • DevOps
  • Romania · EET
  • Humans, not AI
Bring the team →one point of contact: me