Cresciuto nel settore giovanile del Norwich City, nel 2011 si trasferisce al Manchester City.[3] Il 6 giugno 2017 viene ceduto in prestito stagionale proprio ai Canarini, sua ex squadra, con cui inizia la carriera professionistica.[2]
Il 10 luglio 2018 passa a titolo definitivo al Southampton, con cui firma un quinquennale.[4][5]
Il 16 ottobre 2020 viene ceduto a titolo temporaneo allo Stoke City.[6]
Il 23 giugno successivo, viene ceduto a titolo definitivo al Norwich City,[7][8] per circa 6 milioni di sterline.
Nazionale
Dopo avere fatto la trafila delle selezioni giovanili dell'Inghilterra, nel marzo 2023 decide di rappresentare la Scozia, nazionale delle sue origini.[9] Il 25 del mese stesso esordisce con la selezione scozzese partendo titolare nella sfida vinta 3-0 contro Cipro.[10]