Rust Belt United logo

Rust Belt United

Black & Red • Buffalo, NY

BDSL • Buffalo District Soccer League

Meet the Players

Faces behind the badge. Get to know the Rust Belt United squad on and off the pitch.

Squad list by jersey number, with primary positions. Photos and blurbs get updated as the season rolls.

Christian Abbatessa
Christian Abbatessa
#11
Midfielder

Lives off through balls and questionable offside calls.

Dominic Abbatessa
Dominic Abbatessa
#27
Midfielder

Energetic midfielder who treats every loose ball like it talked trash about him.

Josh Gabalski
Josh Gabalski
#23
Midfielder

He is everywhere and nowhere all at once.

Steve Geffert
Steve Geffert
#22
Defender

Reliable defender who wins duels and keeps the back line organized.

Cam Gradwell
Cam Gradwell
#20
Midfielder

Looks like he’s taking a passport photo but plays like he’s trying to cover every blade of grass in midfield.

Kai Hays
Kai Hays
#18
Midfielder

Plays like his hair: unpredictable, all over the place, and somehow always causing problems for defenders.

Sean Hays
Sean Hays
#7
Defender

Plays like every game is a cup final and proudly treats that trophy as a personality trait.

Brandon Kaempffe
Brandon Kaempffe
#2
Defender

If he’s sliding, someone’s going to ground—ball optional.

Ryan Lefrois
Ryan Lefrois
#15
Midfielder

Midfielder whose photo looks like paperwork, but whose first touch says “do not let him turn.”

Zach Linder
Zach Linder
#10
Striker

Looks like he’s unveiling a marquee signing, but it’s actually a new spreadsheet for tracking fines and expected goals in the same tab.

Casey Mosher
Casey Mosher
#13
Defender

Fullback who looks like he finishes his homework, then quietly locks down your fastest winger for 90 minutes.

Kyle Norton
Kyle Norton
#4
Midfield / Defense

Looks like he’s late to a car meet, but somehow still finishes every cutback at the back post.

Matthew Perryman
Matthew Perryman
#21
Defender

Clears danger, and occasionally the parking lot.

Ben Roesser
Ben Roesser
#12
Midfielder

Saved his first burger for age 30 and now finishes chances and cheeseburgers with the same calm.

Nate Rosenthal
Nate Rosenthal
#17
Striker

If it moves, he presses it. If it doesn’t, he still presses it.

Will Rossi
Will Rossi
#6
Defensive Midfielder

Defensive mid who took a corporate headshot at 3 p.m. and still made an 8 p.m. kickoff to win every header in sight.

Ryan Smith
Ryan Smith
#16
Central Midfielder

Weekend warrior whose knees have clearly seen more 50–50s than his doctor would recommend, but somehow he’s still available for every Sunday kickoff.

Matthew Walsh
Matthew Walsh
#9
Central Midfielder

Records more “one more” runs than the GPS can handle.

Alex Ward
Alex Ward (C)
#1
Goalkeeper • Captain

Skipper with pure “I’ll shout at you for 89 minutes, then buy the first round after the game” energy in a goalkeeper’s kit.

Philip Ward
Philip Ward
#8
Striker

Runs like a headless chicken for 89 minutes, finally bundles one in off his shin, and celebrates like it was all part of the master plan.