Cade Harris has proven he can be the safety net for Air Force football once the ball is snapped.
This year, he might be asked to do more between plays.
With little experience back at quarterback – Kemper Hodges is the most experienced player among the QBs, and he was a fullback last year – Harris’ value as a rare fifth-year skill position player on the Falcons’ offense figures to be enhanced.
“Whoever’s in at quarterback, I want them to know if they need help, I’m a guy they can come to,” Harris said. “Whether that’s actually trying to make a play or just seeing what the defense is doing or whatever it is, I’m there to help them out.”
Air Force leaned on Harris out of the slot back position in multiple ways last season. He led the team in every receiving category with 23 catches for 368 yards and two touchdowns – including a 76-yard touchdown at San Diego State. He also ran 48 times for 279 yards and four touchdowns.
The 5-foot-8, 180-pound native of South Weber, Utah, was also an impactful blocker.
Harris’ career totals include 592 receiving yards with four touchdowns and 362 rushing yards with six scores.
“I hope just based on my past experiences and what I’ve done that coaches feel like I can do whatever they need me to do, whether that’s block or run the ball or catch the ball,” Harris said. “Whatever it is, I’m happy to do it as long as we can get a win at the end of the day.”
Harris is certainly not alone in bringing experience to the Air Force offense. Fullback Dylan Carson, tight end Bruin Fleischmann and linemen Costen Cooley, Alec Falk and Trevor Tate each started at least half of the 12 games in 2024, with tailback Kade Frew missing that mark by just one game.
let pathVariable;
let pathVariable2;
function handleUrlPathSegment() {
const fullPath = window.location.pathname.toLowerCase();
if (fullPath.includes(‘/business/’)) {
pathVariable = ‘business’;
pathVariable2 = ‘Business Newsletter’;
} else if (fullPath.includes(‘/outdoors/’) || fullPath.includes(‘/outdoor/’)) {
pathVariable = ‘outdoors’;
pathVariable2 = ‘Outdoors Newsletter’;
} else if (fullPath.includes(‘/opinion/’)) {
pathVariable = ‘opinion’;
pathVariable2 = ‘Opinion Newsletter’;
} else if (fullPath.includes(‘politics’)) {
pathVariable = ‘politics’;
pathVariable2 = ‘Politics Newsletter’;
} else if (fullPath.includes(‘outtherecolorado’)) {
pathVariable = ‘outtherecolorado’;
pathVariable2 = ‘Out There Colorado Newsletter’;
} else {
pathVariable = ‘am-update’;
pathVariable2 = ‘AM Update Newsletter’;
}
console.log(`Current path: ${fullPath}`);
console.log(`Path variable set to: ${pathVariable}`);
console.log(`Path variable 2 set to: ${pathVariable2}`);
applyNewsletterName(pathVariable2);
return { pathVariable, pathVariable2 };
}
function applyNewsletterName(newsletterName) {
if (document.readyState === ‘loading’) {
document.addEventListener(‘DOMContentLoaded’, function() {
updateNewsletterElement(newsletterName);
});
} else {
updateNewsletterElement(newsletterName);
}
}
function updateNewsletterElement(newsletterName) {
const newsletterElement = document.getElementById(‘newsletterName’);
if (newsletterElement) {
newsletterElement.textContent = newsletterName;
console.log(`Updated #newsletterName element with: ${newsletterName}`);
} else {
console.warn(‘Element with ID #newsletterName not found in the DOM’);
}
}
function setupFormSubmitListener() {
function getFormattedDate() {
const now = new Date();
const timestamp = now.getTime();
console.log(‘chris: Using Unix timestamp’);
console.log(‘chris: Current time:’, now);
console.log(‘chris: Unix timestamp (ms):’, timestamp);
return timestamp;
}
const formattedDate = getFormattedDate();
var profile = window.blueConicClient.profile.getProfile();
profile.setValues(‘newsletter_category’, pathVariable);
profile.setValue(‘newsletter_signup_date’, formattedDate);
window.blueConicClient.profile.updateProfile(this, function() {
});
}
handleUrlPathSegment();
setupFormSubmitListener();
Success! Thank you for subscribing to our newsletter.
function subscribeSuccess() {
var nsltrform = document.querySelector(“#nsltr”);
var nsltrSuccess = document.querySelector(“#successnsltr”);
nsltrform.classList.add(“hideblock”);
nsltrSuccess.classList.remove(“hideblock”);
}
function validateEmail(email) {
return String(email)
.toLowerCase()
.match(
/^(([^()[]\.,;:s@”]+(.[^()[]\.,;:s@”]+)*)|(“.+”))@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/
);
}
function validateEmailAddress() {
const result = document.querySelector(“#result”);
const email = document.querySelector(“#email”).value;
result.innerText = “”;
if(validateEmail(email)) {
newsletterSubscribe(email);
} else {
result.innerText = ‘The email entered: ‘ + email + ‘ is not valid :(‘;
result.style.color = “red”;
}
return false;
}
function newsletterSubscribe(email) {
fetch(“https://services.gazette.com/mg2-newsletters.php?action=subscribe&site=denvergazette.com&emailPreferenceId=59&email=” + email, {
method: “POST”
}).then(res => {
console.log(“SUCCESSFUL POST”);
subscribeSuccess();
});
}
#nsltr {
min-width: 100%;
margin: 10px 0;
padding: 10px 20px;
background-color: #2076b3;
background-image: url(https://static.gazette.com/emails/circ/Audience%20Images/pp5%20signup%203.png);
background-size: cover;
}
#nsltr-header {
color: #fff4f4;
}
#nsltr-body {
text-align: center;
color: #ffffff;
}
#nsltr-button {
margin-top: 5px;
}
#successnsltr {
min-width: 100%;
margin: 10px 0;
padding: 10px 20px;
background-color: green;
text-align: center;
color: white;
}
#successnsltr a {
color: white;
}
.hideblock {
display:none;
}
h6 a {
color: black;
text-decoration: none;
padding: 5px;
background-color: #bbccdd;
font-weight: 600;
}
@media only screen and (min-width: 768px) {
#nsltr {
background-image: url(https://static.gazette.com/emails/circ/Audience%20Images/pp5%20signup%203.png);
background-size: cover;
}
}
But nobody brings the experience of Harris, who first emerged in 2022 before suffering an injury that led to a medical turnback and extended his stay at the academy through this December while the majority of the class he entered with graduated this past May.
“I think just the experience and maturity that comes with it,” Harris said when asked how he’s different than he was two years ago. “I’ve played in a lot of games and we have a lot of young guys on our team, so just sharing the experiences I’ve had and helping them kind of bridge the gap from high school ball to college ball, I think I can help them in that way.”
Coach Troy Calhoun loves a leader who brings positive energy, and that’s what he sees in Harris.
“I tell you what’s so impressive about Cade Harris is how hard he practices every single day,” Calhoun said. “Just, the quickness. Whenever he has a rep it’s full tilt. The pride he takes in being assignment-sound. A true leader by example. There are a lot of big talkers, but for him it’s evident just by the commitment he makes, and that’s contagious in a positive way.”
After graduating this winter, Harris will report as a logistics readiness officer at Malmstrom Air Force Base in Montana.
What he still doesn’t know is the identity of the quarterback who will be running the offense in his final season with the Falcons; Josh Johnson and Liam Szarka are the frontrunners in the competition.
Whoever plays – and history has shown it will be more than one quarterback over the course of the season – the veteran is ready to assist.
“I trust that our coaches are going to put the guy that they feel is best,” Harris said, “and whoever it is we’re going to rock and we’re going to go.”