Shaw began his career at West Ham United where he played at under-21 level under coach Ian Hendon, before leaving at the end of the 2013–14 season. He signed forms with Billericay Town ahead of the 2014–15 Isthmian League Premier Division season, and although featuring regularly in the early part of the season, was released after just over a month at the club. He was immediately signed by Isthmian League Premier Division rivals Dulwich Hamlet, making his debut for the club against Wingate & Finchley on 23 September 2014. He went on to play 38 times in all competitions, and he was rewarded with a call up to the England C team for their match against Republic of Ireland U21 on 1 June 2015, playing the full 90 minutes as England C won 2–1. His season with Dulwich Hamlet did not go unnoticed, and he was reunited with Hendon at Leyton Orient shortly before the start of the 2015–16 season following a successful trial period. He left at the end of the season after 25 appearances in the league. He made his Football League debut for Orient in the 2–0 home win over Barnet on 8 August 2015, the opening day of the season. On 8 November 2016, Shaw joined National League South side East Thurrock United. However, after only making one appearance in the Essex Senior Cup, Shaw joined National League side Woking ahead of their Surrey Senior Cup tie against Walton Casuals. On 19 November 2016, Shaw made his league debut for Woking in a 3–0 away victory over Maidstone United. On 23 May 2017, it was announced that Shaw would leave Woking upon the expiry of his current deal in June 2017. On 18 August 2017, Shaw re-joined Dulwich Hamlet on a short-term deal. He was released on 1 November 2017, after making twelve appearances in all competitions during his second spell at the club. On 10 November 2017, following his release from Dulwich Hamlet, Shaw returned to the National League to join Eastleigh. A day later, he went onto make his debut during Eastleigh's 2–0 away defeat against Dover Athletic, featuring for the full 90 minutes. On 22 February 2018, it was announced that Shaw's contract had been terminated after appearing six times in all competitions. On 24 March 2018, Shaw returned to the Isthmian League, to join Leatherhead. Three days later, he made his debut during their 1–1 draw with Dorking Wanderers, featuring for 87 minutes before being replaced by Tom Richards. Shaw went onto appear ten more times for the Surrey-based side before leaving in May 2018. On 3 May 2018, following the departure of player/manager Sammy Moore, Shaw followed suit and joined National League South side Concord Rangers along with the former AFC Wimbledon man. On 21 May 2019, Shaw signed for Chelmsford City. On 29 April 2020, Shaw announced his departure from the club.