Josh was born in Blacktown and is of Aboriginal decent from the Gunaggandji, Birrbay, and Wiradjuri people.
He began playing football at age 3 for the Doonside Roos.
In 2014 and 2015 Josh played for the Conrulla-Sutherland Sharks' National Youth Competition Team, before making his NRL debut in Round 7 of the 2016 season with the Wests Tigers, scoring a try.
Josh later was signed by Melbourne Storm in 2017, helping them to secure the NRL Grand Final win. In 2018 he was selected to represent NSW on the State of Origin team, playing all three games and brought the shield home for the first time in 3 years. He was reselected for the State of origin team in 2019, helping to retain the shield back to back for the first time since 2005. He was also selected for and played in the NSW 2020 and 2021 State of Origin series.
In 2022 he was poached by Canterbury-Bankstown Bulldogs. He was later selected to represent Australia on the Kangaroos team in the 2021 Rugby League World Cup and in the 2021. He later represented NSW in the 2023 State of Origin series.
In 2025 Josh signed with the Parramatta Eels, where he currently plays.