Formé à l’ENSATT (école de la Rue Blanche), il a joué au théâtre de nombreux premiers rôles classiques ou contemporains. Récemment, il a été remarqué pour ses interprétations d’Alexandre dans La Trilogie d’Alexandre, écrite et mise en scène par Hugo Paviot, de Martin Lorient dans Invisibles, écrit et mis en scène par Nasser Djemaï (3 nominations aux Moières), ou encore de Tomas Jacobi dans Face à face d’Ingmar Bergman mis en scène par Léonard Matton au Théâtre de l’Atelier, aux côtés d’Emmanuelle Bercot. Il a joué aussi sous la direction de Vincent Thomasset dans Lettres de non motivation d’après J. Prévieux, dans le cadre du Festival d’Automne à Paris.

Au cinéma, il remporte en 2018 le prix du meilleur acteur au Festival international du film de Bruxelles et le prix d’interprétation au Festival de Richmond (USA) pour son interprétation du premier rôle du film de Bertrand Guerry, Mes Frères.

Egalement auteur, il obtient une bourse Beaumarchais pour sa pièce Todas a una. Il reçoit pour son second texte Amaya, prénom Carmen, mis en scène par Bruno Gantillon, le prix Nouvelles écritures organisé par La Scène Watteau, le Théâtre des Quartiers d’Ivry et le Théâtre de Cachan. La pièce est reprise au Théâtre du Lucernaire, puis traduite et jouée en Espagne et à Porto Rico.

Pour La Valise Compagnie, David a coécrit et joué avec Natacha Diet Les Reliquats, puis a adapté et mis en scène L’Enfant cachée dans l’encrier de Joël Jouanneau, en étroite collaboration avec l’auteur, dans le cadre du triptyque marionnettique Outreciel.

Il écrit en 2014, à la demande d'Hugo Paviot, le texte Madame pour le projet collectif En haut !, produit par le Théâtre de la Chapelle Saint-Louis à Rouen et publié chez Lansman Editeur.