Après une formation au Conservatoire de Liège, en Belgique, il joue notamment sous la direction de Lorent Wanson (La Vie de Galilée de Bertolt Brecht, On dirait des vrais de J.M. Piemme, Salomé d’Oscar Wilde, Un ennemi du peuple de Henrik Ibsen, Sainte Jeanne des abattoirs de Bertolt Brecht, Oqt de F. Clarinval) ; Elizabeth Ancion (Vingt Heures précises de J-L Napolilo, Le Baron de Flemale d’A. Vanderbist, Le Pitchfork Disney de P. Ridley, La d-mission de J.L. Napolilo) ; Jean-Claude Berutti (Le Mariage de Figaro de Beaumarchais, Beaucoup de bruit pour rien de Shakespeare)… Il joue dans plusieurs mises en scène de Laurent Pelly : Le Roi nu d’Evguéni Schwartz, Foi Amour Espérance d’Ödön von Horváth, Le Songe d’August Strindberg, Renseignements généraux de Serge Valletti, Les Malices de Plick et Plock de Christophe, Jacques ou la soumission et L’Avenir est dans les œufs d’Eugène Ionesco, Le Menteur de Carlo Goldoni, Mille francs de récompense de Victor Hugo, Funérailles d’hiver de Hanokh Levin, Macbeth de William Shakespeare. Il joue Monsieur le 6, d’après Donatien de Sade (2009 et 2011), dans Tennessee Williams – Short stories (2011 et 2013) et Erik Satie – Mémoires d’un amnésique (2013 et 2014), spectacles réalisés par Agathe Mélinand. En 2014, il joue dans Le Songe d’une nuit d’été mis en scène par Laurent Pelly au Théâtre national de Toulouse. Cette même année, il joue aussi dans le spectacle jeune public Histoire de Babar, le petit éléphant, réalisé par Agathe Mélinand, aux côtés du pianiste Charles Lavaud. En 2015, on le retrouve dans L’Oiseau vert de Carlo Gozzi, traduit par Agathe Mélinand, mis en scène par Laurent Pelly, au Théâtre national de Toulouse et en tournée. En 2016, il joue dans Les Oiseaux d’Aristophane traduit par Agathe Mélinand et mis en scène par Laurent Pelly.