Ha frequentato fra il 1992 e il 2005 il dipartimento di Chimica e Chimica Industriale dell'Università di Pisa, dove si è laureato, ha conseguito un dottorato di ricerca ed è stato assegnista di ricerca[1]. In seguito è stato assegnista di ricerca per due anni presso il dipartimento di Farmacia[1].
Ha esordito nella narrativa nel 2007 con il giallo ambientato sulla costa toscana La briscola in cinque, pubblicato dalla casa editrice Sellerio, presso la quale ha poi pubblicato altri gialli[2] della serie poi divenuta nota come I romanzi del BarLume.
Nel 2012 ha scritto insieme a Roberto VaccaLa pillola del giorno prima, nel 2014 con il professor Dino Leporini dell’Università di Pisa Capra e Calcoli, e nel 2015 Buchi nella sabbia con protagonista il giornalista e poeta Ernesto Ragazzoni[3].
Nel 2017 è stato nominato membro onorario del CICAP[4].
Sposato con Samantha Bruzzone, ha scritto con lei alcuni racconti per ragazzi e due romanzi: Chi si ferma è perduto (2022) e La regina dei sentieri (2024).
Dodici. Un numero che mette d'accordo, Il Mulino, Bologna, 2024
Rigore di testa. Storie di pallone, paradossi, algoritmi: il calcio e i numeri come non li avevate mai immaginati, con Paolo Cintia, Giunti, Firenze, 2024
Libri per bambini e ragazzi
Leonardo e la marea, con Samantha Bruzzone, Laterza, 2015
Il Castello dalle Mille Botole. Favola per far restare svegli i bambini, Sellerio, Palermo, 2020
Chiusi fuori, con Samantha Bruzzone, Mondadori, 2022
La molla e il cellulare. Che differenza c'è tra una scoperta e un'invenzione?, con Samantha Bruzzone, Raffaello Cortina Editore, 2022
Perché studiare chimica (non) è difficile, Mondadori, 2023
Non c'è un cane, con Samantha Bruzzone, Mondadori, 2024
2018 Premio Asimov[9] con Le due teste del tiranno. Metodi matematici per la libertà, ex aequo con La tempesta in un bicchiere. Fisica nella vita quotidiana di Helen Czerski
2023 Premio Penna d'Oro della presidenza del Consiglio dei Ministri
^Marco Malvaldi - Rai Letteratura, su web.archive.org, 14 maggio 2018. URL consultato il 18 aprile 2020 (archiviato dall'url originale il 14 maggio 2018).