Dopo aver cominciato la sua carriera nel Ajax Cape Town, nel 2011 si trasferisce all'Ajax, di cui la squadra sudafricana è una filiale. Fa il suo esordio ufficiale il 14 agosto seguente in Ajax-Heerenveen 5-1 subentrando al minuto '59 a Christian Eriksen.
Il 2 maggio 2012 vince la sua prima Eredivisie con l'Ajax concludendo la stagione con 10 presenze totali.
Debutta nella nuova stagione il 12 agosto giocando da titolare la prima partita di campionato contro l'AZ Alkmaar (2-2).
Il 25 agosto seguente, alla sua 9 presenza nel campionato olandese, nel 5-0 contro il NAC Breda segna il gol del 4-0 al 49'. Segna una doppietta il 2 settembre nel 2-2 contro l'Heerenveen. In questa partita viene anche espulso. Il 12 marzo 2013 rinnova il proprio contratto con i lancieri fino al 30 giugno 2015.
Il 5 maggio seguente vince la sua seconda Eredivisie consecutiva.
Nel giugno 2017, dopo più di 100 partite giocate con i lancieri, si trasferisce al Vitesse. In due anni mette insieme 83 presenze e 3 gol in tutto. Il 25 agosto 2019 firma un contratto biennale con l'Al-Jazira.