Comenzó su carrera en las inferiores del Swansea City en 2005 a los ocho años.
[1] Firmó su primer contrato profesional en julio de 2015.
[2] Debutó con el primer equipo del Swansea el 11 de agosto de 2018 ante el Preston North End en la EFL Championship.
[3] El 16 de octubre de 2020 se confirmó su fichaje por el Tottenham Hotspur F. C.[4] Debutó diez días después jugando los últimos instantes del triunfo por la mínima ante el Burnley F. C.[5] En dos temporadas en el conjunto londinense disputó 24 partidos, marchándose cedido en agosto de 2022 al Stade Rennais F. C.[6] En el equipo francés jugó 22 encuentros y en agosto de 2023 fue nuevamente prestado, esta vez al Leeds United F. C.[7] Durante la temporada participó en 50 partidos y al inicio de la siguiente regresó al club en propiedad.
[8] Es internacional absoluto con la selección de Gales desde el año 2019.