Dal 2011 al 2018 ha giocato nella massima serie svedese. Nel 2010 ha debuttato nella prima squadra del Nyköping. Nel 2011, all'età di 17 anni, è diventato un giocatore dell'Elfsborg.[1]
In seguito passa all'Houston Dynamo nel 2018, con i quali gioca saltuariamente durante la prima stagione, racimolando 16 presenze. Nella stagione successiva viene impiegato più spesso arrivando a collezionare 21 presenze in campionato. Il 12 marzo 2020 fa l'esordio in Champions League sostituendo a gara in corso DaMarcus Beasley durante il quarto di finale giocato contro il Tigres UANL.[2]
Il 10 gennaio 2023 passa all'Austin FC dove milita per una stagione, prima di lasciare il club a parametro zero e tornare in Svezia con la firma di un contratto triennale con l'Häcken.[3]