A former pupil of Tain Royal Academy and youth with Tain Juniors FC, John is an experienced goalkeeper even at his young age. Showing talent beyond his years, the Balintore native quickly graduated to senior football at age 16 when he joined Brora Rangers as an amateur in 2012. While at Brora, he spent a season on loan with Muir of Ord Rovers, making his North Caledonian League debut, before returning to act as understudy to Joe Malin at Dudgeon Park. During his studies with Stirling University he would become the Uni's first team goalkeeper and spent two seasons playing with the side in the Lowland League between 2017 and 2019.
Having previously played as a trialist during both the 2016-17 and 2017-18 pre-seasons, John signed for Saints on a permanent basis for the 2019-20 campaign.