His career began with Kilsyth Rangers Youth then Stirling Albion, then Ally made his Hearts debut aged 17 on August 20 2014, coming on as a 65th-minute substitute in a Scottish Challenge Cup match against Livingston, replacing Liam Gordon in a 4–1 defeat.
Three days later he went on to make his league debut in a victory over Raith Rovers.
In July 2015, he moved to Scottish League Two side East Stirlingshire until January 2016 as part of a development loan.
In March 2016 he signed a new one-year deal with Hearts and was loaned out to Scottish League One club Stenhousemuir at the beginning of the 2016–17 season.
After signing a new deal with Hearts in the summer of 2017, the tall and lively striker has joined Dumbarton on loan until January 2018.