Nato e cresciuto a Palermo, acquisisce il diploma di maturità nel 1990 e si iscrive al corso di laurea in Matematica dell'Università di Palermo, non completando gli studi. Nel 2000 si trasferisce a Brescia, prendendo servizio presso la Segreteria di Presidenza della Corte d'Appello in qualità di Assistente Giudiziario.
Nel 2010 è stato il candidato Presidente per il Movimento 5 Stelle alle elezioni regionali in Lombardia.
Nel 2013 viene eletto Senatore per il Movimento 5 Stelle nella circoscrizione Lombardia. Nei primi tre mesi della legislatura svolge la funzione di Presidente del gruppo parlamentare M5S al Senato. Nel corso dei cinque anni del mandato parlamentare presta servizio nella 1^ Commissione permanente Affari Costituzionali del Senato, nella Giunta per le Elezioni e per le Immunità e nel Comitato parlamentare per la Sicurezza della Repubblica (Copasir). L'Associazione Openpolis, che monitora l'attività parlamentare degli eletti, gli riconosce un indice di produttività fra i più elevati.
Nel 2018 viene rieletto al Senato per il Movimento 5 Stelle ed assume il ruolo di Vicepresidente Vicario del gruppo parlamentare. Il 12 giugno diventa Sottosegretario di Stato alla Presidenza del Consiglio dei Ministri con delega all'Informazione e all'Editoria nel Governo Conte