For hiring teams
Five years finding defects. Then nine products of my own.
A quality engineer who moved into building and kept the habits. Here is the path, the stack, how I prove a thing works — and the roles I'm wrong for.
The path
Testing first · systems second · products thirdManual, API and automated testing on other people's software. Paid to find what breaks before a user does — which is where every habit on this page comes from.
Spain's higher technician qualification in networked systems administration: Linux, networks, servers, security. The reason deployment isn't somebody else's department.
Designed, built, tested, deployed and operated alone: a payments marketplace, an adoption platform, a multi-tenant SaaS, a children's web app, a browser extension, catalogues and content sites.
The oldest one, still running under my monitoring and nightly backups. Not handed over and forgotten — operated, which is a different skill from shipping.
What I actually work in
All of it used on something that reached a real addressTypeScript · React · Next.js App Router · Tailwind · installable web apps (PWA) · browser extensions
NestJS · Node · PostgreSQL · Prisma · REST APIs · role-based access · Stripe and PayPal, including escrow and payouts
Docker · Caddy · Linux servers · GitHub Actions · monitoring, backups and certificate renewal · Cloudflare
Playwright end-to-end · Jest · mutation testing on the money paths · accessibility checks in the pipeline · manual exploratory, deliberately
WordPress themes and plugins written from scratch · custom admin panels · multilingual content including right-to-left Arabic · SEO structure
Ukrainian · English · Spanish · Russian — including the difficult conversations, not just the greetings. Based in Spain, working CET/CEST, remote.
Evidence, not a green tick
A check that has never caught anything is not evidence that anything is safeGates that have already caught something
Protections around money and data are themselves tested: remove the safeguard and the build fails. A rule nobody has ever tried to break is a wish, not a control.
Coverage that counts what ran
Reporting tools happily count code they only imported. Thresholds are computed from what actually executed, and any figure I quote links to the run that produced it.
Published data carries its source
On the catalogue work, a specification without a traceable origin isn't shown — the build stops instead. It caught real errors on its first run.
Checked where the user is
Contrast measured against the worst photograph on the page, layouts measured on the client's screen size, forms tried on an old phone. The mockup is not the product.
Small teams that ship
- →Full-stack product work where one person can carry a feature from design to production.
- →Teams without a dedicated QA, who need someone who thinks like one anyway.
- →Products handling money, personal data or people's safety, where being careful is the job.
- →Remote work across languages — I've run projects in four of them.
Better said before the interview
- ×Native iOS and Android. I build installable web apps and I won't pretend otherwise.
- ×Pure management tracks — I want to stay close enough to the product to build it.
- ×Deep specialisms I haven't practised: machine-learning research, game engines, embedded firmware.
Ask for the long version
CV, code samples, or a walk through any of the nine products — including the parts that had to be fixed. Say which and it comes back the same day.