Hudson was born in Paris, Tennessee and grew up in Big Sandy, Tennessee. He attended Camden Central High School, where he played football and basketball. In football, Hudson played quarterback, kicker, and punter and was named the District 11-AA Most Valuable Punter as a junior after averaging 38.7 yards per punt while also passing for 581 yards and seven touchdowns with 152 yards and three touchdowns rushing. His senior season was cut short after four games due to injury.
College career
Hudson began his collegiate career as a quarterback and punter at Memphis, redshirting his freshman season. He opted to transfer to Southern Arkansas University following his redshirt year. In his first season with the Muleriders, Hudson changed positions to wide receiver and eventually tight end while handling the team's punting duties. In each of his last three seasons Hudson caught at least 40 passes and had over 600 receiving yards. In his junior season, he set career highs with 48 catches, 763 receiving yards and nine touchdown receptions and was named second team All-Great American Conference while also finishing third in the conference in yards per punt with 41.9. As a senior, Hudson had 43 receptions for 624 yards and six touchdowns and was named first team All-GAC and a second team All-American by the American Football Coaches Association and the Division II Conference Commissioner's Association. He finished his collegiate career with 143 receptions for 2,152 yards and 25 touchdown catches.
Professional career
Hudson signed with the Tampa Bay Buccaneers as an undrafted free agent on April 29, 2018. He was cut at the end of training camp but was re-signed to the Buccaneers practice squad on September 2, 2018. Hudson was promoted to the active roster for the final two weeks of the 2018 season, but did not appear in either game. Hudson made the Buccaneers final roster to begin the 2019 season. Hudson made his NFL debut on October 27, 2019 against the Tennessee Titans. Hudson caught his first career pass, a 12-yard reception from Jameis Winston, on November 3, 2019 in a 40-33 loss to the Seattle Seahawks. Hudson finished the season with two receptions for 26 yards in nine games played with one start. Hudson re-signed with the Buccaneers on a one-year contract on March 13, 2020.