Moseley attended and played high school football at James B. Dudley High School, where he played basketball and was a two-way starter at quarterback and cornerback in football. As a senior, Moseley passed for 1,370 yards, rushed for 1,443 yards and accounted for 47 total touchdowns at quarterback and recorded 28 tackles and four interceptions on defense as the Panthers went 15-0 and won the Class 4A State Title. Initially rated as a two-star recruit, originally Moseley committed to play college football at Charlottein the summer going into his senior year. He changed his commitment to the University of Tennessee following an offer from the school in September of his senior year.
College career
Moseley played four seasons for the Volunteers, appearing in 51 games and starting 31. He served mostly as a reserve defensive back during his freshman season, playing in all 13 of Tennessee's games with two starts and making 18 tackles and finishing second on the team with six pass breakups. Moseley became a starter during his sophomore year, leading the team with 11 passes broken up with 27 tackles and picking off a pass in the 2016 Outback Bowl for the first interception of his career. As a junior, Moseley was the Vols fifth-leading tackler with 57 while breaking up six passes. He recorded 38 tackles, two tackles for loss, seven pass breakups and an interception as a senior. Over the course of his collegiate career, Moseley accumulated 142 tackles, 9.5 tackles for loss with 31 pass deflections and two interceptions.
Professional career
2018 season
Although originally projected to be a late-round pick in the 2018 NFL Draft, Moseley went unselected and signed with the San Francisco 49ers as an undrafted free agent on April 28, 2018. Moseley was cut by the 49ers at the end of the preseason and subsequently re-signed to the team's practice squad on September 2, 2018 and was given a new contract that raised his salary to the equivalent of a rookie on the active roster on October 19. Moseley was promoted to the 49ers active roster on November 1, 2018 and made his NFL debut the same night in a 34-3 win against the Oakland Raiders, playing three snaps and notching one tackle on special teams. However, he injured his shoulder during the game and was placed on injured reserve the following day.
2019 season
Moseley made his first NFL start during Week 5 against the Cleveland Browns and deflected a pass in the end zone. The 49ers won 31-3. Three weeks later against the Carolina Panthers, he recorded his first NFL interception by picking off Kyle Allen in a 51-13 victory. He finished the regular season with 50 tackles, eight passes defensed and an interception in 16 games and nine starts. In the NFC Championship Game against the Green Bay Packers, Moseley intercepted a pass thrown by Aaron Rodgers during the 37–20 victory. In Super Bowl LIV, he recorded five tackles and a pass deflection in a 31-20 loss to the Kansas City Chiefs. He played in all three of the 49ers playoff games with two starts and recorded 14 tackles with four passes defended and an interception.
2020 season
On March 5, 2020, Moseley was assigned by the 49ers a one-year $585,000 exclusive-rights free agent tender. He signed the contract on July 28, 2020.