I'm a full stack engineer in Ticino, Switzerland, working mostly on multi-tenant SaaS — the unglamorous parts included: tenant isolation, migrations, billing webhooks, i18n, CI, and the deploy pipeline.
My main project, Gallo CRM, is live in production with paying-tier billing, seven languages and row-level security enforced in PostgreSQL. It isn't a tutorial clone; it's a product with users, a worker queue and a backup job.
Open to full-time and contract work.
▸ Gallo CRM — multi-tenant CRM in production
A complete CRM for small European sales teams: leads, pipeline, quotes, contracts, invoicing and an AI assistant.
- Multi-tenancy with PostgreSQL row-level security — isolation enforced at the database, not in application code
- 7 locales (EN/DE/FR/IT/RM/PT/ES) with automated key-parity checks in CI — including Romansh, Switzerland's fourth national language
- Stripe billing live, with webhook-driven subscription state
- 6 CI workflows — backend, frontend, e2e (Playwright), Docker, security scan, database backup
- Background worker for PDF generation and outbox-pattern automations
FastAPI · Next.js · PostgreSQL · SQLAlchemy · Alembic · Redis · Stripe · Docker · Playwright
▸ EtzahWeb — a trilingual production site with no framework
The site for my web studio, built deliberately with zero framework and zero backend — and it still does full internationalisation, SEO, a sitemap and a web manifest.
- A hand-written i18n runtime (IT / PT / EN) — nested-key lookup, a
t()helper, change subscribers,localStoragepersistence and an accessible language switcher, driving 1,284 lines of translations. No library - Deployed from
/docson GitHub Pages with a custom domain - Contact handling without a server
Worth a look if you're curious how much you can ship before reaching for React.
Vanilla JS · CSS3 · GitHub Pages · SEO
▸ Inbox AI — AI email automation for B2B back offices
Turns an inbox into structured work: classifies incoming mail, drafts replies and surfaces opportunities.
- TypeScript monorepo, backend and frontend in one CI pipeline
- Playwright end-to-end coverage
- Deployed on Render with a cold-start keepalive workflow
TypeScript · Node.js · React · Playwright
▸ Task Manager SaaS — containerised Kanban, documented API
A Trello-style task manager built to practise clean service boundaries rather than to look pretty.
- Separate backend and frontend, orchestrated with
docker compose - A written
API.md— the endpoints are documented, not guessed - Prisma schema with migrations
Next.js · Express · Prisma · Docker · TypeScript
▸ Alívio do Professor — AI grading for Brazilian teachers
A SaaS that grades written assignments so teachers get their evenings back.
- Provider-agnostic LLM layer — OpenAI, Anthropic, Google and Groq behind one interface, so a model can be swapped without touching feature code
- Supabase auth and Postgres with SQL migrations
- PDF parsing pipeline for submitted work
Next.js · TypeScript · Supabase · PostgreSQL
▸ La Mia Piccola Storia — animation-heavy storytelling site
Scroll-driven narrative site, multilingual, built to see how far animation can go before performance suffers.
- GSAP for timeline-based scroll sequences, Framer Motion for component transitions
i18nextwith browser language detection
React · TypeScript · GSAP · Framer Motion · Vite
Everything listed here appears in a public repository above — no aspirational entries.
Also working with: Alembic · SQLAlchemy · Playwright · Stripe · Sentry · PostHog · Cloudflare R2 · Railway
- Hardening Gallo CRM for its public launch — QA, accessibility and performance
- Learning system design and cloud infrastructure in more depth
- Open to opportunities in Switzerland, Italy, or remote



