Han är utbildad vid Operahögskolan i Stockholm. Vid Göteborgsoperan har han gestaltat roller som titelrollen i Riddar Blåskäggs borg av Bartók och Daland i Den Flygande Holländaren av Wagner.På Folkoperan har Johan sjungit Leporello i Peter Stormares uppsättning av Don Giovanni samt Figaro i Figaros bröllop, Alfonso i Cosi fan tutte och Raimondo i Lucia di Lammermoor.Han har också sjungit Don Giovanni på Malmö-operan
Våren 2007 gjorde han Gurnemanz i Wagners Parsifal på Värmlandsoperan och sommaren 2007 Kommendören/Masetto i Claes Fellboms uppsättning av Don Giovanni på Confidencen. Hösten 2007 sjöng han Arthur i Fyren av Maxwell Davies i regi av Mira Bartov med Piteå Kammaropera.
Han har också sjungit Gurnemanz i "Parsifal" i Karlstad Domkyrka för Värmlandsoperan.
Under 2008 sjöng han Kaspar i Webers "Friskytten" på Folkoperan och på hösten samma år Colline i "La Bohème" på Värmlandsoperan i Karlstad. En roll som han senare gjorde på GöteborgsOperan under 2009. Samma år sjöng han i Daniel Börtz nyskrivna opera "Goya" som hade premiär på Göteborgsoperan under hösten.
Våren 2010 sjöng han Veit Pogner i Richard Wagners "Mästersångarna i Nürnberg" samtidigt som han sjöng Colline i "La Bohème" i några föreställningar.
2008 erhöll han Folkoperans vänners soliststipendium.
Om du köper dina biljetter på nedanstående länk så får jag en liten provision