Before and during high school, O'Connor played six seasons for the Ajax Admirals, an amateur U21 team affiliated with the Ontario Soccer Association. During his time at Archbishop Denis O'Connor Catholic High School, O'Connor earned various honors with the school team including being named team captain and Male Soccer Player of the Year as a sophomore and junior, and winning four consecutive Lake OntarioSecondary School Athletics championships between 2006-2009. After high school, O'Connor played college soccer for the St. Bonaventure Bonnies of St. Bonaventure University between 2010-2013. In total, O'Connor scored 17 goals and recorded a team-record 24 assists in 57 matches. After college, O'Connor played one season with Scarborough City Celtic of Ontario Soccer League, the fifth tier of the Canadian soccer league system. Following his final season with the Bonnies, O'Connor was invited for a trial with Crawley Town of League One, the third tier of the English football league system, by manager John Gregory. The trial was arrange by former West Ham United player and manager Kevin Keen who was the father of one of O'Connor's teammates at St. Bonaventure. After a successful trial which included preseason appearances against non-league Billingshurst and Oakwood and Fulham of the Premier League, he was offered a one-year contract to join the club on July 24, 2014. About O'Connor's early performances with the club, John Gregory said, "He was recommended to us, has come in and worked hard...He is the sort of kid that just wants to be a player, works hard at everything he does and gives everything at all times." O'Connor made his league debut on August 16, 2014 as an 86th-minute substitute for Gwion Edwards against Swindon Town. He made his first competitive start for Crawley Town on September 2, 2014 in a Football League Trophy match against Cambridge United after making four previous substitute appearances. He earned his first league start four days later against Rochdale. On 24 March 2015, O'Connor was loaned to Lewes F.C. for the remainder of the Isthmian League season so that he could play competitive football. In total, he appeared in two league matches and scored a goal for Lewes before returning to Crawley Town. In June 2015, it was announced that O'Connor had been released by Crawley Town.
International career
In 2005, O'Connor played for a Canadian team at the Under-12 level as part of the squad that competed at the Danone Nations Cup in Paris. In the tournament, Canada finished 20th out of 32 teams and held both the Netherlands and Indonesia to 1-1 draws in addition to a 0-1 defeat to the Republic of Ireland.