CV
Mihai Marinescu
Senior Full-Stack TypeScript Engineer · frontend-leaning · Romania → US East Coast & Western Europe · 11 years
React and Next.js on the front, Node and PostgreSQL behind — and eleven years in, the work I get brought in for is the work most developers route around: performance rescues, document diff/merge, rich-text editor internals, auth and AI/RAG built from first principles. I build with modern AI tooling and I understand and own everything I ship — ask me how any of it works.
Before software I was a financial analyst at HP — I retrained, started again as a junior, and spent the eleven years since shipping for the web. Outside work: a Brazilian Jiu-Jitsu black belt, fourteen years from white to black. Same muscles this job uses — pressure, humility, long feedback loops.
Experience
AI-powered documentation platform out of Y Combinator. Four years as one of its primary authors — 468 merged PRs across the React/Next.js front end and the Node + PostgreSQL backend.
- Cut keystroke latency on large docs from ~1.4s — browser blocking and crashing — to ~100ms, no crashes. On a profiled doc: 245ms → 56ms, and ~1,531 re-renders per keystroke down to 1–2.
- Re-engineered the merge/diff/conflict engine behind Git-style document branching: node-id-aligned three-way merge, LCS minimal diffs, an ~815-line conflict-diff builder — and a cross-move conflict that silently deleted documents, fixed at the root. The foundation was a teammate's; the engine on top is ~90% mine by git blame.
- Sole author of the AI authoring agent — a tool-calling agent that generates and edits blocks inside documents — plus the agentic generator behind docs.new and the AI surface around it (summaries, ask-AI search, feedback).
- Authored rich-text blocks and normalizers inside Slate/Plate — a new tables implementation, code editor, inline LaTeX, reusable content, workflows — and the node-model and cursor bugs that come with them.
- Built and grew an interactive API-docs sub-product over three years: OpenAPI/Swagger imports from YAML, live "try it" calls, multi-language code generation — recursive React components underneath.
- Shipped across the public docs portals — theming, SEO, SSR/prefetch performance — and the content import/sync pipelines (Confluence, Google, GitHub) with the mdast↔Slate markdown converter.
- Owned headless-PDF export end to end (Puppeteer worker + CSS fidelity, Dockerized on Azure), plus customer-critical fixes from triage to resolution.
- Reduced the initial JavaScript bundle by 50% via tree-shaking and barrel-file elimination, across a codebase serving thousands of documents.
- Built a Manifest V3 Chrome extension solo — live on the Chrome Web Store — turning webpages into structured docs via screenshots and Markdown conversion.
Product consultancy — four client products in parallel, four different stacks.
- Shipped full-stack features across four codebases — React, Vue.js, AngularJS, Node.js, AdonisJS — switching stacks per client without a ramp-up.
- Designed reusable component architectures with clean abstractions and dependency injection.
- Worked deep in complex existing codebases, across multiple teams — the adaptability-and-ownership kind of consulting.
- Built a major bank's contract-PDF template — still printing their contracts today.
Furniture e-commerce across multiple countries — Black Friday-scale traffic.
- Migrated the storefront from legacy Backbone.js to Vue.js with SSR — both systems live in parallel through the switch.
- Built the Cordova mobile app (iOS & Android) from the same codebase as the website.
Enterprise delivery for a well-known US newspaper.
- Full-stack features and backend services in a large enterprise team — JavaScript, Node.js, Go.
Agency work — frontend interfaces and AngularJS applications.
- Built frontend interfaces and AngularJS apps — HTML, CSS/SCSS, JavaScript, jQuery, Node.js, WordPress, Drupal.
- Git Flow, Jira, Gulp — the modern frontend workflow of the era.
First dev role.
- Built the company website and produced HTML/CSS educational content.
- Early SEO, customer acquisition, and client web projects.
Before software
- Hewlett-Packard — Financial Analyst (Dec 2012 – Jan 2015): financial reporting, cost & revenue recognition, end-to-end process ownership.
- Hewlett-Packard — Procurement Analyst (Jan 2011 – Dec 2012): order processing, process improvement, customer support.
- The business-side reading of software — conversion, cost, revenue — comes from here.
Independent work & writing
Built on my own time, then explained line by line on the blog — working demos, with source.
- RAG from first principles — a full PDF-chat pipeline — chunking, Voyage embeddings + reranking, pgvector/HNSW, BullMQ ingestion, grounded citations.
- Auth from scratch — production-grade auth on Fastify + Drizzle: argon2id, server-side sessions, OAuth/PKCE, verification and reset flows, rate limiting.
- 2FA — the gold standard — WebAuthn passkeys, step-up auth, recovery codes — threat-modeled, source on GitHub.
- React recursive components — a recursive JSON editor — one canonical tree, everything derived. Live at json-wow.vercel.app.
- Frontend360 — my own Chrome extension — grid overlays, crosshair coordinates, click-to-place guides, an on-hover CSS inspector. 5.0★ on the Web Store.
- produsebaby.ro — a content platform I built and run — 450+ buying guides and reviews — holding Lighthouse 100 · 100 · 100 · 100 in production.
- Layout Thrashing Lab — toggle rendering anti-patterns in a live animation loop — read/write ordering alone is worth ~500×.
- BeatBird — a rhythm game on the Web Audio API — sample-accurate scheduling where setTimeout won't cut it.
Skills
- TypeScript
- JavaScript
- React / Next.js
- Node.js
- PostgreSQL
- Slate/Plate
- TanStack Query/Table
- Express
- Fastify
- Redis
- BullMQ
- Drizzle
- Sequelize
- Zod
- pgvector
- Vue.js
- AngularJS
- Go
- AWS
- Puppeteer
Education & languages
MSc, Project Management · BSc, Business & Management — Academia de Studii Economice (ASE), Bucharest
Romanian — native · English — fluent · French — basic
Let's build something →New to working together? We can start with a small paid task — you'll see how I work before any bigger commitment.