About Me
Riccardo Sapuppo
Full-stack Developer based in Catania, Italy> Full-stack Developer based in Catania, Italy
Full-stack work across front end, back end and relational data, from browser interfaces to mobile and desktop delivery.
I work across the full delivery path: user interfaces, APIs, relational data and the workflows that connect them.
My experience spans Angular, React, TypeScript and RxJS on the front end; Node.js, Express, FastAPI, .NET Core and C# on the back end; PostgreSQL, SQL Server and MySQL for data.
I have delivered web, mobile and desktop applications with Ionic and Electron, put into service with Docker and CI/CD pipelines or on Windows Server, and built multi-tenant booking platforms, offline-first synchronisation, scheduled jobs, third-party integrations, query optimisation and caching. More recently I have integrated language models into products already in service: a conversational booking agent, retrieval over company documents, schema-constrained extraction.
My domain experience includes healthcare, medical imaging and operational platforms, where accuracy, reliability and clear workflows are essential.
Scope: front end, back end and relational data
Platforms: web, mobile and desktop
Core stack: Angular, React, Node.js, PostgreSQL and SQL Server
AI and LLM: RAG, AI agents, LangChain, LangGraph, OpenAI API and Ollama
Architecture: offline-first sync, scheduled jobs, integrations
Career: software development since 2017
Based in Catania, Italy — available for fully remote roles
// Work experience since 2017
Full-stack Developer @Software house
May 2022 — nowCatania, Italy
- Owned the company’s multi-tenant patient booking product from analysis to release: 24 centres, 9,800+ registered users, 12,400+ bookings.
- Proposed and carried out moving the centre-to-cloud synchronisation out of SQL Server stored procedures into Node.js, ending the redundant exam-row copies the procedures kept writing (80+ million, down to about 85,000): disk writes fell from ~575/s to 1–3/s, write latency from 150–600 ms to under 9 ms.
- Shipped language-model features into products in service: a LangGraph agent in Python and FastAPI that books, reschedules and cancels examinations over phone and messaging and hands over to a person outside its domain, a retrieval-augmented chat over company documents, and schema-constrained extraction that sorts order email into nine intents.
- Built DICOM viewers in React and Electron, for the browser and the desktop, with 2D/3D reconstruction, measurements, multi-monitor reading rooms and PACS access over DICOMweb, plus the reporting and central monitoring of installations across multiple healthcare sites.
- Built Node.js and Express REST services on PostgreSQL and SQL Server: an internal OCR service with OAuth2 client credentials, per-client rate limits and synchronous, streaming or asynchronous modes; scheduled jobs for database maintenance and notifications; Windows installers that configure IIS.
- React
- Angular
- Ionic
- Electron
- Node.js
- Express
- Python
- FastAPI
- OpenAI API
- Mistral AI
- LangGraph
- RAG
- AI agents
- PostgreSQL
- SQL Server
Software Developer @bp&a
Oct 2020 — Apr 2022Acireale, Italy
- Built the Angular dashboard for a bank’s mortgage payoffs and the back end for decommissioning electronic toll devices.
- Built a barcode-driven mail flow: scanning a letter sent its recipient’s details to the back end, and Puppeteer entered them into the postal service’s official web form, with no manual retyping.
- Angular
- Ionic
- .NET Core
- C#
- Node.js
- Puppeteer
- PostgreSQL
- CI/CD
Frontend & Mobile Developer @Urban Media Agency
Sep 2017 — Dec 2020Catania, Italy
- Built Angular web apps, UI component libraries and Ionic mobile apps for the agency’s clients, from first screen to store build.
- Worked with designers and marketing teams on several client projects in parallel, turning mock-ups into responsive, cross-browser interfaces against fixed go-live dates.
- Angular
- Ionic
- TypeScript
- REST API
- HTML5
- CSS3
Frontend Developer @Bonsei
Jan 2017 — Mar 2018Motta Sant’Anastasia, Catania, Italy
- Built and customised WordPress sites and themes with HTML5, CSS3, JavaScript and PHP templates.
- Turned graphic layouts into responsive pages and kept content editable by non-technical staff.
- HTML5
- CSS3
- JavaScript
- WordPress
- PHP
- MySQL
I work across the full delivery path: user interfaces, APIs, relational data and the workflows that connect them.
My experience spans Angular, React, TypeScript and RxJS on the front end; Node.js, Express, FastAPI, .NET Core and C# on the back end; PostgreSQL, SQL Server and MySQL for data.
I have delivered web, mobile and desktop applications with Ionic and Electron, put into service with Docker and CI/CD pipelines or on Windows Server, and built multi-tenant booking platforms, offline-first synchronisation, scheduled jobs, third-party integrations, query optimisation and caching. More recently I have integrated language models into products already in service: a conversational booking agent, retrieval over company documents, schema-constrained extraction.
My domain experience includes healthcare, medical imaging and operational platforms, where accuracy, reliability and clear workflows are essential.
Scope: front end, back end and relational data
Platforms: web, mobile and desktop
Core stack: Angular, React, Node.js, PostgreSQL and SQL Server
AI and LLM: RAG, AI agents, LangChain, LangGraph, OpenAI API and Ollama
Architecture: offline-first sync, scheduled jobs, integrations
Career: software development since 2017
Based in Catania, Italy — available for fully remote roles
// Technical skills
Core
- Angular
- React
- TypeScript
- Electron
- Node.js
- Express
- OpenAI API
- PostgreSQL
- SQL Server
Also used 89
Frontend
- Angular SSR
- JavaScript
- RxJS
- HTML5
- CSS3
- Bootstrap/Sass
- Tailwind
- SurveyJS
Mobile & desktop
- Ionic
Backend & APIs
- Ruby on Rails
- Ruby
- Active Record
- Active Storage
- Solid Queue
- Solid Cache
- .NET Core
- C#
- Python
- FastAPI
- PHP
- WordPress
- REST APIs
- OAuth2
- JWT authentication
- RBAC
AI & LLM engineering
- AI agents
- Multi-agent orchestration
- Retrieval-augmented generation (RAG)
- GraphRAG
- Embeddings
- Vector & hybrid search
- Document chunking
- Reranking
- Function calling
- Structured model output
- Prompt engineering
- Intent classification
- Conversational AI
- Human-in-the-loop handover
- LLM evaluation
- OCR
AI models & tooling
- Anthropic API
- Mistral AI
- Ollama
- LangChain
- LangGraph
- LlamaIndex
- Hugging Face
- Model Context Protocol (MCP)
- LangSmith
- RAGAS
- pgvector
- Qdrant
- Chroma
Data
- MySQL
- SQLite
- TypeORM
- SQL query optimisation
- Indexing
- Caching
Cloud & delivery
- Docker
- IIS / Windows Server
- PowerShell
- Git
- CI/CD
- GitHub Actions
Testing & automation
- Vitest
- Playwright
- Minitest
- Puppeteer
- Robot Framework
- RobotJS
- RuboCop
- Brakeman
Architecture & integrations
- Multi-tenant architecture
- Scheduled processes
- Third-party API integrations
- OpenAPI
- JSON Schema
- Google APIs
- PDF generation
- Web Crypto API
- IndexedDB
Medical imaging
- DICOM
- DICOMweb
- Cornerstone.js
- VTK.js
- OHIF
- PACS integration
// Education & training
- Scientific high school diplomaLiceo Scientifico Albert Einstein · 2005–2010
- Computer Engineering studies (no degree)Università degli Studi di Catania · 2010–2013
- Course: Node.js & Express MicroservicesUdemy · 2021
- Course: Angular & Ionic Full-Stack DevelopmentUdemy · 2020
// Languages
- ItalianNative
- EnglishProfessional working proficiency: advanced written, conversational spoken
// How this site is built
This site is itself one of the projects: an Angular application with server-side rendering, prerendering and a quality pipeline that checks every build. Four notes describe how it is made.
- Portfolio architectureHow this site is built: structure, single sources, what is absent.
- SSR and prerenderingPrerendering, hydration, SSR-safe code and static hosting.
- Decisions and trade-offsEach choice with what it costs, plus the known limits.
- AccessibilityWhat is checked automatically, what by hand, what is not proven.