McMahon represented the Republic of Ireland Under-16 team at the 2000 UEFA European Under-16 Football Championship. Starting as a midfielder his career at West Ham United, he switched to Port Vale in 2004 after failing to make a first team appearance for West Ham. Later in the year he moved on to Leyton Orient, where he would remain for three years. He then spent two seasons at Stevenage Borough, moving on to Cambridge United and then Farnborough in 2009. Two years later he moved on to Boreham Wood, and seven months later to Eastleigh. He has also played for Torquay United and Notts County on loan. He switched to Dover Athletic in September 2012, before signing for Ebbsfleet United in June 2013. He rejoined Boreham Wood in January 2015 before returning to Ebbsfleet as manager three months later.