Discovered in the Kaduna based Mutunchi Football Academy, Moses John was 18 when Portuguese giants FC Porto brought him to their youth team. He was spotted at a scouting tournament organised by Nigerian agent Babawo Mohammed. In the tournament he was noticed as a quick, strong and skillful forward. Soon upon arriving to Portugal, coach António Folha added him to the FC Porto list to the UEFA Youth League. However, the list included already 11 attackers, and John struggled to get playing time, having made one appearance only in the 2016–17 Portuguese Youth League. Because of age, John was upgraded in the next season from the youth to the reserves team, the FC Porto B, but to avoid risking to spend another season waiting for his chance from the bench, he preferred this time to a loan deal to a lower-league club where he would play an important role, and so it was, he was loaned to S.C. Esmoriz when in the 2017–18 season he made 32 appearances scoring 6 goals. Rather than showing himself in a Portuguese lower-league, John's goal was instead to show that he was ready and able to provide a consistent performance throughout an entire season. Seeing that Porto would hardly provide him any significant role in their main team in near future, by suggestion of his agent, Petar Bazić, he decided to move from Portugal and take a chance in a country known for giving more space to young talents, Serbia. Upon arriving to Serbia he went through a period of trials in newly promoted Serbian SuperLiga club FK Zemun, where he successfully managed to earn a contract. John was in a group of several foreigners which were brought, however, bureaucratic problems delayed John´s possibility to debut. Unfortunately in meantime Zemun had sacked their coach. The later coaches had old fashion ideas which led to the letting go or moving away from the starting line-up most of the foreigners, and the results of such actions were not only John not having had a single chance in the entire season to debut in the league, but also led to the club finishing the season relegated. Free for choosing his own destiny, John accepted an offer and signed a contract with another Serbian club, FK Novi Pazar, which made him debut in the first round of the 2019–20 Serbian First League.