McCallum started to play football professionally at the age of 15. He made his name at Isthmian League Division One club Dulwich Hamlet breaking through from the youth team to the senior team in October 2010. Over the course of the 2010–11 season, the striker scored a total of 15 goals in 7 games in the FA Youth Cup, including a hat-trick to produce a shock 3–2 victory over Football League One side Yeovil Town in the Second Round. The club faced Newcastle United in the Third Round but were ultimately thrashed 6–2. Although McCallum did not score himself, he was able to provide an assist for one of the consolation goals. His prolific goalscoring attracting the interest of 14 clubs, including Premier League giants Arsenal, Chelsea, Manchester United, Liverpool and West Ham United. The striker ultimately chose West Ham United, signing a professional contract with the Hammers on 31 January 2011, citing their reputation for bringing young players through as a key reason for his decision.
McCallum formed part of the Hammers Under-21 development squad during the 2011–12 season. He was loaned out to Rochdale on 31 January 2012. However, the striker returned to his parent club on 9 March 2012 without making a single appearance for the then League One strugglers. McCallum's first involvement with the West Ham United senior squad was on 28 August 2012 as an unused substitute in the Second Round of the Football League Cup, in which the Hammers beat Crewe Alexandra 2–0. On 7 January 2013 McCallum signed a new deal with West Ham United extending his contract with the club for a further two-and-a-half years. He was released by West Ham at the end of the 2014–15 season.
On 22 November 2012, McCallum joined League Two outfit AFC Wimbledon on an initial one-month loan deal. The striker made his debut for the Dons on 24 November 2012, in a 3–1 defeat by Morecambe, but was awarded a red card in the 82nd minute for a foul on Nick Fenton. AFC Wimbledon manager Neal Ardley sought to give the young striker a second chance to prove himself however, by extending his loan spell until 19 January 2013. Having served out his three match suspension, McCallum returned to AFC Wimbledon's starting eleven on 29 December 2012 in a 3–0 defeat by Oxford United. McCallum repaid Ardley's faith in him by scoring his first league goal the following game in a 3–2 away win over Torquay United on 1 January 2013. Having found his form, the striker went on to score his second on 5 January 2013 in a 1–0 away win over Rochdale, which took AFC Wimbledon out of the relegation zone. This was the first time the League Two strugglers had secured back to back wins in the 2012–13 season, with McCallum having been instrumental to the club's success in both games. On 12 January 2013, McCallum added to his tally by scoring a brace in a 2–2 draw with Wycombe Wanderers, totalling four goals in three games. In light of his prolific form, McCallum's loan spell was extended until 23 February 2013. On 11 February 2013, McCallum was named as League Two Player of the Month for January 2013 by Match magazine following his prolific run of 4 goals in 3 matches. On 22 February it was announced that McCallum had returned to parent club West Ham United a day earlier than planned after failing to shake off an ankle injury.
On 8 March 2013 McCallum joined Football League Two side Aldershot Town on a one-month loan deal.
McCallum signed a further loan deal in October 2013, joining Torquay United on a one-month loan. On 2 November 2013 in his third game for Torquay, McCallum scored his first two goals for the club, in a 3–1 away win against Bury. He scored his third and final goal in a 2–1 away defeat to Accrington Stanley on 23 November but soon after returned to West Ham prematurely after receiving a back injury. He had played six games in all competitions for Torquay scoring three goals.
On 30 January 2014, McCallum signed for Scottish Premiership side Heart of Midlothian (Hearts), on loan until the end of the season. He made his debut for Hearts on 2 February in a semi-final of the Scottish League Cup against Inverness Caledonian Thistle coming on as a 64th-minute substitute for Dylan McGowan. The game had finished 2–2 and in the penalty shootout required to decide a winner, McCallum missed his penalty as Inverness won 4–2 on penalties. With two games left in Hearts' season McCallum injured his ankle in training and returned to West Ham. He had played six games for Hearts without scoring.
On 15 January 2015, McCallum signed on-loan for the rest of the 2014–15 season for Portsmouth. He made his debut on 17 January in a 1–1 home draw with Burton Albion. In his second game, a 2–1 home defeat to Southend United on 24 January, he was sent-off for fighting. On 28 January 2015 he was charged by the FA with improper conduct arising from the same incident. McCallum was alleged to have made contact with referee, Lee Collins. On 3 February, he was banned for seven games after pleading guilty to the charge.
McCallum joined League Two club Leyton Orient on a two-year contract on 19 June 2015. He made his league debut for Orient against Barnet on 8 August 2015, and scored the second goal in their 2–0 win.As of match played 29 April 2017.