Born in Calgary, Alberta, Shinkaruk played minor hockey for the Calgary Royals. After scoring 32 goals and 63 points over 27 games in his second year of major bantam, Shinkaruk was selected 14th overall by the Medicine Hat Tigers in the 2009 Western Hockey League Bantam Draft. Advancing to the midget little person level the following season, Shinkaruk broke the tibia and fibula in his right leg, causing him to miss the entire 2009–10 campaign with the exception of three games.
Junior
Following his rehabilitation, Shinkaruk joined the Tigers for his first junior seasons. He scored his first WHL goal in his fifth game, a 6–4 win against the Edmonton Oil Kings on October 16, 2010. Scoring 42 points over 63 games in 2010–11, he ranked 10th among league rookies. He added 9 points in 14 games as Medicine Hat advanced to the WHL semifinals. In his second WHL season, Shinkaruk improved to a career-high 49 goals and 91 points in 66 games, ranking twelfth in league scoring. Playing in 8 post-season games, he recorded 2 goals and 11 points. The following season, Shinkaruk was named team captain for the tigers and went on to record 37 goals and 86 points in 64 games, ranking 14th among WHL scorers. Playing in his draft-eligible year, Shinkaruk was ranked the sixth-best prospect among skaters playing in North America. He was selected 24th overall by the Vancouver Canucks in the 2013 NHL Entry Draft. Following his draft, Shinkaruk attended his first NHL training camp with the Canucks and was among the team's final cuts. Despite being on the great roster after the team's final preseason game, the subsequent acquisitions of Jeremy Welsh and Zac Dalpe resulted in him being returned to junior. Early in the 2013–14 season, Shinkaruk sustained a torn labrum in his hip, but played through it in hopes of competing in the 2014 World Junior Championships. After being cut from Team Canada's selection camp, Shinkaruk underwent hip surgery on January 7, 2014, ending his season. He had recorded 16 points in 18 games. In July 2014, news was revealed that Shinkaruk's hip was injured for much of his junior career and that he had simply delayed the healing process until his surgery in early 2014. During his rehabilitation period, Shinkaruk made a conscious decision to address his strength concerns, appearing at the Canucks' 2014 training camp with much greater physical strength after reportedly gaining 15 lbs during that off-season.
Professional
Shinkaruk made his on-ice return at the Canucks' Young Stars Tournament in September 2014 and was later was assigned to the Canucks' American Hockey League affiliate, the Utica Comets for the 2014–15 season. After a slow start, in which he scored six goals in his first 42 games, Shinkaruk finished his rookie season with nine goals in the last 16 games of the regular season. He then added four goals in 23 playoff games, as the Comets lost in the Calder Cup Finals. After an impressive first 12 games in Utica in the 2015–16 season; which included 10 goals and two hat tricks, Shinkaruk was called up by the Canucks. He made his NHL debut on November 16, 2015 in a 4–3 overtime loss to the Montreal Canadiens. He was returned to the Comets the following day. Shinkaruk was leading the Comets offensively with 39 points in 45 games when he was traded by the Canucks to the Calgary Flames in exchange for Markus Granlund on February 22, 2016. He was immediately assigned to the Flames AHL affiliate, the Stockton Heat. Shinkaruk made his debut with the Flames on March 28, 2016 against the Arizona Coyotes, in which he got his first NHL point. He scored his first NHL goal as a Calgary Flame against the Anaheim Ducks in a 5–4 loss on March 30, 2016. On August 20, 2018, Shinkaruk was traded to the Montreal Canadiens in exchange for Kerby Rychel. As a restricted free agent, Shinkaruk immediately signed a one-year, two-way contract worth $650,000 at the NHL level. In the 2018–19 season, Shinkaruk was assigned by the Canadiens to the Laval Rocket for the duration of the year, posting just 5 goals and 10 points in 54 games. As an impending restricted free agent, Shinkaruk was not tendered qualifying offer by the Canadiens, releasing him as a free agent on June 25, 2019. Unable to attract an NHL contract, Shinkaruk agreed to a one-year AHL contract with reigning Calder Cup champions, the Charlotte Checkers, on July 18, 2019. In the 2019–20 season, Shinkaruk was slow to produce with the Checkers, collecting 7 points through 20 games, before opting to end his contract in the AHL in order to sign his first contract abroad with Chinese club, HC Kunlun Red Star of the KHL on December 23, 2019.