| 14-10 | 2 | | Youth Olympic Games (OS) | |
| 27-09 | DNF | | UCI World Championship Innsbruck U19 (CM) | 138.0km |
| 25-09 | 31 | | UCI World Championship Innsbruck TT U19 (CM) | 28.0km |
| | | Grand Prix Róebliland (2.1) |
| 7 | | Klassement |
| 02-09 | 36 | 7 | Stage 4Steinmaur - Steinmaur (114.0km) | 114.0km |
| 01-09 | 6 | 8 | Stage 3Möhlin - Möhlin (9.0km) | 9.0km |
| 01-09 | 45 | 25 | Stage 2Möhlin - Möhlin (83.0km) | 83.0km |
| 31-08 | 15 | 19 | Stage 1Wittnau - Wittnau (93.0km) | 93.0km |
| | | Ronde des Vallées (2.1) |
| 12-08 | 5 | | Stage 2Saint-Caradec - Hémonstoir (11.0km) | 11.0km |
| 12-08 | 18 | 18 | Stage 3Hémonstoir - Hémonstoir | |
| 11-08 | 42 | | Stage 1Allineuc - Allineuc | |
| 21-07 | 1 | | Luxembourg National Championships - XCO U19 (CN) | |
| 15-07 | 33 | | UEC Road European Championships U19 (CC) | 118.0km |
| 13-07 | 30 | | UEC Road European Championships TT U19 (CC) | 24.0km |
| | | GP Général Patton (2.NCUP) |
| 16 | | Klassement |
| 8 | | Punten |
| 08-07 | 23 | 16 | Stage 2Munshausen - Munshausen (93.0km) | 93.0km |
| 07-07 | 5 | | Stage 1Ettelbrück - Troisvierges (102.0km) | 102.0km |
| 01-07 | 2 | | National Road Championships - Luxembourg U19 (CN) | 23.0km |
| 28-06 | 1 | | National Road Championships - Luxembourg TT U19 (CN) | |
| | | 31. Trofeo (2.NCUP) |
| 26 | | Klassement |
| 17 | | Berg |
| 10-06 | 64 | 26 | Stage 4Niedergailbach - Bliesdalheim (120.0km) | 120.0km |
| 09-06 | 59 | 59 | Stage 3aHomburg - Homburg (79.0km) | 79.0km |
| 09-06 | 35 | 28 | Stage 3bMedelsheim - Medelsheim (13.0km) | 13.0km |
| 08-06 | 61 | 41 | Stage 2Ommersheim - Altheim (99.0km) | 99.0km |
| 07-06 | 84 | 84 | Stage 1Neunkirchen - Münchwies (110.0km) | 110.0km |
| | | Tour du Pays de Vaud (2.NCUP) |
| 21 | | Klassement |
| 27-05 | 23 | 21 | Stage 4Cossonay - Tartegnin (113.0km) | 113.0km |
| 26-05 | 6 | 29 | Stage 3aCully - Savigny (78.0km) | 78.0km |
| 26-05 | 9 | | Stage 3bSavigny - Savigny (10.0km) | 10.0km |
| 25-05 | 52 | 44 | Stage 2Missy - Bioley-Magnoux (120.0km) | 120.0km |
| 24-05 | 55 | 55 | Stage 1Lausanne - Lausanne (4.0km) | 4.0km |
| | | Course de la Paix Juniors (2.NCUP) |
| 30 | | Klassement |
| 06-05 | 26 | 30 | Stage 4Benesov nad Ploucnici - Terezín (97.0km) | 97.0km |
| 05-05 | 36 | 34 | Stage 3Teplice - Altenberg (96.0km) | 96.0km |
| 04-05 | 17 | 56 | Stage 2aTrebenice - Trebenice (11.0km) | 11.0km |
| 04-05 | 59 | 55 | Stage 2bRoudnice nad Labem - Roudnice nad Labem (62.0km) | 62.0km |
| 03-05 | 61 | 61 | Stage 1Litomerice - Litomerice (102.0km) | 102.0km |
| | | 5éme Tour des Portes du Pays d'Othe (2.1) |
| 22 | | Klassement |
| 7 | | Berg |
| 29-04 | 76 | 22 | Stage 2bEstissac - Estissac (90.0km) | 90.0km |
| 29-04 | 23 | 22 | Stage 2aEstissac - Estissac (16.0km) | 16.0km |
| 28-04 | 42 | 42 | Stage 1Romilly-s-Seine - Estissac (93.0km) | 93.0km |
| 01-04 | 22 | | Grand Prix Bob Jungels (1.1) | |
| 25-03 | 18 | | Gent-Wevelgem/Grote Prijs A. Noyelle-Ieper (1.NCUP) | |
| 03-02 | 18 | | UCI Cyclo-cross World Championships Valkenburg U19 (CM) | |
| 28-01 | 14 | | Telenet UCI Cyclo-cross World Cup Hoogerheide U19 (CDM) | |
| 21-01 | 1 | | Grand Prix Möbel Alvisse (C2) | |
| 13-01 | 2 | | Luxemburg National Championships Cyclo-Cross U19 (CN) | |
| 01-01 | 2 | | Grand Prix G.I.L. Immobilière (C2) | |