MacDonald was born in Winchester, Hampshire. He started his career in the Academy at Reading and spent time on loan at Salisbury City during his scholarship before signing his first professional contract in June 2011. In November 2011, MacDonald joined Conference South club Basingstoke Town on loan, making his debut in a 2–1 FA Trophy win over Sutton United. He joined League Two side Torquay United on loan until the end of the season in February 2012. He made his professional debut for the Gulls in a 1–0 win over Crawley Town. On 30 July 2012, MacDonald joined AFC Wimbledon on a six-month loan deal. However, he was subsequently recalled by Reading on 28 September 2012. On 22 November MacDonald rejoined Torquay United on loan for six weeks as defensive cover. He made his return to the team as a first-half substitute in the 1–0 defeat to Bradford City on 8 December. On 8 January 2013 MacDonald had his loan extended until the end of the season. Torquay manager Martin Ling described the loan as effectively a trial for MacDonald, with the possibility of a permanent transfer in the summer when his Reading contract expired. MacDonald was released by Reading on 24 May 2013 after the club confirmed that his contract would not be renewed. He did not win a call into a first team squad while with Reading. Following his release he had trials with Yeovil Town, Birmingham City and Leicester City, but he did not join any of the clubs on a permanent basis. On 23 August 2013 he joined Salisbury City on a one-year contract. He made his debut three weeks later as a late substitute against Chester but was sent off within minutes for violent conduct. The following month he scored his first goal for the club with an overhead kick, earning Salisbury a 2–1 win over Wrexham. MacDonald signed for newly relegated Conference Premier club Torquay United on a one-year contract on 21 July 2014. He made 33 appearances, scoring one goal in his first, permanent season at the club and earned a further year contract extension. MacDonald made 48 appearances scoring twice, in a season where he was named club captain under player-managerKevin Nicholson. On 2 August 2016, MacDonald signed for Championship club Barnsley. He scored his first goal for the club in an FA Cup tie against Blackpool on 17 January 2017. Barnsley announced on 3 August 2017 that MacDonald would be the new first team captain. On 31 January 2018, he signed a two-and-a-half-year deal with Hull City for an undisclosed fee.
Personal life
MacDonald is of Scottish descent through his grandfather. MacDonald was diagnosed with early stages of bowel cancer on 4 September 2019. On 19 December 2019, he announced that he had been given the all-clear. MacDonald is currently in a relationship with singer Alexandra Burke.