Early career Geis made his Bundesliga debut for
1. FSV Mainz 05 at 11 August 2013 in a 3–2 home win against
VfB Stuttgart. On 17 August 2013, he provided an assist to
Niki Zimling's opening goal in a 1–2 away win against
SC Freiburg.
Schalke 04 On 23 June 2015, Geis joined
FC Schalke 04 on a four-year deal for a fee in the region of €12 million. On 8 August, he marked his competitive debut by scoring in a 5–0 win at
MSV Duisburg in the first round of the
DFB-Pokal. Geis was sent off for a horrible studs-up challenge on
André Hahn in a 3–1 defeat to
Borussia Mönchengladbach on 25 October which resulted in a five-match ban for Geis, and left Hahn requiring surgery for a fractured tibia and a lateral meniscus tear. However, Geis was still allowed to play
Europa League matches, in which he equalized from the penalty spot against
Sparta Prague on 5 November in a 1–1 draw.
Sevilla On 1 September 2017, Geis joined Spanish club
Sevilla on a season-long loan deal, which includes a buyout option for €8 million.
1. FC Köln On 13 January 2019, Geis signed a contract with
1. FC Köln until the end of the season. In spite of a moderately successful time at Köln, the club announced that they would not offer him a contract extension, making him a free agent from July. He left the club at the end of the season.
1. FC Nürnberg On 23 July 2024, the contract between Geis and
1. FC Nürnberg was terminated by mutual consent after 5 seasons at the club.
SpVgg Unterhaching On 18 October 2024, Geis joined
3. Liga club
SpVgg Unterhaching.
1. FC Schweinfurt 05 After Unterhaching was relegated from
3. Liga, on 17 June 2025 Geis signed for
1. FC Schweinfurt 05, that was promoted to 3. Liga as champion of tier-four
Regionalliga Bayern. ==International career==