AI engineer & full-stack developer, based in Italy.
Agentic systems that ship, not demos.
Right now that's adobe-indesign-mcp — full InDesign DOM control from any AI agent. Also deep into WiFi CSI sensing: presence, breathing, heartbeat from plain radio signals.
typescript python react javascript java c fastapi supabase vite vhdl arduino html css git linux
adobe-indesign-mcp · typescript, uxp
The most comprehensive MCP server for Adobe InDesign — 183 tools,
31 handlers, full DOM control from any AI agent.
IF_I_WIFI · python, esp32
WiFi CSI sensing: presence, breathing, heartbeat, sleep from radio
signals. Honest fork of RuView with the fake ML removed.
thesis-companion · typescript, supabase
Socrate — conversational AI companion for thesis writing and
research management.
pubmed-vuln-research · python, rag
Automated vulnerability research and reporting over PubMed data —
agentic RAG pipeline from CVE to report.
university
IS26-AM54 · java, maven
Distributed multiplayer game built with Socket, RMI, and JavaFX.
Hexagonal-Grid-Pathfinding-System · c
A* pathfinding on hexagonal grids — search algorithms for tile-based navigation.
PF-Reti-Logiche-Polimi-2026 · vhdl
Hardware design — VHDL at Politecnico di Milano.
hackathons
deviate-starthack · typescript
Studyond — built at StartHack 2026.
Every graphic here is generated, not embedded from anyone else's server.
ascii.svg is a photo pushed through a character ramp; the stat graphics and
these section headings are drawn by a scheduled action
straight from the GitHub GraphQL API, once a day, committing only what changed.
They animate with SMIL inside the SVG, because GitHub strips scripts from
READMEs — and since nothing loads from a third party, nothing here can
rate-limit or go dark. The headings are SVGs for the same reason: GitHub also
strips CSS, so an image is the only way to put this page's own typeface on them.
The typeface is JetBrains Mono, subset to just the characters
each graphic draws and inlined as base64. That isn't only for looks: the
portrait's grid assumes an advance width of exactly 0.600 em, and a viewer whose
default monospace is narrower would otherwise see it squeezed.
Language totals cover public repositories only. year.svg uses the portrait's
character ramp: : + # @, quiet to loud.