Nato a Fano il 23 aprile 1993, inizia la sua carriera nella categoria 125 del campionato Italiano Velocità fra il 2008 e il 2010, giungendo 14° nel 2008, 2° nel 2009 e 3° nel 2010. Nel frattempo esordisce nel motomondiale nel 2009, correndo nella classe 125 i Gran Premi di Italia, Repubblica Ceca e San Marino in qualità di wildcard a bordo di un’Aprilia, senza ottenere punti. Nel 2010 corre i Gran Premi di Italia, Repubblica Ceca, San Marino e Portogallo sempre come wildcard e ottenendo tre punti. Nel 2011 corre nel team Italia FMI con una Aprilia RSA 125, con compagno di squadra Luigi Morciano. Ottiene come miglior risultato un decimo posto in Giappone e termina la stagione al 25° posto con 12 punti. In questa stagione è costretto a saltare il Gran Premio del Portogallo per infortunio.
Nel 2012 rimane nello stesso team, correndo nella nuova classe Moto3 alla guida di una FTR M312; il compagno di squadra è Romano Fenati. Nel GP del Giappone arriva in terza posizione, realizzando il suo primo podio nel motomondiale. Conclude la stagione al 18° posto con 45 punti. Nel 2013 passa al team La Fonte Tascaracing che gli affida una FTR M313;il compagno di squadra è Hyuga Watanabe. Ottiene come miglior risultato un dodicesimo posto in Repubblica Ceca e termina la stagione al 26° posto con 6 punti. In questa stagione è costretto a saltare il Gran Premio della Malesia, Australia, Giappone e Comunità Valenciana per la frattura del polso destro rimediata nelle quali che del GP della Malesia. Nel 2014 passa al team CIP, andando a pilotare una Mahindra MGP3O; il compagno di squadra è Bryan Schouten. Ottiene come miglior risultato un settimo posto in Italia e termina la stagione al 19° posto con 20 punti. Nel 2015 passa al team Outox Reset Drink, alla guida di una Mahindra; il compagno di squadra è Darryn Binder.
Per il 2016 esordisce con Tasca Racing come Rookie nella categoria Moto2 e correrà fino alla gara del Mugello come unico pilota con il telaio Kalex, venendo sostituito a partire dal GP della Catalunya con il giovane rider australiano Remy Gardner.
Nel 2012 rimane nello stesso team, correndo nella nuova classe Moto3 alla guida di una FTR M312; il compagno di squadra è Romano Fenati. Nel GP del Giappone arriva in terza posizione, realizzando il suo primo podio nel motomondiale. Conclude la stagione al 18° posto con 45 punti. Nel 2013 passa al team La Fonte Tascaracing che gli affida una FTR M313;il compagno di squadra è Hyuga Watanabe. Ottiene come miglior risultato un dodicesimo posto in Repubblica Ceca e termina la stagione al 26° posto con 6 punti. In questa stagione è costretto a saltare il Gran Premio della Malesia, Australia, Giappone e Comunità Valenciana per la frattura del polso destro rimediata nelle quali che del GP della Malesia. Nel 2014 passa al team CIP, andando a pilotare una Mahindra MGP3O; il compagno di squadra è Bryan Schouten. Ottiene come miglior risultato un settimo posto in Italia e termina la stagione al 19° posto con 20 punti. Nel 2015 passa al team Outox Reset Drink, alla guida di una Mahindra; il compagno di squadra è Darryn Binder.
Per il 2016 esordisce con Tasca Racing come Rookie nella categoria Moto2 e correrà fino alla gara del Mugello come unico pilota con il telaio Kalex, venendo sostituito a partire dal GP della Catalunya con il giovane rider australiano Remy Gardner.