noldi · full-stack ai engineer · spain · remote

Open to remote roles & freelance

Software that actually ships — with AI at the core.

Full-stack AI engineer in Spain. Web products designed, built and operated end-to-end: live Stripe billing with paying subscribers, a validated integration with Spain's tax agency, and AI features people pay for — built by orchestrating Claude Code, run with production discipline.

12+products shipped to production
LIVEStripe subscriptions billing real customers
AEATgovernment tax integration, validated end-to-end
100%built AI-first with Claude Code, end to end

Selected work

Production is the portfolio.

Every project below is deployed and in use — the important ones bill money or talk to a government API. Each covers the full cycle: product, code, data model, deployment, operations.

Live · paying subscribers
Next.js/Neon Postgres/Stripe/Anthropic API/Vercel

üDu — production tracking for dentists

SaaS for freelance dentists working across clinics: log daily clinical production, see earnings analytics, and photograph a paper production sheet so the AI scanner (Claude vision) extracts every line item. Live Stripe billing at €12/mo · €99/yr, with real subscribers.

Validated vs. AEAT test env
Node.js/XML + SOAP/SHA-256 hash chains/QR/cron

VeriFactu compliance engine

Invoice-integrity engine for Spain's VeriFactu anti-fraud law (mandatory for healthcare providers by mid-2027). Each invoice gets a SHA-256 fingerprint chained to the previous one, a verification QR, and is submitted as signed XML to the AEAT tax agency over SOAP on a cron schedule — validated end-to-end against the government's test environment.

Live · multi-tenant
Next.js/Neon/Resend/white-label admin

Hopa — appointment bots for clinics

White-label appointment-booking bot engine. One deployment serves many clinics: per-clinic configuration from an admin panel, deterministic conversation flows (no hallucination risk on medical scheduling), and transactional email for confirmations.

In operation · private
Anthropic API/Google Ads/cron/hard budget caps

LeadAgent — autonomous ads manager

An AI agent that manages Google Ads for a real dental clinic. Every day it reads performance data and decides — stop, scale, optimize or explore — under a hard spend cap, optimizing for phone calls, then reports to the non-technical owner in plain language. Case study on request.

Live · v1
React/interactive FDI odontogram/Vercel

UDU Clinic — clinic management

Clinic-management platform: appointment scheduling, patient records with an interactive FDI dental chart, and VAT-exempt healthcare invoicing built to Spanish rules.

In production · internal
Next.js 16/Neon/Vercel Blob/JWT auth (jose)

Control Horario — workforce & payroll

Time-tracking for a real company: GPS-geofenced clock-in, payroll summaries, vacation workflows and role-based auth built from scratch. Compliant with Spain's mandatory time-registry rules. Demo on request.

Also built

binary parsingGarmin .FIT files parsed directly in the browser; jump detection for kitesurf sessions
wearable appnative watch app in Monkey C (Connect IQ) measuring airtime & jump height
data extraction3,300+ dental implant SKUs extracted from PDF catalogs into searchable reference tools
client websitemulti-page SEO website for a dental clinic in Spain
game engineonline multiplayer card-game rules engine, fully covered by 27 unit tests
web game / pwanarrative psychological thriller playable in the browser, installable as a PWA

Working method

AI writes the code. Engineering owns the outcome.

AI-first, engineer-owned

Claude Code agents run the full lifecycle — spec, build, test, deploy. The AI produces the volume; engineering judgment owns correctness: verification against the live product, security review, data modeling, and the final call on what ships.

Production is the bar

Nothing counts until it runs live with real users. Small releases, verified in production, with critical paths — billing, patient data, tax records — defensive by default: secrets in environment variables, parameterized queries, graceful failure for everything secondary.

Async, bilingual, domain-deep

Written-first communication, Spanish native, working English, UTC+1 with overlap for US mornings. Deep domain in healthcare and dental operations plus Spanish regulatory compliance — built for real clinics, not hypothetical users.

Stack

Proven in production.

AI
Anthropic API (Claude) · tool use & agents · vision · prompt engineering · Claude Code orchestration · MCP
Frontend
React · Next.js (App Router) · Tailwind CSS · PWA · React Native / Expo
Backend
Node.js · Postgres (Neon) · REST APIs · cron jobs · JWT auth (jose) · XML/SOAP
Infra & services
Vercel · GitHub · Stripe · Resend · Vercel Blob · Web3Forms
Unusual bits
Garmin .FIT binary parsing · Monkey C (Connect IQ) · PDF data extraction at scale · AEAT government APIs
the lab · live & interactive

Don't just read the CV. Use it.

Four working demos — an AI assistant, a binary file parser, a data extractor and a small game engine — each running live in your browser, right here. Nothing below is a screenshot.

01live · claude api

Talk to the build assistant

Describe a product or a problem. A Claude model streams back what it would build, the stack it would use, and one risk worth flagging — token by token, in real time.

Next.js route handlerClaude APISSE streamingrate-limited
⌘/Ctrl + Enter
02live · binary parsing

Read a Garmin .FIT file

Upload an activity file from a sports watch. The raw binary is decoded on the server into a GPS track, speed and elevation — then drawn from scratch as SVG.

ArrayBufferFIT decodingSVG chartsNode runtime
03live · structured ai

Turn messy text into clean data

Paste an email or a note. The model returns strict, schema-validated JSON — people, organizations, dates, action items — the backbone of any real automation.

structured outputJSON schematyped response
04playable · canvas

Signal Lock

A tiny reflex game, hand-built on an HTML canvas with its own game loop and state. Sometimes the fastest way to show you can build is to let someone play.

<canvas>requestAnimationFramegame looplocalStorage

Tap the ring (or press Space) the moment the marker crosses the teal zone. It only gets faster.

best 0

Every demo above runs live — frontend, backend, AI and all.

built with Next.js · TypeScript · Tailwind · the Claude API