Halfhill played soccer for his high school team, the Landstown Eagles, for all four years of his attendance. In his freshman year, he participated in Landstown winning their first Beach District championship title. He received many accolades in high school, including being selected for the All-Virginia Beach Team three times. His senior year, he was named to the All-District and All-Region first teams, an honorable mention for the All-State team, and was named most outstanding male athlete by Landstown High School. During high school, Halfhill also played for Virginia Rush Soccer Club, a developmental soccer club in Southeastern Virginia.
College and amateur
In 2011, Halfhill was admitted to Xavier University with a Dean's Award Scholarship to study marketing. He played on the university's men's soccer team starting his freshman year, in which he had five starts, twenty appearances, and one goal. From his sophomore year until his graduation, Halfhill appeared in every Xavier match and started in all but one of them. He was named to the Big East Conference all-academic team his junior and senior years. In his senior year, Halfhill was named team captain, and was second on the team in minutes played with 2,092 total minutes. On September 13, 2014, Halfhill scored a career-high four points in a 3–0 win against Cincinnati, leading him to be named to that week's Big East Weekly Honor Roll and College Soccer News National Team of the Week. He was also named to the Big East's All-Tournament Team. At the end of his Xavier career, Halfhill held the university record for most matches played with 84 total appearances. Halfhill played in the Premier Development League with the Des Moines Menace in 2013, and the Cincinnati Dutch Lions in 2014 and 2015.
Professional
In May 2017, Halfhill signed with United Soccer League club FC Cincinnati. He made his debut with FC Cincinnati in a U.S. Open Cup match against AFC Cleveland on May 17, 2017. He debuted in the USL on June 3, 2017, in a match against Rochester Rhinos. In October 2017, FC Cincinnati announced that Halfhill had been re-signed for the 2018 season.In 2018 FC Cincinnati released Halfhill and he landed with the New York Cosmos. He played two seasons with the New York Cosmos and made 35 appearances for the club.