Mackin started his career with Wrexham in their youth system, before making his first-team debut on the last day of the 2003–04 season.
After being released by Wrexham he signed for York permanently and played in the 2010 Conference Premier play-off final at Wembley Stadium.
He was released by York in 2011 before having spells with Alfreton Town, Chester, Bangor City, Conwy Borough and Rhyl.
[14][15] His first appearance of 2004–05 came as a 50th-minute substitute in a 2–2 away draw with Hull City in the League Cup on 24 August 2004, which Wrexham won 3–1 in a penalty shoot-out.
[16][17] He suffered from a sore thigh in January 2005 and made his return as an 88th-minute substitute in a 0–0 home draw with MK Dons on 26 February.
[22][23] He spent nearly three months injured before rejoining the squad for training towards the end of January 2006 and made his return on 4 February after coming on as a 20th-minute substitute in a 2–0 home victory over Wycombe.
[27][29] An injury to Mark Jones allowed Mackin back into the team for a 4–0 defeat away to Boston United on 9 December 2006.
[32][33] Mackin joined Conference Premier club Droylsden on 24 January 2008 on a one-month loan,[34] having made seven appearances for Wrexham by that point in 2007–08.
[32] He made his debut two days later in a 1–0 home victory over Kidderminster Harriers[35] and on 31 January 2008 the loan was extended until the end of the season after earning "rave reviews" for his performances.
[45][47] Despite starting the season as a regular in the team,[45] he found opportunities hard to come by after the arrival of Dean Saunders as manager.
[52] Mackin played for York in their 13–12 penalty shoot-out victory at home to Kidderminster in the FA Trophy third round on 12 February 2009, which had finished 1–1 after extra time.
[51] A tight thigh resulted in him missing a match against Oxford United in April 2009 and he made his return later that month in a 0–0 away draw with Barrow.
"[61] Mackin played in the opening match of 2009–10, a 2–1 defeat away to Oxford on 8 August 2009, and according to The Press was a "strong presence in the City midfield in a very committed performance".
[62] A foot infection led to him missing a match against Gateshead on 25 August 2009 and he made his return in a 2–0 home win over Crawley Town on 5 September as an 84th-minute substitute.
[67] Mackin scored his first goal for York in a 2–1 away defeat to Forest Green Rovers on 6 March 2010, with his shot taking a deflection off David Brown.
[73] Mackin made his first appearance of 2010–11 in the opening match, a 2–1 home defeat to Kidderminster on 14 August 2010, and was substituted in the 38th minute due to an injury and Foyle said "It looks a bad one and he might need a scan".
[74][76] He scored at home for the first time for York with the 85th-minute winner against Forest Green on 22 January 2011, the goal being a drilled shot into the bottom corner.
[74][80] Mackin finished the season with 13 appearances and 1 goal[74] before being released by York in June 2011 after being told he could find another club.
[81] Mackin signed for newly promoted Conference Premier club Alfreton Town on 2 July 2011 on a one-year contract.
[83] After struggling to break into the team he was released by Alfreton on 4 January 2012 after his contract was cancelled by mutual consent,[84] having made 13 appearances and scored 1 goal for the club.
[93] He left by mutual consent in August 2016 because of family and work commitments,[94] and the following month signed for Cymru Alliance club Flint Town United.
[97] Mackin was involved in two matches with the Wales under-17 team, against Scotland and Norway in 2001 and 2002 respectively, although he did not play in either and remained on the substitutes' bench.