Arrivato nelle giovanili dell'Internacional di Porto Alegre a soli dodici anni[3], esordisce giovanissimo nel massimo campionato brasiliano.[4]
Il suo cartellino è gestito dal fondo Doyen.[2] Dopo essere stato notato per le sue prestazioni durante il Mondiale Under-17[4], nel gennaio 2016 viene acquistato dalla Juventus che lo gira subito in prestito semestrale al Sassuolo.[5] Con la formazione emiliana partecipa al campionato Primavera e alla Viareggio Cup.
Durante il calciomercato estivo del 2017 la Juventus decise di cederlo nuovamente al Sassuolo, sempre a titolo di prestito.[7]
Esordì con la squadra neroverde in Serie A (oltre che tra i professionisti) il 5 novembre 2017 nella gara che il Sassuolo perse per 2-0 contro il Milan in casa.[8]
Il 25 febbraio 2018 giocò la sua prima gara da titolare con i neroverdi nella sconfitta in casa per 3-0 contro la Lazio.[9][10]
Terminata la prima stagione al Sassuolo, il 17 luglio 2018 viene ufficializzato il rinnovo del prestito per un'altra stagione[11]. Il 19 agostoRoberto De Zerbi lo schiera titolare in Sassuolo-Inter, prima gara della Serie A 2018-2019[12]. Il 7 aprile 2019 segna il primo gol nella massima categoria nella partita in casa della Lazio, pareggiata per 2-2. Il 30 Giugno 2019 viene riscattato a titolo definitivo dal Sassuolo.[13]
Dal 2019-20 al 2022-23 diventa titolare fisso della fascia sinistra del Sassuolo, distinguendosi per le sue prestazioni di solidità difensive.[14]
Wolfsburg
Il 5 agosto 2023, dopo 6 stagioni in neroverde, si trasferisce al Wolfsburg, militante in massima serie tedesca, per 6 milioni di euro più 2 di bonus.[15][16][17] Fa il suo esordio con la nuova maglia il 13 agosto in Coppa di Germania, nella gara vinta 6-0 in casa del TuS Makkabi. Il 2 settembre successivo, contro l'Hoffenheim, debutta in Bundesliga. Il 25 novembre 2023 segna il suo primo gol con il Wolfsburg, contribuendo in maniera decisiva alla vittoria interna (2-1) in campionato contro il Lipsia.