Career as a coach
| Period | Team | Country | Position | |
|---|---|---|---|---|
| 07/2026 - 06/2027 | ![]() | Oxford United | Ass. Coach | |
| 07/2026 - 09/2026 | ![]() | Wales U18 | Manager | |
| 01/2026 - 06/2026 | ![]() | Wales U19 | Manager | |
| 07/2025 - 12/2025 | ![]() | Wales U17 | Manager | |
| 04/2025 - 06/2025 | ![]() | Cardiff City | Ass. Coach | |
| 07/2024 - 06/2025 | ![]() | Wales U19 | Manager |
National teams managed
| Season | Team | Position | |
|---|---|---|---|
| U19 EURO 2026 Wales | Wales U19 | Manager | |
| U19 Friendlies 2026 | Wales U19 | Manager | |
| U18 Friendlies 2026 | Wales U18 | Manager | |
| U17 EURO Qualifiers 2025/2026 Round 1 | Wales U17 | Manager | |
| U17 EURO Qualifiers 2025/2026 2. round B | Wales U17 | Manager | |
| U19 Friendlies 2025 | Wales U19 | Manager | |
| U17 Friendlies 2025 | Wales U17 | Manager | |
| U19 EURO Qualifiers 2024/2025 | Wales U19 | Manager | |
| U19 Friendlies 2024 | Wales U19 | Manager |
Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2022 - 06/2023 | ![]() | AFC Wimbledon | Defence | 2 | |
| 10/2020 - 06/2022 | ![]() | Charlton Athletic | Defence | 2 | |
| 07/2012 - 10/2020 | ![]() | Reading FC | Defence | 2 | |
| 08/2019 - 09/2019 | ![]() | Reading FC U21 | Defence | ||
| 08/2018 - 08/2018 | ![]() | Reading FC U21 | Defence | ||
| 03/2009 - 07/2012 | ![]() | Nottingham Forest | Defence | 16 | |
| 07/2008 - 03/2009 | ![]() | Tottenham Hotspur | Defence | 16 | |
| 01/2008 - 06/2008 | ![]() | Tottenham Hotspur | Defence | 44 | |
| 08/2006 - 12/2007 | ![]() | Cardiff City | Defence | 44 | |
| 07/2006 - 06/2007 | ![]() | Cardiff City U18 | Defence |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League | 7 | 6 | 1 | 1 | 513 | - | - | - | - | - | - | » All matches |
| Premier League | 25 | 23 | 2 | 4 | 2.000 | - | - | - | 1 | - | - | » All matches | |
| Championship | 429 | 408 | 21 | 18 | 36.760 | 4 | - | 7 | 55 | 1 | - | » All matches | |
| FA Cup | 27 | 22 | 5 | 1 | 2.064 | - | - | 3 | 4 | - | - | » All matches | |
| League Cup | 27 | 24 | 3 | 1 | 2.396 | 2 | - | 1 | 1 | - | - | » All matches | |
| League One | 54 | 48 | 6 | 4 | 4.463 | 1 | - | 3 | 8 | - | - | » All matches | |
| League Two | 31 | 26 | 5 | 2 | 2.374 | - | - | - | 3 | - | 1 | » All matches | |
| EFL Trophy | 4 | 4 | - | - | 390 | - | - | - | - | - | - | » All matches | |
| Playoffs | 7 | 7 | - | - | 660 | - | - | - | 3 | - | - | » All matches | |
| Total | 611 | 568 | 43 | 31 | 51.620 | 7 | - | - | 75 | 1 | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
| U21 Premier League 2 Div. 2 | 4 | 4 | - | 1 | 316 | - | - | 2 | - | - | - | » All matches | |
| Total | 4 | 4 | - | 1 | 316 | - | - | 2 | - | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | WC Qualifiers Europe | 34 | 32 | 2 | 3 | 2.888 | - | - | 1 | 2 | - | - | » All matches |
![]() | Friendlies | 42 | 37 | 5 | 10 | 3.221 | - | - | - | 3 | - | - | » All matches |
![]() | EURO | 7 | 7 | - | - | 630 | - | - | 1 | 2 | - | - | » All matches |
![]() | EURO Qualifiers | 20 | 20 | - | - | 1.800 | - | - | - | 1 | - | 1 | » All matches |
![]() | Nations League A | 2 | 1 | 1 | - | 114 | - | - | - | - | - | - | » All matches |
![]() | Nations League B | 4 | 1 | 3 | - | 150 | - | - | - | - | - | - | » All matches |
| Total | 109 | 98 | 11 | 13 | 8.803 | - | - | 2 | 8 | - | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 Friendlies | 1 | 1 | - | - | 90 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 5 | 4 | 1 | - | 400 | - | - | - | - | - | - | » All matches |
| Total | 6 | 5 | 1 | - | 490 | - | - | - | - | - | - |














