Tras formarse en las filas inferiores del Bristol City F. C. y del Liverpool F. C., en 2018 se marchó en calidad de cedido al Doncaster Rovers F. C. Jugó en el club durante una temporada, jugando 38 partidos de liga y 11 de copa.
Al comenzar la temporada 2019-20 volvió al Liverpool, con el que hizo su debut el 25 de septiembre en un encuentro de la Copa de la Liga contra el Milton Keynes Dons FC tras sustituir a Alex Oxlade-Chamberlain en el minuto 82, partido que finalizó con un resultado de 0-2 a favor del conjunto de Liverpool.
[2] Finalizada la misma, y tras el descenso del equipo a League One, regresó a Liverpool[3] para posteriormente ser traspasado al Barnsley F. C.[4] Este equipo lo cedió al Oxford United F. C. en agosto de 2021.
[5] Posteriormente regresó a Barnsley, donde estuvo hasta la expiración de su contrato en la temporada 2023-24.
Entonces firmó por tres años con el Huddersfield Town A. F. C.[6]