Воспитанник клуба «Броммапойкарна». 30 марта 2014 года в матче против клуба «Кальмар» (1:2), дебютировал в составе родного клуба в чемпионате Швеции (Аллсвенскан)[2]. В своём дебютном сезоне в чемпионате сыграл 20 игр. В декабре 2016 года продлил контракт с клубом на один год[3].
13 июля 2019 года подписал четырёхлетний контракт с «Рубином» из Казани[4]. 25 сентября в матче кубка России на стадии 1/16 финала против «Химок», отыграл весь 1-й тайм, но в перерыве был заменён на Олега Данченко[5].
21 июля 2021 года перешел в «Селтик», подписав четырёхлетний контракт[6]. Сумма трансфера составила 4,3 млн[7].