| Loss | 0–1 | Mar 2011 | Switzerland F1, Fällanden | Futures | Carpet (i) | Belgium Gaëtan de Lovinfosse | Germany Nils Langer Austria Marc Rath | 3–6, 6–7(5–7) |
| Loss | 0–2 | Aug 2013 | Poland F1, Ślęza | Futures | Hard | Netherlands Jeroen Benard | Germany Stefan Seifert Germany Torsten Wietoska | 4–6, 7–6(7–4), [6–10] |
| Loss | 0–3 | Oct 2013 | Great Britain F20, Sunderland | Futures | Hard (i) | India Vijay Sundar Prashanth | United Kingdom Josh Goodall United Kingdom Harry Meehan | 3–6, 6–4, [8–10] |
| Win | 1–3 | Jul 2014 | Austria F5, Bad Waltersdorf | Futures | Clay | Czech Republic Jan Blecha | Austria Mario Haider-Maurer Czech Republic Jan Poskocil | 6–4, 6–1 |
| Win | 2–3 | Aug 2014 | Germany F10, Wetzlar | Futures | Clay | Netherlands Dennis van Scheppingen | Germany Julian Lenz Germany Lars Pörschke | 7–6(7–2), 7–6(7–5) |
| Loss | 2–4 | May 2015 | Spain F10, Vic | Futures | Clay | France Maxime Tabatruong | Spain Sergio Martos Gornés Spain Pol Toledo Bagué | 6–3, 6–7(7–4), [15–17] |
| Loss | 2–5 | May 2015 | Italy F12, Lecco | Futures | Clay | France Maxime Tabatruong | Australia Peter Luczak Australia Marc Polmans | 4–6, 2–6 |
| Win | 3–5 | Oct 2015 | Germany F17, Oberhaching | Futures | Hard (i) | Netherlands Niels Lootsma | Germany Johannes Härteis Germany Hannes Wagner | 2–6, 6–4, [10–8] |
| Win | 4–5 | Dec 2015 | Nigeria F3, Lagos | Futures | Hard | Netherlands Antal van der Duim | South Africa Lloyd Harris Egypt Karim-Mohamed Maamoun | 6–3, 6–2 |
| Loss | 4–6 | Dec 2015 | Nigeria F4, Lagos | Futures | Hard | Netherlands Antal van der Duim | South Africa Lloyd Harris Egypt Karim-Mohamed Maamoun | 5–7, 6–7(6–8) |
| Loss | 4–7 | Mar 2016 | France F4, Lille | Futures | Hard (i) | Netherlands Antal van der Duim | Russia Denis Matsukevitch Russia Daniil Medvedev | 6–7(5–7), 6–4, [9–11] |
| Win | 5–7 | Mar 2016 | Italy F2, Basiglio | Futures | Hard (i) | Netherlands Antal van der Duim | France Antoine Hoang France Grégoire Jacq | 6–4, 6–4 |
| Win | 6–7 | Apr 2016 | Nigeria F2, Abuja | Futures | Hard | Netherlands Antal van der Duim | Switzerland Luca Margaroli Serbia Ilija Vučić | 7–5, 3–6, [10–7] |
| Loss | 6–8 | May 2016 | Nigeria F3, Abuja | Futures | Hard | Netherlands Antal van der Duim | United States Nicolas Meister Spain David Pérez Sanz | 6–3, 6–7(2–7), [9–11] |
| Win | 7–8 | Jul 2016 | Netherlands F4, Amstelveen | Futures | Clay | Brazil José Pereira | Netherlands Miliaan Niesten Netherlands Boy Westerhof | 6–4, 3–6, [10–3] |
| Win | 8–8 | Jul 2016 | Austria F2, Kramsach | Futures | Clay | Austria Maximilian Neuchrist | Austria Sebastian Bader Austria Matthias Haim | 6–3, 5–7, [10–4] |
| Win | 9–8 | Jul 2016 | Germany F8, Kassel | Futures | Clay | Austria Maximilian Neuchrist | Czech Republic Petr Nouza Czech Republic David Škoch | 6–2, 7–6(7–5) |
| Win | 10–8 | Aug 2016 | Poland F5, Bydgoszcz | Futures | Clay | Austria Maximilian Neuchrist | Poland Michał Dembek Poland Grzegorz Panfil | 6–1, 7–5 |
| Loss | 10–9 | Nov 2016 | Finland F4, Helsinki | Futures | Hard (i) | Germany Andreas Mies | Germany Jeremy Jahn Poland Adam Majchrowicz | 6–3, 6–7(4–7), [8–10] |
| Loss | 10–10 | Jan 2017 | Germany F2, Kaarst | Futures | Carpet (i) | Belgium Joran Vliegen | Germany Jannis Kahlke Germany Oscar Otte | 3–6, 7–5, [8–10] |
| Loss | 10–11 | Feb 2017 | Switzerland F2, Bellevue | Futures | Carpet (i) | Austria Maximilian Neuchrist | Germany Daniel Altmaier Germany Marvin Netuschil | 5–7, 6–1, [9–11] |
| Loss | 10–12 | May 2017 | Sweden F1, Karlskrona | Futures | Clay | Netherlands Botic van de Zandschulp | Uruguay Martín Cuevas Sweden Christian Lindell | 4–6, 7–6(7–3), [9–11] |
| Win | 11–12 | Jul 2017 | Milan, Italy | Challenger | Clay | Poland Tomasz Bednarek | Italy Filippo Baldi Italy Omar Giacalone | 6–1, 6–1 |
| Loss | 11–13 | Aug 2017 | Liberec, Czech Republic | Challenger | Clay | Poland Tomasz Bednarek | Lithuania Laurynas Grigelis Czech Republic Zdeněk Kolář | 3–6, 4–6 |
| Win | 12–13 | Aug 2017 | Italy F25, Cornaiano | Futures | Clay | Portugal Gonçalo Oliveira | Italy Gianluca Di Nicola Italy Lorenzo Sonego | 6–3, 6–2 |
| Loss | 12–14 | Nov 2017 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Poland Tomasz Bednarek | Germany Andre Begemann France Jonathan Eysseric | 3–6, 4–6 |
| Win | 13–14 | May 2018 | Heilbronn, Germany | Challenger | Clay | Australia Rameez Junaid | Germany Kevin Krawietz Germany Andreas Mies | 6–2, 2–6, [10–7] |
| Loss | 13–15 | Sep 2018 | Sibiu, Romania | Challenger | Clay | Poland Tomasz Bednarek | Germany Kevin Krawietz Germany Andreas Mies | 4–6, 2–6 |
| Win | 14–15 | Oct 2018 | Florence, Italy | Challenger | Clay | Australia Rameez Junaid | Italy Filippo Baldi Italy Salvatore Caruso | 7–5, 3–6, [10–7] |
| Loss | 14–16 | Oct 2018 | Barcelona, Spain | Challenger | Clay | Australia Rameez Junaid | Brazil Marcelo Demoliner Spain David Vega Hernández | 6–7(3–7), 3–6 |
| Loss | 14–17 | Oct 2018 | Ismaning, Germany | Challenger | Carpet (i) | Australia Rameez Junaid | India Purav Raja Croatia Antonio Šančić | 7–5, 4–6, [5–10] |
| Loss | 14–18 | Nov 2018 | Andria, Italy | Challenger | Hard (i) | Switzerland Marc-Andrea Hüsler | Poland Karol Drzewiecki Poland Szymon Walków | 6–7(10–12), 6–2, [9–11] |
| Loss | 14–19 | Jan 2019 | Rennes, France | Challenger | Hard (i) | Croatia Antonio Šančić | Netherlands Sander Arends Austria Tristan-Samuel Weissborn | 4–6, 4–6 |
| Loss | 14–20 | Feb 2019 | Quimper, France | Challenger | Hard (i) | Croatia Antonio Šančić | France Fabrice Martin France Hugo Nys | 4–6, 2–6 |
| Loss | 14–21 | Apr 2019 | Anning, China, P.R. | Challenger | Clay | Chile Hans Podlipnik Castillo | Australia Max Purcell Australia Luke Saville | 6–4, 5–7, [5–10] |
| Win | 15-21 | Jul 2019 | Tampere, Finland | Challenger | Clay | Netherlands Sander Arends | Russia Ivan Nedelko Russia Alexander Zhurbin | 6–0, 6–2 |
| Win | 16-21 | Aug 2019 | Segovia, Spain | Challenger | Hard | Netherlands Sander Arends | Brazil Orlando Luz Brazil Felipe Meligeni Rodrigues Alves | 6–4, 7–6(7–3) |
| Win | 17-21 | Sep 2019 | Mallorca, Spain | Challenger | Hard | Netherlands Sander Arends | Poland Karol Drzewiecki Poland Szymon Walków | 7–5, 6–4 |
| Loss | 17–22 | Sep 2019 | Cassis, France | Challenger | Hard | Netherlands Sander Arends | Sweden André Göransson Netherlands Sem Verbeek | 6-7(6-8), 6–4, [9-11] |
| Loss | 17–23 | Oct 2019 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Netherlands Sander Arends | United Kingdom Jonny O'Mara United Kingdom Ken Skupski | 1–6, 4-6 |
| Loss | 17–24 | Nov 2019 | Ortisei, Italy | Challenger | Hard | Netherlands Sander Arends | Serbia Nikola Cacic Croatia Antonio Sancic | 7-6(5-7), 6-7(3-7), [7-10] |
| Win | 18-24 | Feb 2020 | Koblenz, Germany | Challenger | Hard (i) | Netherlands Sander Arends | Germany Julian Lenz Germany Yannick Maden | 7–6(7–4), 7–6(7–3) |
| Win | 19-24 | Aug 2020 | Prague, Czech Republic | Challenger | Clay | Netherlands Sander Arends | Sweden André Göransson Portugal Gonçalo Oliveira | 7–5, 7–6(7–5) |
| Win | 20-24 | Oct 2020 | Ismaning, Germany | Challenger | Carpet | Germany Andre Begemann | United States Alex Lawson United Kingdom Lloyd Glasspool | 5–7, 7–6(7–2), [10–4] |
| Win | 21-24 | Jan 2021 | Istanbul, Turkey | Challenger | Hard (i) | Sweden André Göransson | United Kingdom Lloyd Glasspool Finland Harri Heliövaara | 4–6, 6–3, [10–8] |
| Loss | 21–25 | Oct 2021 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Pakistan Aisam-ul-Haq Qureshi | France Jonathan Eysseric France Quentin Halys | 6-4, 6-7(5-7), [8-10] |
| Loss | 21–26 | Jan 2022 | Quimper, France | Challenger | Hard (i) | Netherlands Sander Arends | France Albano Olivetti Spain David Vega Hernández | 6-3, 4–6, [8-10] |
| Loss | 21–27 | Feb 2022 | Turin, Italy | Challenger | Hard (i) | Netherlands Sander Arends | Belgium Ruben Bemelmans Germany Daniel Masur | 6-3, 3–6, [8-10] |
| Win | 22–27 | Apr 2022 | Saint-Brieuc, France | Challenger | Hard (i) | Netherlands Sander Arends | France Jonathan Eysseric Netherlands Robin Haase | 6–3, 6–3 |
| Win | 23–27 | May 2022 | Mauthausen, Austria | Challenger | Clay | Netherlands Sander Arends | Germany Johannes Härteis Lebanon Benjamin Hassan | 6–4, 6–3 |
| Loss | 23–28 | Jun 2022 | Lyon, France | Challenger | Clay | Netherlands Sander Arends | Monaco Romain Arneodo France Jonathan Eysseric | 5-7, 6–4, [4-10] |
| Win | 24–28 | Aug 2022 | Meerbusch, Germany | Challenger | Clay | Poland Szymon Walków | Austria Neil Oberleitner Austria Philipp Oswald | 7–5, 6–1 |
| Win | 25–28 | Sep 2022 | Rennes, France | Challenger | Hard (i) | France Jonathan Eysseric | France Dan Added France Albano Olivetti | 6–4, 6–4 |
| Win | 26–28 | Oct 2022 | Mouilleron-le-Captif, France | Challenger | Hard (i) | Netherlands Sander Arends | India Purav Raja India Divij Sharan | 7–6(7–1), 6–7(6–8), [6–10] |
| Win | 27–28 | Jan 2023 | Oeiras, Portugal | Challenger | Hard (i) | Netherlands Sander Arends | Finland Patrik Niklas-Salminen Netherlands Bart Stevens | 6–3, 7–6(7–3) |
| Win | 28–28 | Mar 2023 | Lugano, Switzerland | Challenger | Hard (i) | Belgium Zizou Bergs | Germany Constantin Frantzen Germany Hendrik Jebens | 6–2, 7–6(8–6) |
| Win | 29–28 | Aug 2024 | Sauerland, Germany | Challenger | Clay | Netherlands Bart Stevens | Netherlands Matwé Middelkoop Ukraine Denys Molchanov | 6–4, 2–6, [10-8] |
| Win | 30–28 | Oct 2024 | Roanne, France | Challenger | Hard (i) | Colombia Nicolas Barrientos | Switzerland Jakub Paul Czech Republic Matěj Vocel | 4–6, 6–3, [10-6] |
| Win | 31–28 | Jan 2025 | Koblenz, Germany | Challenger | Hard (i) | Switzerland Jakub Paul | France Geoffrey Blancaneaux United Kingdom Joshua Paris | walkover |
| Win | 32–28 | Feb 2025 | Lille, France | Challenger | Hard (i) | Switzerland Jakub Paul | Poland Karol Drzewiecki Poland Piotr Matuszewski | 6–3, 6–4 |
| Loss | 32–29 | Feb 2025 | Lugano, Switzerland | Challenger | Hard (i) | Switzerland Jakub Paul | Canada Cleeve Harper United Kingdom David Stevenson | 6–4, 3–6, [8–10] |
| Win | 33–29 | Mar 2025 | Thionville, France | Challenger | Hard | Switzerland Jakub Paul | France Matteo Martineau France Luca Sanchez | 6–1, 6–4 |
| Loss | 33–30 | Apr 2025 | Madrid, Spain | Challenger | Clay | Switzerland Jakub Paul | Portugal Francisco Cabral Austria Lucas Miedler | 6–7(2–7), 4–6 |
| Loss | 33–31 | May 2026 | Valencia, Spain | Challenger | Clay | Netherlands Sander Arends | Germany Constantin Frantzen Netherlands Robin Haase | 4–6, 7–6(7–5), [9–11] |