È un difensore centrale, forte fisicamente e caparbio in marcatura. Possiede un ottimo senso della posizione, è abile nell'impostare l'azione ed anche nel gioco aereo.[3]
Il 29 giugno 2018 viene ceduto a titolo definitivo all'Atalanta per 7 milioni di €.[4][5][6]
Prestito al Pescara
Il 14 gennaio del 2019 viene girato in prestito al Pescara.[7] Il 22 aprile 2019, a 19 anni, fa il suo esordio fra i professionisti disputando da titolare la partita di Serie B pareggiata 0-0 contro il Carpi. Realizza il suo primo gol l'11 maggio successivo, nella vittoria in casa per 2-0 contro la Salernitana.[8] Dopo le 3 presenze ottenute in campionato viene utilizzato da titolare nelle semifinali dei play-off perse contro il Verona.
La stagione successiva rimane a Pescara e viene impiegato con continuità dai tre allenatori che si susseguono in panchina; Zauri, Legrottaglie e Sottil, ottenendo 26 presenze e 1 gol in campionato. Viene impiegato anche nelle due partite dei play-out contro il Perugia, che permettono al Pescara di ottenere la salvezza.
Monza e prestito al Palermo
L'11 settembre 2020 l'Atalanta lo cede al Monza, neopromosso in Serie B, in prestito biennale con diritto di opzione e obbligo di riscatto al verificarsi di determinate condizioni.[9][10] Esordisce con il Monza il 29 settembre, nella gara di Coppa Italia contro la Triestina. Il 19 dicembre realizza una doppietta nella gara di campionato persa 3-2 in casa della sua ex squadra del Pescara.[11] A fine stagione il Palermo non lo riscatterà.
Il 19 agosto 2022 viene acquistato a titolo temporaneo con diritto di opzione dal Palermo, neopromossa in Serie B.[12][13] Esordisce nella sconfitta interna per 2-3 contro l’Ascoli, partita valida per la terza giornata.
Nell'estate 2023 rientra a Monza, ma solo il 28 gennaio 2024 fa il suo esordio in Serie A, subentrando a Matteo Pessina nella sfida vinta 1-0 contro il Sassuolo.[14]
Frosinone
Il 30 agosto 2024, viene ufficializzato l'acquisto a titolo definitivo da parte del Frosinone, con cui firma un contratto annuale con opzione.[15][16]
Nazionale
Compie tutta la trafila delle nazionali giovanili italiane.