Jules came through the Academy at Reading, and on 31 October 2015 was sent on loan to National League South club Hemel Hempstead Town. He made his debut for the club on 31 October, in a 6–2 victory at Gosport Borough. He made a further seven appearances for Dean Brennan's "Tudors", before he returned to the Madejski Stadium on 4 January 2016. He later said that the loan spell "toughened me up a bit". He signed an extension to his professional contract at Reading at the end of the 2015–16 season. On 2 December 2016, Jules joined Braintree Town on a month-long loan deal. He played in three National League matches during his time at Cressing Road, and also featured in two cup games. Back at Reading, he reported that he had been working closely with "Royals" head coach Jaap Stam, who told him to be more aggressive. On 27 January 2017, Jules joined Scottish Premiership club Motherwell on loan until the end of the 2016–17 season. He endured a difficult start to his time at Fir Park as he conceded a penalty in the 2–0 defeat at Celtic and scored an own goal in the 5–1 home defeat by Dundee that preceded manager Mark McGhee's departure from the club. He did though score the winning goal in a 2–1 victory at Kilmarnock on 4 March, in what was new manager Stephen Robinson's first game in charge. However, on 6 May, an error by Jules gifted Ross County a 1–0 win at Fir Park that sent the "Steelmen" into the relegation play-off zone with three matches left to play.
Shrewsbury Town
On 25 June 2017, Jules signed a two-year contract with League One club Shrewsbury Town. He scored in a pre-season friendly with Aston Villa at the New Meadow, though "Shrews" manager Paul Hurst said that "he's a player that we feel needs a lot of work". On 31 August 2017, Jules joined Gary Caldwell's League Two side Chesterfield on loan until 14 January 2018. He made his debut two days later in a 0–0 draw with Coventry City at the Proact Stadium. However he tore 90% of his hamstring during his sixth appearance for the "Spireites" on 26 September and was forced to return to Shrewsbury for a lengthy rehabilitation period. However he was unable to win a first-team place at Shrewsbury due to the team's good form and excellent defensive record. On 19 January 2018, he returned to League Two after joining Port Vale on loan until the end of the 2017–18 season. He began as the "Valiants" first-choice left-back, but struggled for form and was substituted after 51 minutes of his second appearance at Vale Park by manager Neil Aspin. On 21 September 2018, Jules returned to the National League on a three-month loan at Barnet after failing to figure in new Shrewsbury manager John Askey's first-team plans. Jules made five appearances for John Still's "Bees", the last of which came in a 4–2 FA Cup victory over Braintree Town on 20 October. Jules left Shrewsbury by mutual consent on 3 January 2019.
Macclesfield Town
On 28 January 2019, Jules signed a short-term deal with League Two relegation-threatened club Macclesfield Town. He went on to become an important part of the Macclesfield defence, featuring 14 times to help the "Silkmen" to avoid relegation at the end of the 2018–19 season. His stay at Moss Rose was extended by a further 12-months after manager Sol Campbell opted to take up an option on his contract.
Walsall
On 27 July 2019, Jules signed a contract of undisclosed-length with newly-relegated League two side Walsall after being signed for an undisclosed fee. Manager Darrell Clarke described him as "a young player we want to develop". He began the 2019–20 season in the starting eleven and filled in for an injured Cameron Pring at left-back. However he went almost three months from 19 October with only one league start, and was then taken off at half-time in a 3–1 defeat at Cheltenham Town on 11 January.
A central-defender, Jules describes himself as "fast and good on the ball" and has said that "I am quite quick and quite powerful, I have a half-decent left foot and I like to play a bit as well". A left-footed player, he can also fill in at left-back.