Replicating what was done in the paper “LLMs Reproduce Human Purchase Intent via Semantic Similarity
Elicitation of Likert Ratings,” I created a synthetic target audience based on descriptions of
current
customers of the business I worked with.
We used the synthetic audience to make decisions about products and advertising based on click and purchase
intent (using the Likert Ratings approach from the paper) but also on open questions by clustering the
results of the embeddings.
It was useful for providing direction, but since it is a very niche product (and therefore the (synthetic)
audience is very specific), the results tend to be binary: if the product meets the needs of the target
(which we know), there is high intent, otherwise it is very low.
I expect this tool to become much more useful in a context with less niche and more mass market products, as
was essentially found in the paper (which compared the results with surveys of personal care products).
A wiser use of this tool could be to generate a large audience as combinations of parameters (age,
preferences, economic availability, etc.) and understand, based on the results, which parameters most
influence
intention and thus define an ICP.
Reworked the client’s newsletter strategy by replacing 3 weekly “Have you seen this?” emails with a single
automatic weekly recap, which over 4 weeks increased the average open rate by +3.7% and the average click
rate by +1.1% on a list of ~2,000 subscribers.
The recap is assembled by an n8n workflow: it pulls the
channel’s latest uploads, and writes them into an ActiveCampaign template that exposes HTML variables updated via HTTP calls, with
each video shown as a clickable thumbnail.
An n8n workflow that turns YouTube Live into a batch of Shorts.
In the first four weeks, generated ~32.000 views with ~8.800 engaged views and an average watch percentage
of ~60%, outperforming the client’s previous Shorts.
NOTE: the channel has ~5.000 subscribers with average video views ~300.
For every live, the automation ingests the recording, downloads the transcript, identifies multiple strong
moments, and produces ~10 Shorts.
Using Rendi, it cuts each segment, adds background
music, subtitles, and an outro with a CTA.
The Shorts are then uploaded to the channel as private so they can be reviewed before publishing.
NOTE: SaaS tools at $30/month failed to deliver the clip quality the client wanted, while this custom
workflow costs $4/month in LLM usage and is tailored to their needs.
Replaced a 1.000€/year course platform with a setup based on Google Drive and the client’s newsletter.
With the client, we defined a new funnel strategy: remove the old platform as an ineffective step and
deliver courses live on YouTube, with course materials stored in Drive and access gated by newsletter
signup. This change increased average live views from ~170 to ~400, boosted newsletter subscriptions,
encouraged users to move off the old platform, and made the newsletter a stronger entry point in the funnel.
To do that, a small Google Apps Script grants view access to the Drive folder as soon as someone subscribes:
ActiveCampaign sends a webhook with the email,
the script receives it and adds the user as a viewer, so access is automatic and needs no maintenance.
Helped a Swiss client clear a three month bookkeeping backlog in one month and stay current by automating
how bank, PayPal, and credit card data flows into their accounting spreadsheet.
The client initially asked for help “catching up” and we evaluated moving to a full accounting tool with
automatic bank connections, but given the complexity of Swiss bank integrations and the overhead of changing
systems, we agreed on a simpler automation that kept their spreadsheet and removed the repetitive work
instead of introducing a heavy new platform.
Increased engagement in client’s product Discord server by introducing a weekly, visual leaderboard that
created a recurring ritual within the community.
The lightweight Discord bot scans the server once a week, groups members by role, and generates a collage of
avatars.
It runs on fly.io as a tiny pay as you go container with built
in scheduling (to avoid complications should future changes be necessary) and is basically free to run at
this scale.
A simple dark theme for Obsidian, inspired by the design of this website. I focused on a clean layout with an emphasis on good contrast colors for better readability.
DietPlanner is a tool for proactive meal planning, designed to help users working toward body recomposition or similar nutrition goals. As often happens, I started this project to solve a personal problem: I wanted to plan my meals in advance, but most existing apps are built for real-time tracking. I also wanted something file over app like Obsidian, so I took this occasion to learn Electron.
After reading a lot of posts on HN, I realized it’s common to have a personal website to share projects, ideas, and updates about work and life. So, after years, I went back to HTML, CSS, and JS (feel free to laugh when you check the repo...). I considered using something more modern like React, but I wanted to keep things simple and not get lost in new tech.
My story was selected as one of the eight winners of the global UN competition "Sci-fAI Challenge". The competition involved writing a short story that explored the implications of AI on peace, security and warfare. As a winner, I was invited at the "Responsible AI in the Military domain Summit" (REAIM) to share my ideas on how artificial intelligence can shape peace-building and global security.
During this academic period, I focused on assignments. These included the simulation of cardiovascular pathologies, modeling the impact of treatments, and the analysis of the computational complexity of DNA sequencing algorithms. (You can find a detailed report for each project at the link.)
Final-year high school exam project developed with my friend: a fully functional RFID-based bike sharing system. It features a multilingual web platform (HTML, PHP, JS), a MySQL database, and a physical simulator built with Raspberry Pi, RFID reader, LEDs, LCD, and buttons inside a 3D-printed case. The system handles real-time user authentication, bike selection, rental tracking, and balance deduction. It was the first time I built a project that felt like it could become something real, a proof that building this kind of solution is more within reach than most people think. Indeed, just a year later bike-sharing systems appeared in our city!
In the one-day Fabrizio Rocca competition, I led a team to success in a challenge against 10 groups. We developed a Scratch-based game to teach middle school students Mendel’s genetics principles. Additionally, we created an Italian-language tutorial on Wikiversity to guide users in recreating the game.
During my second year of high school (16yo), my classmates and I spent the whole year playing Cookie Clicker on a shared account. Inspired by that, I built my own sports-themed idle game, packed with inside jokes and small memes. I rediscovered it in 2025 and laughed for ten minutes straight. It’s a perfect reminder that I’ve always built things just for the fun of it, but also because I’ve always loved challenging myself and learning by doing.
Together with a software engineer friend, we wanted to build an online tool for book layout and formatting. We knew the problems of the industry: the traditional process is slow, expensive, and handled by designers using complex tools. Our idea was to simplify it: make a tool even authors could use, and with enough depth to serve as a power-tool for designers too. We imagined template libraries, author profiles, and the ability to share layout presets. During market research we discovered two big and established competitors. Both were polished, had solved the hardest technical challenges, and used a one-time payment model: hard to compete with as a small team. Also one was built by someone teaching how to get rich selling kindles, the other was positioned as its rival. We shelved the idea, but got the point: sometimes good will is not enough.
To promote a friend's writing services, we considered launching a podcast. People listen to podcasts for entertainment, but need the illusion of usefulness. So, each episode tackled a deep, complex topic, made engaging through my friend’s experience. For the structure, we took inspiration from the Building a Second Brain Podcast: short, dense episodes, centered on a single topic. We designed a logo, recorded 3 episodes, and gathered feedback. But in the end, we realized that the time required for editing and publishing wasn’t worth the effort. Still, the process taught us a lot about the podcasting world (competitors, optimal episode length, branding challenges, how hard it is to monetize...), and about the real cost of time in a business.
For a few months, I worked on launching an Etsy shop with a graphic designer friend.
The plan was simple: sell printable
products.
We explored several directions but focused on quotes, where we saw clear space for improvement.
But we quickly hit a harsh wall: the Italian business regulations.
Beyond the percentage cut from each sale, just opening a business in Italy means facing a mandatory fixed
tax (IRPEF), around €2000 a year regardless of profit.
For a venture built around 2-3€ products, the math didn’t add up.
It was my first taste of how (Italian...) regulation can crush experimentation, and it validated what many
freelancers in Italy say: the state isn’t on your side.
NB: now I don't consider it a good business, but a good experiment for a 18 years old!
For four years, I played drums in Knurled Chicken Head (name's inspired by knobs), an original band based in Bolzano. It was my first dive into creative collaboration, where I learned to navigate group dynamics and creative disagreements. While we had energy and ideas, we lacked structure: our songwriting suffered from limited music theory knowledge, vocals were our weakest element, and we underestimated marketing focusing only on live shows. The breaking point came when trying to balance midnight rehearsals with 6am university commutes, but the deeper truth was realizing I didn't want to "become a musician when I grew up" ((as with mathematics) hauling gear at 2am after a gig lost its charm fast).