Cresciuto nelle giovanili del Sydney Olympic[4] e dei Marconi Stallions[4], ha firmato un contratto triennale con il Sydney FC nel luglio 2010[4][5], all'età di sedici anni. Il debutto con la maglia degli Sky Blues è avvenuto l'11 settembre 2010, all'età di sedici anni, 10 mesi e 17 giorni, nell'incontro di campionato Wellington Phoenix-Sydney FC (2-1)[6], subentrando a Hirofumi Moriyasu al minuto 80. Ha messo a segno la sua prima rete con la maglia degli Sky Blues il 16 febbraio 2013, nell'incontro di campionato Sydney FC-Adelaide United (2-1)[7], siglando la rete del momentaneo 1-0 al minuto 49. Nell'estate 2013 ha firmato un pre-contratto con il Parma[8][9], squadra italiana militante in Serie A. Tuttavia, causa di un infortunio il trasferimento non si è concretizzato[10][11]. Ha militato nel Sydney FC fino al 2015, totalizzando 69 presenze e 5 reti.
2015-2019: dal PAOK al Melbourne Victory
Il 19 agosto 2015 si è trasferito in Grecia, firmando un contratto triennale con il Paok Salonicco[12]. Il debutto con la niova maglia è avvenuto il 3 dicembre 2015, nell'incontro Chania-Paok Salonicco (2-6)[13], gara valida per la Kypello Ellados. Nel settembre 2016 si è trasferito in prestito al Veria[14]. Durante questa esperienza è sceso in campo una sola volta, nell'incontro di campionato Atromitos-Veria (1-0)[15]. Rientrato dal prestito, nel gennaio 2017 viene ceduto in prestito fino al termine della stagione al Western Sydney Wanderers[16], tornando così in patria dopo un anno e mezzo. Il debutto con i Wanderers è avvenuto il 28 gennaio 2017, nell'incontro di campionato Brisbane Roar-Western Sydney Wanderers (2-1)[17]. Ha collezionato in totale, con i Wanderers, 14 presenze e 3 reti. Tornato al PAOK, l'8 luglio 2017 viene ceduto a titolo definitivo al VVV-Venlo[18][19], squadra olandese neopromossa in Eredivisie. Il debutto con il club giallonero è avvenuto il 21 settembre 2017, nell'incontro di KNVB bekerBlauw Geel '38-VVV-Venlo (0-3)[20], gara in cui ha siglato la rete del definitivo 0-3 al minuto 41 del primo tempo. Il 3 gennaio 2018 si è trasferito al Melbourne Victory[21]. Il debutto con la maglia dei Blues è avvenuto il successivo 6 gennaio, nell'incontro di campionato Melbourne Victory-Central Coast Mariners (1-1)[22]. Ha militato nel club di Melbourne per una stagione e mezza, totalizzando 53 presenze e 5 reti.
2019-oggi: Suwon e ritorno al Western Sydney Wanderers
Il 25 luglio 2019 ha firmato un contratto triennale con il Suwon Samsung Bluewings[23], club coreano. Ha debuttato con la nuova maglia il 30 luglio 2019, nell'incontro di campionato Daegu-Suwon Samsung Bluewings (0-2)[24]. Ha militato nelle file dei Bluewings per tre stagioni, totalizzando 40 presenze. Il 25 luglio 2021 ha firmato un contratto con il Western Sydney Wanderers[25][26], club in cui aveva già militato nel 2017. Il nuovo debutto con la maglia dei Wanderers è avvenuto il 20 novembre 2021, nell'incontro di campionato Western Sydney Wanderers-Sydney FC (0-0)[27].