John Heffernan, 1981 yılında İngiltere'nin Billericay kentinde doğdu. Kariyerine 2002 yılında Foyle's War dizisinde James Griffin karakterini canlandırmasıyla başladı. Heffernan, oyunculuk kariyeri boyunca çeşitli tiyatro topluluklarıyla çalıştı. Bunlar arasında Royal Shakespeare Company (RSC), National Theatre ve English Touring Theatre bulunmaktadır. Bu topluluklarla çalışan sanatçı, tiyatro sahnesi ve ekranlar arasında geçiş yaptı.
Heffernan, televizyon ve filmlerde de önemli roller üstlendi. 2010 yılında Luther dizisinde Steven Rose karakterini canlandırdı. Ayrıca, 2016 yılında The Crown dizisinde Lord Altrincham rolünü aldı. 2014 yılında Outlander dizisinde Brigadier General Lord Thomas karakterini canlandırdı. 2020 yılında Dracula dizisinde Jonathan Harker rolünü üstlendi.