[3][4] After redshirting his first year with the Stanford Cardinal in 2014, Thomas played in all 14 games in 2015, starting six, and had 39 total tackles, 10.5 tackles-for-loss, and 3.5 sacks.
[citation needed] In 2016, Thomas played and started all 13 games and had 62 total tackles with 15.0 tackles-for-loss and 8.0 sacks.
On March 23, 2017, Thomas attended Stanford's pro day, but opted to stand on his combine numbers and only performed positional drills.
[12][13] He became the third consecutive defensive end drafted in the first round by the 49ers, joining Arik Armstead (2015) and DeForest Buckner (2016).
The man who drafted Thomas—newly appointed 49ers general manager John Lynch—coincidentally studied alongside Thomas as a mature student while working as a broadcaster for FOX Sports, and counselled Thomas to leave Stanford without knowing he would be in a position to draft him as a member of the 49ers front office the following season.
[16] During the 49ers' Week 2 matchup against the New York Jets, Thomas suffered a torn ACL and was ruled out for the rest of the season.
[21] He was named a backup defensive tackle behind Quinnen Williams, Sheldon Rankins, and Nathan Shepherd.