Nel 2006 partecipa agli Europei di nuoto, dove arriva a toccare per primo nella finale dei 200 rana, ma viene squalificato per virata irregolare. Allenato da Fulvio Albanese, nel 2007 ai mondiali di Melbourne si classifica terzo, sempre nei 200 rana. Nel 2008 compete alle Olimpiadi di Pechino nei 200 rana, ottenendo il 3º e il 6º miglior tempo rispettivamente nelle batterie e nelle semifinali, classificandosi 7º in finale. Nel 2009 compete ai mondiali di Roma nei 200 rana, ottenendo il 3º miglior tempo nelle semifinali, siglando il record italiano, che detiene, e classificandosi 8º in finale. Dopo un periodo in ombra si riaffaccia alla ribalta del panorama natatorio nazionale ai Campionati Italiani Assoluti Primaverili 2012 di Riccione, dove ottiene due quarti posti, rispettivamente nella finale dei 100 rana con 1.02.80 e nella finale dei 200 rana con 2.14.15