| 16-10 | 6 | | Chrono des Nations U23 (1.2U) | 27.0km |
| 14-09 | 13 | | Grand Prix de Wallonie (1.Pro) | 199.0km |
| 04-09 | 45 | | Maryland Cycling Classic (1.Pro) | 194.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 27-08 | DNF | | Stage 8Ugine - La Toussuire (99.0km) | 99.0km |
| 26-08 | 60 | 47 | Stage 7Thonon-les-Bains - Saint-François-Longchamp (175.0km) | 175.0km |
| 24-08 | 55 | 37 | Stage 6Saint-Amour - Oyonnax (124.0km) | 124.0km |
| 23-08 | | 43 | Stage 5Gueugnon - Saint-Vallier (27.0km) | 27.0km |
| 22-08 | 47 | 42 | Stage 4Sainte-Sévère-sur-Indre - Chaillac (142.0km) | 142.0km |
| 21-08 | 52 | 60 | Stage 3Civray - La Trimouille (153.0km) | 153.0km |
| 20-08 | 68 | 65 | Stage 2Benet - Civray (142.0km) | 142.0km |
| 19-08 | 72 | 72 | Stage 1La Roche-sur-Yon - La Roche-sur-Yon (121.0km) | 121.0km |
| 07-08 | 35 | | Commonwealth Games (JR) | |
| 04-08 | 8 | | Commonwealth Games TT (JR) | |
| | | Giro Ciclistico della Valle d'Aosta - Mont Blanc (2.2U) |
| 12 | | Klassement |
| 14 | | Punten |
| 15 | | Berg |
| 17-07 | 29 | 12 | Stage 5Valtournenche - Cervinia (119.0km) | 119.0km |
| 16-07 | 22 | 12 | Stage 4Pont-Saint-Martin - Fontainemore (173.0km) | 173.0km |
| 15-07 | 38 | 8 | Stage 3Aosta - Aosta (138.0km) | 138.0km |
| 14-07 | 20 | 8 | Stage 2Saint-Christophe - Saint-Christophe (124.0km) | 124.0km |
| 13-07 | 3 | 3 | Stage 1Saint-Gervais Mont-Blanc - Saint-Gervais Mont-Blanc (82.0km) | 82.0km |
| 10-07 | 27 | | UEC Road European Championships U23 (CC) | 147.0km |
| 07-07 | 6 | | UEC Road European Championships TT U23 (CC) | 22.0km |
| 26-06 | 5 | | National Road Championships - Ireland (CN) | |
| 23-06 | 1 | | National Road Championships - Ireland TT U23 (CN) | |
| | | Baby Giro (2.2U) |
| 39 | | Klassement |
| 37 | | Berg |
| 18-06 | 77 | 39 | Stage 7Cuneo - Pinerolo (142.0km) | 142.0km |
| 17-06 | 55 | 39 | Stage 6Boves - Colle Fauniera (110.0km) | 110.0km |
| 16-06 | 78 | 31 | Stage 5Busca - Peveragno (146.0km) | 146.0km |
| 14-06 | 67 | 26 | Stage 4Chiuro - Chiavenna (101.0km) | 101.0km |
| 13-06 | 23 | 20 | Stage 3Pinzolo - Santa Caterina Valfurva (177.0km) | 177.0km |
| 12-06 | 79 | 46 | Stage 2Rossano Veneto - Pinzolo (168.0km) | 168.0km |
| 11-06 | 57 | 57 | Stage 1Gradara - Argenta (163.0km) | 163.0km |
| 08-06 | 13 | | Coppa Zappi - Trofeo Hotel Antico Borgo (1.2) | 156.0km |
| 05-06 | 47 | | Trofeo Città di Meldola – G.P. AWC Event (1.2) | |
| 29-05 | 21 | | Coppa della Pace - Trofeo F.lli Anelli (1.2U) | |
| 28-05 | 1 | | Strade Bianche di Romagna (1.2U) | |
| 21-05 | 65 | | Veenendaal-Veenendaal Classic (1.1) | 195.0km |
| 16-04 | 33 | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| | | Circuit des Ardennes (2.2) |
| 21 | | Klassement |
| 18 | | Berg |
| 12 | | Jongeren |
| 09-04 | 38 | 21 | Stage 4Charleville-Mézières - Charleville-Mézières (175.0km) | 175.0km |
| 07-04 | 20 | 22 | Stage 2Bazeilles - Sedan (133.0km) | 133.0km |
| 06-04 | 65 | 66 | Stage 1Signy-le-Petit - Signy-le-Petit (165.0km) | 165.0km |
| | | Le Triptyque des Monts et Châteaux
(2.2U) |
| 13 | | Klassement |
| 22 | | Punten |
| 03-04 | 8 | 13 | Stage 3bEllezelles - Saint-Sauveur (96.0km) | 96.0km |
| 03-04 | 16 | 15 | Stage 3aWodecq - Wodecq (14.0km) | 14.0km |
| 02-04 | 36 | 20 | Stage 2Bernissart - Tertre (169.0km) | 169.0km |
| 01-04 | 18 | 18 | Stage 1Antoing - Mont-Saint-Aubert (131.0km) | 131.0km |
| | | Istarsko Proljece-Istrian Spring Trophy (2.2) |
| 34 | | Klassement |
| 7 | | Berg |
| 13-03 | 55 | 34 | Stage 3Pazin - Umag (136.0km) | 136.0km |
| 12-03 | 31 | 35 | Stage 2Novigrad - Motovun (175.0km) | 175.0km |
| 11-03 | 69 | 53 | Stage 1Porec - Funtana (152.0km) | 152.0km |
| 10-03 | 56 | 56 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 06-03 | 41 | | Trofej Porec - Porec Trophy
(1.2) | |
| 02-03 | 32 | | Trofej Umag - Umag Trophy (1.2) | |