Bates is the son of former long-time collegiate and NFL coach Jim Bates and attended high school in Sevierville, Tennessee. He played quarterback at the University of Tennessee before transferring to Rice University, where he also played baseball. Bates completed his bachelor's degree in 1999 at Rice. In 2014, Bates hiked the 2,900-mile Continental Divide Trail, completing a five-month trek across the Continental Divide Trail from Mexico to Canada alone, trekking 20–30 miles per day with a 40 to 60 pound backpack.
He was the New York Jets' quarterbacks coach in 2005; due to a series of injuries the team fielded five different quarterbacks that season, notably Brooks Bollinger.
Bates joined the Denver Broncos in 2006. In his first season, he served as an offensive assistant, helping offensive coordinator Rick Dennison coach the offensive line. In 2007, he served as wide receivers/quarterbacks coach, and in 2008 as quarterbacks coach, both seasons working closely with quarterback Jay Cutler. In 2008, Bates called the offensive plays for the Broncos, helping Cutler become a Pro Bowl selection and the team to have the NFL's second-most productive offense. At the end of the 2008 NFL regular season, longtime head coach Mike Shanahan was fired and replaced by Josh McDaniels. Due to the uncertainty, Bates began looking for a new position.
USC Trojans
On January 19, 2009, USC Trojans head coach Pete Carroll hired Bates to replace outgoing coach Carl Smith, who had only taken the quarterbacks job two weeks earlier before moving back to the NFL. Smith had replaced Steve Sarkisian, who had taken the head coaching position of the Washington Huskies after serving as both quarterbacks coach and offensive coordinator; John Morton had been promoted to offensive coordinator. Bates called plays from the field while Morton worked from the coaches' booth in the press box, similar to a previous arrangement run by the Trojans during the 2005-2006 seasons between Sarkisian and Lane Kiffin, respectively.
Seattle Seahawks
On January 12, 2010, former USC Trojans' head coach Pete Carroll was introduced as the head coach and executive vice-president of the Seattle Seahawks. In 2010 Bates withdrew from consideration for the Bears offensive coordinator job, which eventually went to Mike Martz. It was reported shortly after that Bates would join Carroll's staff as offensive coordinator. Bates was fired on January 18, 2011. A difference in "philosophy" was stated as being the reason behind the move.
Chicago Bears
Bates joined the Chicago Bears on February 7, 2012 as the quarterbacks coach under offensive coordinator Mike Tice, a move which reunited him with quarterback Jay Cutler. On January 17, 2013, Bates was among seven coaches not retained by new head coach Marc Trestman.