Roberts was born in Durban, South Africa where he attended Durban Preparatory High School and then Michaelhouse.[1] After school, having failed to get an academy or development contract with a South African provincial team, he moved to Colwyn Bay, north Wales, and joined RGC 1404 in mid-season. He returned to South Africa in the summer, where he trained and played with the Sharks at under-19 level. When no contract was offered, he began studying at Stellenbosch University in Cape Town.[2]
In 2017 he was invited to join Rainey Old Boys in Magherafelt, County Londonderry, after their director of rugby, Brian Smyth, received a highlights video from a South African contact.[2] He helped the team get promoted to division 2A of the All Ireland League in 2018-19. His impressive club performances led to his call up to the Ulster squad as injury cover at hooker. He was named in the side for Round of the 2020–21 Pro14 against Edinburgh.[3] He made his Ulster debut in this match, coming on as a replacement. [4] He was selected for his second appearance against Connacht on the 27th December 2020. He came on in the 68th minute for John Andrew.[5] He signed a one-year professional contract in April 2021.[6]
Roberts was called up to play for Wales in the 2021 Autumn internationals, having qualified through his paternal grandmother, who was from Llandysul.[7] To remain available to play for Wales, he left Ulster and joined Welsh side Dragons RFC on a long-term contract at the end of the 2021-22 season.[8]
Roberts went on to win five caps for Wales before announcing his retirement from rugby in August 2024 due to a back injury.[9][10]