A left-back who can also play in central defence, Walsh joined Swansea as an under-16 player after previously playing for Cardiff College Celts. In his first season he helped the Swans to FAW Youth Cup glory against his hometown club, Cardiff City, at their old Ninian Park ground. He was drafted into the first-team squad for a match against Derby County for Swansea in February 2010 as cover following the late injury sustained by Garry Monk. Walsh was handed his first professional deal with the club prior to the 2010–11 season. He made his first team debut on 10 August 2010 in a 3–0 win over Barnet in the Football League Cup. Walsh joined Crawley Town after he was released by Premier League Swansea City at the end of the 2011-12 season. In January 2014, Crawley Town Chairman Dave Pottinger confirmed the club had turned down a £400,000 offer for Walsh from an unnamed club.