| 12-10 | DNF | | Paris - Tours Espoirs (1.2U) | 176.0km |
| 03-10 | 98 | | Sparkassen Münsterland Giro (1.Pro) | 191.0km |
| 27-09 | 41 | | Arno Wallaard Memorial (1.2) | 188.0km |
| | | Škoda Tour de Luxembourg (2.Pro) |
| 21-09 | DNF | | Stage 5Mersch - Luxembourg (176.0km) | 176.0km |
| 20-09 | 64 | 92 | Stage 4Niederanven - Niederanven (26.0km) | 26.0km |
| 19-09 | 102 | 97 | Stage 3Mertert - Vianden (170.0km) | 170.0km |
| 18-09 | 92 | 94 | Stage 2Remich - Mamer (168.0km) | 168.0km |
| 17-09 | 101 | 102 | Stage 1Luxembourg - Luxembourg (152.0km) | 152.0km |
| | | Tour of Bulgaria (2.2) |
| 39 | | Klassement |
| 9 | | Punten |
| 19 | | Jongeren |
| 04-09 | 79 | 39 | Stage 5Sliven - Sliven (113.0km) | 113.0km |
| 03-09 | 56 | 24 | Stage 4Troyan - Sliven (194.0km) | 194.0km |
| 02-09 | 23 | 25 | Stage 3Kazanlak - Troyan (118.0km) | 118.0km |
| 01-09 | 102 | 64 | Stage 2Karnobat - Kazanlak (134.0km) | 134.0km |
| 31-08 | 34 | 62 | Stage 1Primorsko - Burgas (122.0km) | 122.0km |
| 30-08 | 70 | 70 | ProloguePrimorsko - Primorsko (3.0km) | 3.0km |
| | | Tour Alsace (2.2) |
| 03-08 | DNS | | Stage 5Ribeauville - Champ du Feu (135.0km) | 135.0km |
| 02-08 | 140 | 134 | Stage 4Ferrette - Altkirch (133.0km) | 133.0km |
| 01-08 | 111 | 108 | Stage 3Velleminfroy - La Planche des Belles Filles (141.0km) | 141.0km |
| 31-07 | 144 | 66 | Stage 2Rust (Europapark) - Selestat (168.0km) | 168.0km |
| 30-07 | | 62 | Stage 1Sausheim - Sausheim (4.0km) | 4.0km |
| 06-07 | 29 | | National Road Championships - Germany U23 (CN) | |
| 27-06 | 17 | | National Road Championships - Germany TT U23 (CN) | 22.0km |
| | | Tour of Lithuania (2.2) |
| 07-06 | DNF | | Stage 4Utena - Utena (160.0km) | 160.0km |
| 06-06 | 81 | 56 | Stage 3Kėdainiai - Kėdainiai (160.0km) | 160.0km |
| 05-06 | 11 | 45 | Stage 2Tauragė - Tauragė (176.0km) | 176.0km |
| 04-06 | 91 | 92 | Stage 1Klaipeda - Klaipeda (179.0km) | 179.0km |
| | | Oberösterreich Rundfahrt (2.2) |
| 63 | | Klassement |
| 3 | | Berg |
| 23 | | Jongeren |
| 01-06 | 84 | 63 | Stage 4Asten - Hinterstoder Höss (132.0km) | 132.0km |
| 31-05 | 57 | 55 | Stage 3Bad Schallerbach - Aigen-Schlägl (141.0km) | 141.0km |
| 30-05 | 16 | 58 | Stage 2Eferding - Ried im Innkreis (177.0km) | 177.0km |
| 29-05 | 74 | 74 | Stage 1Linz - Pöstlingberg (4.0km) | 4.0km |
| | | Orlen Nations Grand Prix (2.NCUP) |
| 83 | | Klassement |
| 17-05 | 44 | 83 | Stage 4Lesko - Arlamów (146.0km) | 146.0km |
| 16-05 | 112 | 98 | Stage 3Ustrzyki Dolne - Arlamów (138.0km) | 138.0km |
| 15-05 | 80 | 78 | Stage 2Jaroslaw - Arlamów (143.0km) | 143.0km |
| 14-05 | 24 | 24 | Stage 1Lancut - Jaslo (155.0km) | 155.0km |
| 04-05 | 32 | | Fyn Rundt - Tour of Funen (1.2) | 198.0km |
| 03-05 | 14 | | Grand Prix Herning (1.2) | 176.0km |
| 01-05 | 8 | | Eschborn-Frankfurt U23 (1.2U) | 129.0km |
| 25-04 | 14 | | Gran Premio della Liberazione (1.2U) | 138.0km |
| 22-04 | DNF | | G.P. Palio del Recioto - Trofeo Zanotti Mobili (1.2U) | 147.0km |
| 21-04 | 36 | | Giro del Belvedere (1.2U) | 168.0km |
| | | Olympia's Tour (2.2) |
| 71 | | Klassement |
| 32 | | Jongeren |
| 30-03 | 64 | 71 | Stage 5Neede - Tiel (185.0km) | 185.0km |
| 29-03 | 96 | 88 | Stage 4Zwolle - Zwolle (195.0km) | 195.0km |
| 28-03 | 67 | 78 | Stage 3Kerkdriel - Rossum (148.0km) | 148.0km |
| 27-03 | 82 | 88 | Stage 2Beek - Beek (175.0km) | 175.0km |
| 26-03 | 100 | 100 | Stage 1Beltrum - Beltrum (10.0km) | 10.0km |
| 21-03 | 90 | | Youngster Coast Challenge (1.2U) | 170.0km |
| | | Istrian Spring Tour (2.2) |
| 15-03 | DNF | | Stage 2Novigrad - Motovun (139.0km) | 139.0km |
| 14-03 | 18 | 61 | Stage 1Porec - Funtana (142.0km) | 142.0km |
| 13-03 | 84 | 84 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 09-03 | 111 | | POREČ Classic (1.2) | 146.0km |
| 05-03 | 61 | | UMAG Classic (1.2) | 142.0km |
| 14-02 | 18 | | UEC Track European Championships (Individual Pursuit) (CC) | |