Il a commencé le rugby à XV à Hagondange en Lorraine à l'âge de six ans, et est ensuite entré au centre de formation du Castres olympique en 2001. Il a passé cinq saisons au sein des groupes cadets, juniors et espoirs du club où il fréquente toutes les sélections départementales et régionales à XV et à sept.
Il a été international des moins de 18 ans français et n'a pas intégré le pôle de Marcoussis en 2003 à la suite de son intégration dans le groupe professionnel du Castres olympique.
En manque de temps de jeu, il signe en 2006-2007 pour le voisin du SC Albi qui vient d'accéder au Top 14[2].
Il retrouve alors une place de titulaire et s'imposant notamment sur le terrain de son ancien club, le Castres olympique[3], permettant à Albi d'obtenir un essai de pénalité décisif en fin de match.
Il reste ensuite à Albi malgré sa descente administrative en 2008[4] et permet ainsi à son club d'obtenir une remontée immédiate.
En 2010, il rejoint le vice-champion de France Perpignan où il est le plus souvent la doublure de Florian Cazenave.
Il retrouve ensuite une place de titulaire à Pau en Pro D2 et permet à son club de remonter en Top 14.
Après une saison à Biarritz puis une autre à Provence Rugby, il revient en 2017 dans son ancien club du SC Albi pour épauler bénévolement le groupe professionnel après la mise à l'écart du trio d'entraîneur Milhas - Berot - Bacca[5],[6]. À l'intersaison 2017, il est nommé entraîneur du club auprès du nouveau manager Arnaud Méla. En , il reprend une licence de joueur amateur pour intégrer l'effectif du SC Albi.