I'm a software engineer from Italy. I write code, books and articles, and I have been speaking at programming conferences since 2000.
These days I mostly work on AI-assisted development: Spec-Driven Development, agent skills for Claude Code and the way AI is changing the job of the programmer.
👦 Check out my website · 🏆 My GitHub Resume · 🙋🏻 Ask a question (you can ask anything, but I might choose not to reply 😛)
- ✍️ Writing CleanSpec, a book on Spec-Driven Development
- 🎤 Talking about how Spec-Driven Development is changing the way we program
- 🤖 Building agent skills for Claude Code, the latest is ScamCheck
- 📰 Writing for Codemotion Magazine
Agent skills I have created, ready to be used with Claude and other AI agents
Skills for real work: security, web optimization, recruiting
| Skill | Description |
|---|---|
| ScamCheck | Skill per Claude Code che valuta se un sito è una probabile truffa (falsi negozi, phishing, finti investimenti o crypto, finti servizi) e produce un verdetto motivato, anche come report PDF in qualsiasi lingua |
| SiteScan | Skill per l'analisi di un sito: riconosce CMS, framework e stack del server, controlla gli header di sicurezza e i percorsi esposti in robots.txt, e produce un report dei rischi |
| AgentReady | Skill per valutare quanto un sito è pronto per gli AI agent: 30 controlli, punteggio da 0 a 5 e generazione di robots.txt, llms.txt, file .well-known/ e regole server |
| Static Site Optimizer | Skill per l'analisi e l'ottimizzazione di siti statici: performance, SEO, accessibilità e best practice |
| CV-Review | Skill per Claude Code che valuta curriculum vitae in modo confrontabile, tracciabile e non discriminatorio |
Skills for satire, comedy and leisure
| Skill | Description |
|---|---|
| LinkedInCringe | Tre skill per il cringe su LinkedIn: linkedin-cringe scrive storie cringe, linkedin-cringe-meter (il Cringiometro) dà a un post un voto di cringe da 1 a 10 e genera un'immagine da usare come risposta, linkedin-cringe-analytics analizza i commenti per capire chi ci ha creduto e chi ha colto lo scherzo |
| PitchCringe | Skill per Claude Code che genera pitch deck di startup cringe in formato Marp |
| StandUpComedy | Skill per la scrittura di monologhi di Stand Up Comedy |
| Scrittura Comica | Skill per la scrittura di battute e monologhi comici, basata sulle tecniche del corso di Federico Basso |
| FantaSkill | Skill per Claude Code che prepara l'asta del fantacalcio partendo da dati reali: genera un Excel da tenere aperto durante l'asta e un dossier con i consigli |
My code repositories with at least 5 stars. Books, courses and skills have their own sections.
| Project | Description | Stars |
|---|---|---|
| Owner | Java library that removes the boilerplate code of properties based configuration | |
| MultiRipper | Multi-purpose file ripper written in Harbour | |
| HTML2POP3 | Virtual POP3, SMTP and NNTP server | |
| SockRedirector | Redirects TCP connections from one IP address and port to another | |
| HarbourJWT | JWT implementation for Harbour | |
| PassiveCooker | Arduino project for the Barilla Passive Cooker | |
| Cheshire Cat API Client Java | Java client for the Cheshire Cat AI framework | |
| FastTail | Ultra-fast multi-stream log monitor and tail viewer written in Rust |
| Title | Description |
|---|---|
| CleanSpec | A book on Spec-Driven Development: how to write specifications that AI coding agents can turn into correct software |
| Path To Senior Developer | Il mio libro di riflessioni che ogni sviluppatore dovrebbe porsi per passare da Junior a Senior |
| Guida Pratica all'uso delle AI | Libro in italiano per capire come usare le intelligenze artificiali nella vita di tutti i giorni |
Material I have produced over time while studying various technologies. It can be used as a support for course creation or as personal study material. Most of it is in Italian.
| Course | Description |
|---|---|
| WebDesign | Materiale in italiano del mio corso di WebDesign |
| WebDesign2 | Materiale in italiano del mio corso avanzato di WebDesign |
| HTML | Materiale in italiano del mio corso HTML5 - Slide ed esempi |
| CSS | Materiale in italiano del mio corso CSS3 - Slide ed esempi |
| WCAG | Materiale in italiano del mio corso WCAG - Slide ed esempi |
| Introduzione alla AI | Materiale in italiano del mio corso sull'intelligenza artificiale - Slide |
| Introduzione alla UX | Materiale in italiano del mio corso di UX Design - Slide, domande di autovalutazione |
| SASS | Materiale in italiano propedeutico alla realizzazione di corsi SASS - Slide ed esempi |
| Introduzione a Javascript | Materiale in italiano propedeutico alla realizzazione di corsi Javascript - Slide ed esempi |
| jQuery | Materiale in italiano propedeutico alla realizzazione di corsi jQuery - Slide ed esempi |
| HTMX | in preparazione Materiale in italiano propedeutico del mio corso HTMX - Slide ed esempi |
| Scrittura Comica | Appunti in italiano del corso di scrittura comica di Federico Basso - Slide |
Material too short to be used for a course
| Slides | Description |
|---|---|
| Programming Languages Of Tomorrow | 2024 and Beyond: The Programming Languages of Tomorrow |
| Concetti di base della Reputation Economy | Concetti di base della Reputation Economy: cos'è e perché dovremmo tenerne conto - Slide |
| Concetti Reputazione Digitale | Concetti di base della Reputation digitale: quanto conta la nostra reputazione? - Slide |
| Come fare un rimprovero | Come fare un rimprovero? Impariamo da José Mourinho - Slide |
| Online IDE | Alternative a Codespaces per l'edit di progetti su GitHub - Slide |
| AI Generation | Cosa possono fare per noi le attuali AI - Slide |
All my talks: every event I attended and the material I presented, since 2000
All my articles for Codemotion Magazine, translated into English for Daily.DEV
Read the latest articles
- The end of the prompt era: why the future of AI development belongs to those who write specs (SDD)
- HTTP QUERY: the method that was missing between GET and POST
- De Crescenzo’s choice
- Is the human the bug or the feature of AI development?
- AI Predicts Music Contest Winner: Reality Disagrees
- The Engineering of the Possible: Beyond the “Best Practices” Dogma
- What if we were all becoming Borg? When AI becomes assimilation in software development
- The Illusion of Speed in the AI Era
- A Great Programmer Removes, Doesn’t Add
- Fundraising has become the end for startups, not the means to grow
- The world of programming has changed and with it the way to become a programmer
- Why Tech Startups Are Doomed to Die
- What if the weak link in programming is the programmer themself?
- The strength of admitting you don’t know
- How to tell if you’ve got what it takes: let’s do a code review
- Losing a dev means losing a treasure
- From Junior to Senior Developer with ChatGPT
- A Higher Salary Alone Is Not Enough to Motivate Change
- Programmers as the New Mercenaries: The Evolution of Work in the IT Sector
- Adopting New Frameworks Could Jeopardize Your Project
Languages I have tried out in my boilerplate collection, a set of minimal starting projects






