Leonardo Bonalumi

Growth & data · marketing · products with AI · RCS MediaGroup

I kill the recurring question.

Three years of growth experiments on acquisition and retention, at the traffic volumes of two national titles. The lesson that stuck: an analysis is read once, a system keeps working. So I stopped delivering slides and started building the tools that answer the question without me in the room.

20+
internal tools & dashboards shipped
4
agent skills the whole team now works from
2
national titles as the traffic I work at

Selected work

Things that answer
without me.

Built inside RCS MediaGroup. Described by class of problem, never by internal detail — every demo below runs on invented data.

2025 – 2026 Live demo

Campaign Calendar Simulator

Marketing wanted to know what next quarter's promo calendar would do to subscriptions — before running it. So they got a calendar they can drag offers onto, with the forecast redrawing as they go.

  • Python
  • FastAPI
  • JavaScript
  • Object storage
  • +1

2026

Agent Skills the Team Runs On

I wrote four skills that teach a coding agent how we work — our dashboard conventions, our repo rules, our analytics setup. The whole team builds from them now, and the BI licences are on their way out.

  • Claude Code
  • Markdown
  • Python
  • Git
  • +1

2026

Games KPI Cockpit

A ten-tab replacement for a beloved BI workbook that had become too slow to open. Same definitions, same numbers, none of the licence.

  • Python
  • FastAPI
  • React
  • Vite
  • +2

2026

Analytics Tracking Watchdog

Analytics tracking breaks silently — you find out three weeks later when a chart looks odd. This drives a real browser every night, reads the beacons, and complains before anyone else notices.

  • Python
  • Playwright
  • FastAPI
  • React
  • +3

2025 – 2026

Audience Segmentation Pipeline

Twenty-odd behavioural audiences, one config file, and a strict exclusion order so a reader lands in exactly one bucket. Adding a segment is a two-file change that either stays consistent or fails loudly.

  • Python
  • SQL
  • BigQuery
  • CDP sync

2025 – 2026

Content Performance Explorer

Which articles actually sell subscriptions — by section, topic, format, author, and hours spent on the homepage. Editorial asked weekly. Now they don't have to ask.

  • Python
  • FastAPI
  • React
  • Vite
  • +2

2025 – 2026

Acquisition KPI Overview

A Streamlit dashboard people relied on, rebuilt as a proper web app. One rule for the rewrite: the numbers were not allowed to move by a single decimal.

  • Python
  • FastAPI
  • React
  • Vite
  • +2

2025 – 2026

Subscriber Product Usage Dashboard

Subscribers who never open the product churn. This shows who is engaged, who is drifting, and how usage intensity is distributed — before the renewal date arrives.

  • Python
  • FastAPI
  • React
  • Vite
  • +2

2026

Editorial Event Validation Workbench

A daily quiz game needs thousands of verified historical events. An LLM drafts, an editor decides, and a state machine makes sure nothing reaches players before a human said yes.

  • Python
  • FastAPI
  • React
  • Vite
  • +4

2026

Word Game Calendar Builder

Three words a day, forever, never repeating, and themed for special dates. A five-step wizard turns a dictionary into a publishable calendar — with the LLM bill shown live while it runs.

  • Python
  • FastAPI
  • React
  • Vite
  • +5

Approach

Four opinions I keep
getting away with.

  1. 01

    I start in the marketing meeting

    The brief is never a spec. I sit with the team that has the question, work out what they actually need to decide, turn that into an analysis and a build plan, then make the thing.

  2. 02

    A system, not an analysis

    A number in a chat message answers today. A tool that recomputes it answers every day after that, including the days I am on holiday. Same effort, very different half-life.

  3. 03

    Stay in my lane, encode everyone else’s

    Infrastructure and deployment belong to our data engineers. Their conventions live in the skills I write, so what I hand over is deploy-ready without me guessing at their job.

  4. 04

    Migrate the stack, freeze the logic

    When I rewrite something, the numbers must not move. Same definitions, reconciled against the old tool, then the UI gets to be better.

Got a question
that keeps coming back?

Happy to talk about warehouses, dashboards nobody opens, and how to tell the difference before building one.