Shaw played midget hockey within his native Nova Scotia with the Cape Breton Tradesmen before joining the major junior ranks with the Cape Breton Screaming Eagles of the Quebec Major Junior Hockey League (QMJHL), after he was selected 12th overall in the 2008 QMJHL Entry Draft. Shaw remained with the Screaming Eagles before he was traded during the 2011–12 season to the Quebec Remparts on January 7, 2012.[1] He finished second in team scoring with the Remparts and added eight points in eleven games in the playoffs. He finished his QMJHL career with 187 points in 311 games with Cape Breton and Quebec.[2]
Professional
Shaw was selected by the Florida Panthers in the third round, 76th overall in the 2011 NHL entry draft. On April 22, 2013, Shaw was signed by the Panthers to a three-year entry-level contract.[2] Shaw was assigned to begin his professional career with the Panthers' American Hockey League (AHL) affiliate, the San Antonio Rampage, in the 2013–14 season. During his time with San Antonio, Shaw was demoted to the ECHL's Cincinnati Cyclones.[3] In the 2015–16 season, after five games with new AHL affiliate, the Portland Pirates, Shaw received his first NHL recall to the Panthers on October 29, 2015.[4] He later made his NHL debut with the Panthers in a 3–1 defeat to the Boston Bruins on October 30, 2015.[5] Shaw completed his first NHL season with the Panthers, contributing with five goals in 53 games. He was re-assigned to Portland in March 2016 before being recalled for the 2016 Stanley Cup Playoffs[3] and featured in three post-season games in the Panthers' first-round defeat.[6]
In the 2016–17 season, Shaw was unable to retain his role with the Panthers and was reassigned to inaugural AHL affiliate, the Springfield Thunderbirds. He scored four goals in 13 games with the Thunderbirds before he was traded by the Panthers to the Anaheim Ducks in exchange for Michael Sgarbossa on November 16, 2016.[7] During the 2017–18 season, after the Ducks picked up J. T. Brown off waivers from the Tampa Bay Lightning, Shaw was placed on waivers. He appeared in 42 games scoring 8 points for the Ducks. He was then claimed by the Montreal Canadiens on January 15, 2018.[8] Shaw was inserted into the Canadiens lineup and played out the remainder of the season, appearing in 30 games for 2 goals and 6 points.[9]
As an impending restricted free agent, Shaw was not tendered a qualifying offer from the Canadiens and was released to free agency on June 25, 2018.[10] Un-signed over the summer, Shaw accepted an invitation and attended the Calgary Flames 2018 training camp.[9] He was unable to make the Flames roster and was assigned to their AHL affiliate, the Stockton Heat. However, instead of staying with the Flames organization, Shaw returned to the Ducks organization, signing a professional try-out contract with the San Diego Gulls on October 3, 2018.[11] He secured a standard playing contract to remain with the Gulls for the season a week later on October 10, 2018.[12]
On November 11, 2018, Shaw left the Gulls to sign a one-year, two-way contract with the Winnipeg Jets.[13] He did not appear in a game with the Jets, but rather spent the remainder of the season with the Manitoba Moose. In 63 games, Shaw led the Moose with 27 goals and finished second in scoring with 46 points. On May 31, 2019, the Jets re-signed Shaw to a one-year, two-way contract extension worth $700,000.[14] He split the 2019–20 season between the Jets and the Moose, appearing in 35 games for the Jets scoring two goals and five points and four goals and seven points in 16 games with the Moose.[15]
On October 9, 2020, Shaw signed a two-year, two-way contract with the Ottawa Senators.[15] He was named the team captain of the Belleville Senators, the Ottawa Senators AHL affiliate, on March 1, 2021.[16] He spent his entire first season with Belleville. However, in his second season, after a series of injuries to Ottawa's centers, Shaw was recalled from Belleville in October 2021.[17] He played in 16 games with Ottawa, scoring one goal and three points before being assigned to Belleville on November 29, 2021.[18]
Following his two seasons under contract with the Senators, Shaw left as a free agent and was signed to a three-year AHL contract with the Toronto Marlies, primary affiliate to the Toronto Maple Leafs, on July 13, 2022.[19] He was named the team captain on December 7, 2022.[20] Shaw attended the Maple Leafs' 2023 training camp, but was assigned to the Marlies to start the 2023–24 season.[21]