Si avvicina al ciclismo all'età di 8 anni correndo tra i Giovanissimi della Anagni Cicli Nereggi.[1] Fra gli allievi ottiene 25 vittorie, otto nel 2016 e ben diciassette nel 2017, tra cui la prova a cronometro ai campionati italiani;[3][4] tra gli Juniores coglie invece diciassette successi, sette nel 2018 e dieci l'anno dopo,[5][6] tra cui la cronometro ai campionati del mondo di Innsbruck.[7]
Nel 2020 passa alla categoria Under-23 con i colori del Team Colpack Ballan:[8] con la nuova maglia fa sue tre corse, tra cui il Trofeo Città di San Vendemiano. Negli ultimi mesi dell'anno, in qualità di stagista alla Trek-Segafredo, partecipa alla Freccia del Brabante.[9] Nel 2021 passa definitivamente tra i professionisti con la medesima squadra, facendo il suo esordio, neanche ventenne, all'UAE Tour, gara del calendario World Tour.[10] In stagione si classifica terzo al Tour de Hongrie, gara a tappe di classe UCI 2.1[11], vincendo anche una tappa.
Inizia la stagione 2023 con un ottavo posto nella classifica generale del Tour Down Under, prima gara stagionale del World Tour.[12]. Il 28 febbraio 2023 viene reso noto, in concomitanza con la condanna del tribunale, che l'anno prima, il 21 giugno 2022, ha sparato con un fucile ad aria compressa e ucciso il gatto dell'ex Capitano reggente e Segretario di Stato per il turismo della repubblica di San MarinoFederico Pedini Amati. La cosa ha destato grande scalpore e polemiche, finendo sulle cronache di tutti i quotidiani nazionali, sportivi e non.[13][14][15] A seguito del gesto, viene condannato a pagare 4.000 euro di multa[16] e sospeso dalla Trek-Segafredo fino al 20 marzo, saltando così il Trofeo Laigueglia[17] che lo vedeva tra i favoriti.[18]
Il 28 aprile risolve il contratto che lo legava alla squadra statunitense.[19] Viene quindi ingaggiato dal team Bahrain Victorious, con il quale partecipa alla Vuelta come gregario a servizio dei suoi nuovi capitani, ma dove riesce a mettersi in luce terminando 18º in classifica finale. Corre il Tour of the Alps 2024 con i gradi di capitano e lo conclude al terzo posto.[20] Partecipa al suo primo Giro d'Italia con l'intenzione di fare classifica, ma già alla seconda tappa è vittima di una doppia foratura che gli fa perdere oltre 2 minuti.[21] Prosegue il resto del Giro aggiudicandosi il quinto posto finale, nonché la conquista della maglia bianca di miglior giovane.