| 03-10 | DNF | | Binche - Chimay - Binche (1.1) | 198.0km |
| 01-10 | DNF | | Lotto Famenne Ardenne Classic (1.1) | 188.0km |
| | | Skoda Tour Luxembourg (2.Pro) |
| 97 | | Klassement |
| 30 | | Punten |
| 1 | | Berg |
| 24-09 | 79 | 97 | Stage 5Mersch - Luxembourg (177.0km) | 177.0km |
| 23-09 | 100 | 103 | Stage 4Pétange - Pétange (23.0km) | 23.0km |
| 22-09 | 65 | 103 | Stage 3Mertert - Vianden (168.0km) | 168.0km |
| 21-09 | 109 | 108 | Stage 2Mondorf-les-Bains - Mamer (183.0km) | 183.0km |
| 20-09 | 106 | 106 | Stage 1Luxembourg - Luxembourg (156.0km) | 156.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 18 | | Klassement |
| 27-08 | 43 | 18 | Stage 8Val Cenis - Sainte-Foy-Tarentaise (100.0km) | 100.0km |
| 26-08 | 15 | 16 | Stage 7bLes Karellis - Col du Mont Cenis (70.0km) | 70.0km |
| 26-08 | 31 | 22 | Stage 7aMontricher-Albanne - Les Karellis (11.0km) | 11.0km |
| 25-08 | 23 | 22 | Stage 6Méribel - Col de la Loze (Méribel) (65.0km) | 65.0km |
| 24-08 | 27 | 37 | Stage 5La Tour-de-Salvagny - Lac d'Aiguebelette (141.0km) | 141.0km |
| 23-08 | 55 | 45 | Stage 4Aigurande - Évaux-les-Bains (149.0km) | 149.0km |
| 22-08 | | 38 | Stage 3Vatan - Issoudun (21.0km) | 21.0km |
| 21-08 | 49 | 32 | Stage 2Nozay - Château-Chinon (189.0km) | 189.0km |
| 20-08 | 49 | 49 | Stage 1Carnac - La Gacilly (140.0km) | 140.0km |
| 12-08 | 20 | | UCI World Championship Glasgow U23 (CM) | 168.0km |
| 09-08 | 36 | | UCI World Championship Glasgow TT U23 (CM) | 36.0km |
| | | Tour de l'Ain (2.1) |
| 30 | | Klassement |
| 02-08 | 24 | 30 | Stage 3Oyonnax - Lélex (137.0km) | 137.0km |
| 01-08 | 55 | 58 | Stage 2Saint-Vulbas - Lagnieu (124.0km) | 124.0km |
| 31-07 | 67 | 67 | Stage 1Loyettes - La Plaine Tonique (154.0km) | 154.0km |
| 25-06 | 3 | | National Road Championships - Luxembourg (CN) | |
| 21-06 | 2 | | National Road Championships - Luxembourg TT U23 (CN) | |
| | | Giro d'Italia Giovani (2.2U) |
| 16-06 | 122 | | Stage 6Pergine Valsugana - Povegliano (166.0km) | 166.0km |
| 15-06 | 125 | 61 | Stage 5Cesano Maderno - Manerba del Garda (164.0km) | 164.0km |
| 14-06 | 21 | 20 | Stage 4Morbegno - Passo dello Stelvio (118.0km) | 118.0km |
| 13-06 | 40 | 17 | Stage 3Priocca - Magenta (146.0km) | 146.0km |
| 12-06 | 22 | 16 | Stage 2San Francesco al Campo - Cherasco (151.0km) | 151.0km |
| 11-06 | 21 | 21 | Stage 1Aglie - Aglie (9.0km) | 9.0km |
| | | Orlen Nations Grand Prix (2.NCUP) |
| 12 | | Klassement |
| 28-05 | 11 | 12 | Stage 5Sanok - Arlamów (146.0km) | 146.0km |
| 27-05 | 15 | 21 | Stage 4Bukovina - Nowy Sacz (128.0km) | 128.0km |
| 26-05 | 19 | 23 | Stage 3Levoca - Strbské Pleso (130.0km) | 130.0km |
| 25-05 | 14 | 24 | Stage 2Hatvan - Bükkszentkereszt (154.0km) | 154.0km |
| 24-05 | 78 | 78 | Stage 1Kapsosvár - Balatonföldvár (136.0km) | 136.0km |
| | | Flèche du Sud (2.2) |
| 12 | | Klassement |
| 35 | | Punten |
| 12 | | Berg |
| 21-05 | 48 | 12 | Stage 4Esch-sur-Alzette - Esch-sur-Alzette (147.0km) | 147.0km |
| 20-05 | 20 | 12 | Stage 3Sanem - Sanem (148.0km) | 148.0km |
| 19-05 | 14 | 12 | Stage 2Bourscheid - Bourscheid (131.0km) | 131.0km |
| 18-05 | 56 | 33 | Stage 1Rumelange - Rumelange (156.0km) | 156.0km |
| 17-05 | 35 | 35 | PrologueEsch-sur-Alzette - Esch-sur-Alzette (3.0km) | 3.0km |
| 07-05 | 15 | | Flèche Ardennaise (1.2) | 170.0km |
| 06-05 | DNF | | Ronde van Overijssel (1.2) | |
| 01-05 | 22 | | Eschborn-Frankfurt U23 (1.2U) | 107.0km |
| 15-04 | 87 | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| | | Circuit des Ardennes (2.2) |
| 07-04 | DNS | | Stage 2Renneville - Gruyères (187.0km) | 187.0km |
| 06-04 | 4 | 4 | Stage 1Nouvion-sur-Meuse - Sedan (90.0km) | 90.0km |
| 26-03 | 20 | | Gent-Wevelgem / Kattekoers-Ieper U23 (1.2U) | 183.0km |
| 17-03 | 76 | | Youngster Coast Challenge (1.2U) | |
| 05-03 | 82 | | Grand Prix de la Ville de Lillers Souvenir Bruno Comini (1.2) | |
| 04-03 | 65 | | Le Tour des 100 Communes (1.2) | |
| 28-02 | 41 | | Le Samyn (1.1) | 209.0km |
| 15-01 | 1 | | Luxembourg National Championships CX U23 (CN) | |