Inizia la sua carriera nei Rangers, club della natìa Glasgow, in cui gioca dal 2007 al 2012 collezionando 41 presenze e 2 gol. Nel gennaio 2012 passa in prestito semestrale al Blackpool, con cui gioca solo 7 partite. Dopo questo periodo, nell'estate seguente si trasferisce al Coventry City dove rimane per quattro anni, scendendo in campo per 162 volte. Nell'estate 2016 viene acquistato dallo Sheffield Utd dove, sotto la guida di Chris Wilder, nel successivo triennio contribuisce alla doppia promozione dalla Football League One alla Premier League.
Nazionale
Dopo varie presenze nelle nazionali giovanili scozzesi nel 2019 ha esordito in nazionale maggiore.