Muove i suoi primi passi nel mondo del motociclismo partecipando alle varie categorie del Campionato italiano velocità. Nel 2015, in sella ad una Yamaha YZF-R6 chiude trentunesimo nel campionato italiano Supersport, nella stessa stagione si classifica diciassettesimo nel FIM CEV Moto2. Nel 2016 è pilota titolare nel CEV Moto2 dove, in sella ad una Tech 3, si classifica al tredicesimo posto. Migliora gradualmente le sue prestazioni, in particolare nella stagione antecedente il suo debutto internazionale in sella ad una Suzuki GSX-R1000 nelle categorie Superstock e Superbike.[1] Viene infatti chiamato a disputare l'edizione 2017 della Superstock 1000 FIM Cup con il team RSV Phoenix Suzuki, col quale disputa anche alcune gare nel CIV. A causa di alcuni parametri del regolamento, deve posticipare il proprio debutto a stagione in corso.[1] L'esordio avviene in occasione del Gran Premio di Misano, gara conclusasi con un ritiro. Termina la stagione disputando le ultime tre gare in calendario come pilota sostitutivo del Team Trasimeno in sella ad una Yamaha YZF-R1. Non ottiene punti validi per la classifica nella FIM Cup mentre nel campionato Italiano è venticinquesimo con sei punti.
Nel 2018 è pilota titolare nell'ultima edizione della Superstock 1000. Guida l'unica Kawasaki ZX-10R messa in pista dal team Pedercini Kawasaki Racing. Disputa una stagione regolare portando a termine tutte le otto gare in calendario ed ottenendo punti in ognuna di esse. Termina la stagione, migliore tra i piloti Kawasaki, all'ottavo posto con quarantotto punti ottenuti.[2] Conclude la stagione disputando le ultime due gare del mondiale Superbike con Pedercini, in sostituzione del titolare Yonny Hernández.[3] Raccoglie cinque punti che gli consentono di chiudere al venticinquesimo posto in classifica piloti.
Inizia la stagione 2019 disputando la gara inaugurale del mondiale Supersport a Phillip Island in sella ad una Honda CBR600RR del team Gemar - Ciociaria Corse. Chiude la gara con un ritiro, per poi venir sostituito a partire dalla seconda gara di campionato da Christian Stange. In questa stagione inoltre, fa il suo debutto nel motomondiale partecipando al Gran Premio delle Americhe in sella ad una MV Agusta F2 del team MV AgustaIdealavoro Forward in sostituzione dell'infortunato Stefano Manzi. Porta a termine l'evento classificandosi al ventunesimo posto.[4] Corre anche in Aragona in sostituzione dell'infortunato Mattia Pasini sulla Kalex del team Tasca Racing, non ottenendo punti iridati. Torna nel mondiale Supersport in occasione del Gran Premio di Imola in sella alla Yamaha YZF-R6 del team Toth.[5] Disputa un altro Gran Premio in Portogallo andando a sostituire l'infortunato Hannes Soomer presso il team MPM Wilsport Racedays, ottiene il tredicesimo tempo nelle qualifiche ufficiali.[6] Per quanto concerne le motociclette derivate dalla serie, chiude la stagione al trentesimo posto con quattro punti ottenuti. Nel 2020 disputa la prima parte di stagione nel campionato italiano Superbike con il Berclaz Racing Team. Ottiene otto punti ed il diciassettesimo posto in classifica.
Nel 2021 passa al Bmax Racing in sella ad una BMW M1000RR. Disputa il Gran Premio di Portimão nel mondiale Superbike in qualità di wild card senza ottenere punti;[7] nel campionato Italiano si classifica nono, ottenendo un podio. Nel 2022, con lo stesso team della stagione precedente, disputa il Gran Premio d'Aragona, il Gran Premio di Assen e il Gran premio di Misano nel mondiale Superbike sfiorando in un paio di occasioni la zona punti.[8] Nel 2023 è iscritto a sette Gran premi del mondiale Superbike con il team Bmax. Porta a termine dodici prove pur senza ottenere punti.[9]