Full-stack lead developer · Next.js, data and AI
Tsitohaina Kantonirina
Two weeks from first commit to production.
That is how long the first of four internal apps took, for a Paris accounting firm of more than 100 people. Three years of history came across without losing a single hour, and over $6,000 a year in licences gave way to under €450 of hosting.
How I work
Write it down first
A short spec, then every architecture choice on record. When a decision does not hold, that goes on record too: a shared database, adopted one day, replaced the next by one database per app.
Check the detail, not the total
A migration is checked person by person. Across 94,702 entries, that is what surfaced the hours the grand totals were hiding.
Fix it fast, then fix the cause
One July morning the app went down. Service was back the same morning, then the cause was dealt with: the BI connector re-read the whole table, and now reads only what changed, with ten times fewer requests.
A team that can take over
Every pull request reviewed, an onboarding guide, the code in the client's own GitHub organisation. Elsewhere I assessed candidates' take-home tests, and two of the hires became mainstays of the team.
§1Selected work
Real projects. Clients stay anonymous and the screens were redrawn for this site; the numbers are the real ones.
One portal, one sign-in, the whole firm
One Microsoft sign-in, a shared staff directory and the firm's internal apps, each one shipped and deployed on its own.
Launched to the whole firm in October 2026. The code lives in the firm's own GitHub organisation, with an onboarding guide and the written decisions for whoever takes over.
Read the case →Leaving a SaaS without losing an hour
Replaced the per-seat time tracker for the whole firm. Timesheets feed payroll and billing, so three years of history had to come across, all of it.
In production two weeks after the first commit. Payroll and BI now read from a source the firm controls.
Read the case →Knowing which clients are waiting for a reply
Follows client conversations across 139 mailboxes: who is waiting for a reply, for how long, and which messages point to an unhappy client.
The firm can finally see which clients are waiting and which are losing patience: across twelve months of history, 7% of the emails analysed signalled discontent.
Read the case →Reading site paperwork so the team does not have to
A management SaaS for construction companies. I built the pipeline that receives a supplier invoice by email, reads it with an LLM, weeds out duplicates and files it against the right site.
Paper approval chains became configurable workflows, and paperwork is read without retyping.
Read the case →Also built
- 2026Accounting data, to the minuteData pipeline, in progress
- 2022Mapping environmental risk zonesGIS, client work
§2What I take on
In a role or on a mission, three kinds of work I carry from start to finish.
Own a product end to end
From spec to production, then the team that takes over: architecture, code, review, release and monitoring.
Replace a SaaS with a tool you own
When per-seat pricing outgrows what the tool is worth, and the history has to come across intact.
Automate the data flows
Pull data in, build it and serve it with no manual step, from the source software to the dashboard.
My commitments
- Your code, your data. Repositories and accounts in your name from day one. Nothing locked in, nothing to buy back.
- AI, reviewed and capped. I use AI every day, and everything that reaches production is reviewed and tested. In the product: no-retention providers and a hard cost ceiling.
- Every option priced. Including the one I advise against. Self-hosting would have cost less, plus eight to fifteen hours of upkeep a month: it is on the table, with its price.
- No indispensable hero. One developer who knows everything is a risk. I flag it, write things down, and prepare whoever comes next.
§3Experience
Lead developer, AI and BI, Accounting firm, Paris
- Four internal apps and the portal that joins them, shipped in four months behind a single Microsoft sign-in, for more than 100 people.
- Three years of timesheets moved off a per-seat SaaS without losing an hour, cutting over $6,000 a year in licences.
- Code review, an onboarding guide and written decisions for three developers, and a handover planned from the start.
Lead full-stack developer, Construction SaaS company
- LLM pipeline that reads supplier invoices, company registrations and compliance paperwork, and turns them into usable data.
- Led five developers: take-home tests at hiring, Git and Linear conventions, code review.
- 337 merged pull requests in fifteen months, from the workflow engine to tenant data isolation.
Full-stack and infrastructure developer, Online training company, Paris
- Built an online learning platform end to end, from the GraphQL API to Stripe and PayPal payments, deployed on GCP.
- Coordinated a group of interns and handed over with full documentation at the end of the mission.
Full-stack developer, Trading platform, Paris
- Real-time market dashboard aggregating several exchanges.
- Redesigned the legacy interface traders used every day.
Full-stack developer, Environmental risk mapping
- GIS platform for environmental risk zones, used by public agencies.
- Polygon editing, PostGIS validation rules and an approval workflow.
Full-stack developer, Health-tech startup
- Patient and doctor matching with availability, specialty and location filters.
- Cut the booking flow from five screens to two.
§4Stack
- Product and frontend
- TypeScript, React, Next.js, Tailwind CSS, React Native, Vue.js
- Backend and APIs
- Node.js, tRPC, GraphQL, REST / OpenAPI, Laravel, Spring Boot
- Data
- PostgreSQL, PostGIS, Drizzle, Prisma, MongoDB, Power BI
- AI and automation
- Claude Code, Vercel AI SDK, LangChain, Inngest, n8n
- Platform
- Vercel, Neon, GCP, Cloudflare, Docker, GitHub Actions, Microsoft Entra ID
- Quality
- Vitest, Playwright, Testing Library
§5Education
Master's in Computer Science, Institut Supérieur Polytechnique de Madagascar
Thesis: a web platform for French construction companies
Bachelor's in Computer Science, Institut Supérieur Polytechnique de Madagascar
§6Let's talk
Looking for a senior developer or a lead, remote and on Paris hours? Write to me, I reply within 24 hours.
Away from the code, I drive. Mostly WRC on a sim wheel, where I tune the car like a system: one variable at a time, measure, repeat.
This is the plain version of the site, set in Funnel Sans and readable in one pass. The same content exists in four other versions, each making one point: a rally stage for speed, an internal platform for the product, an anime sketchbook for the distance between Antananarivo and Paris, a holo card for the essentials. One content source, five interfaces. Their switches appear in the theme bar as each one finishes loading.