W 2001 został zatrudniony na stanowisku kierownika referatu edukacji historycznej w Oddziałowym Biurze Edukacji Publicznej Instytutu Pamięci Narodowej w Warszawie.
Od 2016 do 2022 sprawował funkcję dyrektora Muzeum Żołnierzy Wyklętych i Więźniów Politycznych PRL, a następnie został zastępcą dyrektora tej instytucji.
Jest autorem publikacji historycznych o najnowszej historii Polski, m.in. Nieznani bohaterowie (cz. I: 1995, cz. II: 1998), Rotmistrz Witold Pilecki (2009), Generał Leopold Okulicki (z Januszem Kurtyką; 2010).
Działalność opozycyjna w okresie PRL W 1979 roku był współzałożycielem i członkiem Młodzieżowego Komitetu Oporu w Płocku. W tym samym roku został aresztowany i skazany przez sąd dla nieletnich na nadzór kuratora za próbę wysadzenia trybuny podczas pochodu pierwszomajowego. W latach 1981–1987 należał do Konfederacji Polski Niepodległej. Został również członkiem „Solidarności”, a po wprowadzeniu stanu wojennego kontynuował działalność w podziemnych strukturach związku.