Hannay first started playing rugby for Honiton Rugby Club before moving to Sidmouth Rugby Club in 2008.[2] He made his debut for Sidmouth against Plymouth Albion.[3] In 2010 during Sidmouth's South West One season, he moved to National League 1 side Launceston RUFC.[4] Later in the year after advice from Dyson Wilson, Hannay moved to Jersey.[2][5]
In 2011, Hannay was suspended for two weeks after being sent off during Jersey's game against Cambridge R.U.F.C. for head-butting an opposition player. He was suspended by Jersey for two weeks before the Rugby Football Union also suspended him for two weeks.[6] In 2012 after rejecting advances to sign him from Aviva Premiership side Exeter Chiefs, Hannay was appointed as captain of Jersey[7] taking over from Graham Bell.[8] On 16 April 2013, Hannay signs for Championship rivals Yorkshire Carnegie from 2013-14 season.[9] Hannay left Yorkshire Carnegie at the end of the 2014-15 season, and retired from professional rugby; he has since become Player-Coach at his former club Honiton.[10]
Hannay has not yet represented England at any level. In 2009 he represented Devon in the County Championship.[11] When Hannay moved to Launceston, who were above level five of the English rugby union system, Hannay became ineligible to represent Devon.[12] In 2012, Hannay was selected to represent the RFU Championship XV for their match against New Zealand's Māori All Blacks team at Castle Park rugby stadium, Doncaster.[7] Hannay was the only player from Jersey selected for the match.[13]