Cresciuto nei settori giovanili di Charlton e Chelsea, dopo aver vinto due Youth League con i Blues[4][5], il 15 luglio 2016 viene ceduto in prestito all'Huddersfield Town.[6][7] Compie il suo esordio professionistico il 6 agosto, nella partita di campionato vinta per 2-1 contro il Brentford, sostituendo al 78º minuto Jack Payne e segnando il gol del definitivo vantaggio un minuto dopo.[8] Dopo aver conquistato una storica promozione in Premier League, da cui i Terriers mancavano da ben 45 anni[9], il 4 luglio 2017 il prestito viene confermato per un'altra stagione[10]; il 3 gennaio 2018 ritorna al Chelsea.[11] Il 31 gennaio viene ceduto a titolo temporaneo al Derby County.[12]
Nel gennaio del 2019 si aggrega in prestito al Bristol City[13]. Al termine della stagione si aggrega a titolo definitivo al Bristol City, che lo acquista dal Chelsea[13].