Born in Port Moresby, Papua New Guinea, Macdonald moved to Queensland, Australia at a young age and played his junior football for the Cairns Brothers, before being signed by the Gold Coast Titans. In October 2011, Macdonald played for the Australian Schoolboys. In 2012, he joined the Sydney Roosters. He played for the Roosters' NYC team in 2012 and 2013. In 2013 and 2014, he played for the Queensland Under-20s team. In 2013, he played for Papua New Guinea against the Prime Minister's XIII team, scoring a try.
Playing career
2013
In 2013, Macdonald was selected in the Papua New Guinea squad for the 2013 World Cup. He played in 3 matches and scored a try in Papua New Guinea's 9-8 defeat by France.
On 31 January and 1 February, Macdonald again played for the Roosters' in the 2015 NRL Auckland Nines. On 2 May, he played for Papua New Guinea against Fiji in the 2015 Melanesian Cup, playing on the wing in the Papua New Guinea's 22-10 loss at Cbus Super Stadium. On 16 June, he signed a -year contract with the Gold Coast Titans mid-season effective immediately. He made his club debut for the Titans in Round 15 against the New Zealand Warriors, playing at centre in the Titans' 36-14 loss at Cbus Super Stadium. In his next match in Round 16 against his former club the Sydney Roosters, he scored his first try for the Titans in their 20-10 loss at Central Coast Stadium. He finished off the 2015 season having played in 4 matches for the Roosters and 11 matches for the Titans, scoring 4 tries. On 15 December, he was named on interchange bench for the World All Stars to play against the Indigenous All Stars on 16 February 2016.
2016
On 12 January, Macdonald was selected in the QAS Emerging Maroons squad. In February, he played for the Titans in the 2016 NRL Auckland Nines. On 13 February, he played for the World All Stars against the Indigenous All Stars in the 2016 All Stars match, playing on the wing in his team's 12-8 win at Suncorp Stadium. On 7 May, he played for Papua New Guinea against Fiji in the 2016 Melanesian Cup, playing at centre and scoring a try in Papua New Guinea's 24-22 win at Parramatta Stadium. In August, he signed a 3-year contract with the St George Illawarra Dragons starting in 2017. He finished the 2016 season having played in 23 matches and scoring 10 tries in his last year with the Titans.
On 9 October, Macdonald signed a three-year contract with the North Queensland Cowboys starting in 2019.
2019
In March, Macdonald was dropped from a pre-season trial game against the Melbourne Storm for being late to training. In round 1 of the 2019 NRL season, Macdonald made his debut for North Queensland, scoring a try in their 24–12 victory over his former club, the St George Illawarra Dragons. In round 5, he suffered a fracture and dislocation of his ankle in the club's 12–18 defeat by the Melbourne Storm. On 20 June, he was involved in a traffic incident, in which a hired car leased in his name was found damaged and abandoned on Magnetic Island. On 5 July, he was released by North Queensland.
2020
On 11 June, Macdonald signed a contract to join Cronulla-Sutherland after twelve months out of the game. Macdonald made his debut for Cronulla-Sutherland in round 9 against Penrith and scored a try as Cronulla were beaten 56-24 at Kogarah Oval.