Shaw was drafted by the San Francisco Giants in the first round of the 2015 MLB draft, signed for a $1.5 million signing bonus,[2] and was assigned to the Salem-Keizer Volcanoes, where as a first baseman he batted .287 with 12 home runs (leading the Northwest League) and 30 RBIs in 64 games.[2] In 2016, Shaw began the season with the San Jose Giants, and was later promoted to the Richmond Flying Squirrels; in 132 games between the two teams, he posted a combined .267 batting average with 21 home runs and 85 RBIs and 125 strikeouts in 502 at bats.[6]
He spent 2017 as a left fielder with both Richmond and the Sacramento River Cats, slashing a combined .292/.346/.525 with 24 home runs (leading the Giants organization), 79 RBIs, and 132 strikeouts in 469 at bats and an .871 OPS in 125 total games between the two clubs.[2][7] He began 2018 with Sacramento.
In 2018 the Triple-A Sacramento River Cats he batted .259/.308/.505 with 24 home runs (8th in the Pacific Coast League, and leading the Giants organization) and 65 RBIs and 144 strikeouts (6th) in 394 at bats.[2][6][8] Shaw was called up to the majors for the first time on August 31, 2018, and made his debut that day.[9] On September 3, he hit his first major league home run against the Colorado Rockies. Shaw ended up batting .185 in 22 games, with one home run and 7 runs batted in. He struck out 23 times in 62 plate appearances.[10]
In 2019, the Giants organization kept Shaw on the 40-man roster but demoted him back to Double-A Richmond to work on his plate discipline.[10] On May 30, 2019, after 45 games with Richmond, with whom he batted .288/.368/.500 with 25 runs, 7 home runs and 24 RBIs in 160 at bats, Shaw was promoted to the Triple-A Sacramento River Cats, with whom he batted .298/.355/.592 with 20 home runs and 70 RBIs in 282 at bats.[6] On September 1, 2019, the Giants promoted Shaw to the major leagues, where he had 18 at bats.[6]
On November 20, 2020, Shaw was designated for assignment.[11]
Baltimore Orioles
On November 25, 2020, Shaw was claimed off waivers by the Baltimore Orioles.[12] On January 26, 2021, Shaw was designated for assignment by the Orioles following the signing of Freddy Galvis.[13] On February 1, Shaw was outrighted.[14] In 20 games split between the High-A Aberdeen Ironbirds and Triple-A Norfolk Tides, Shaw struggled to an .067/.243/.150 batting line with 1 home run and 6 RBI. On August 2, Shaw was released by the Orioles organization.[15]
On March 23, 2022, Shaw's rights were acquired by the Wild Health Genomes in a trade that sent the Long Island Ducks the second overall pick in the annual player draft.[17] Shaw played in 110 games for the Genomes in 2022, slashing .264/.401/.459 with 17 home runs and 72 RBI. He became a free agent following the season.
Chicago White Sox
On February 10, 2023, Shaw signed a minor league contract with the Chicago White Sox organization.[18] In 57 games split between the Double–A Birmingham Barons and Triple–A Charlotte Knights, he batted .197/.332/.425 with 12 home runs and 28 RBI. Shaw was released by the White Sox organization on August 2.[19]