Absolwent szkoły średniej w Zespole Szkół Morskich w Darłowie. W połowie lat 80. zaangażował się w działalność pacyfistycznego i opozycyjnego Ruchu Wolność i Pokój. Zajmował się dystrybucją pism drugiego obiegu, redagował prasę podziemną („Ucho”, „Rewers”).
Po przemianach politycznych organizował „Gazetę Obywatelską”. Wstąpił do Stowarzyszenia Dziennikarzy Polskich. Od 1991 publikował w „Gazecie Wyborczej”, był dyrektorem szczecińskiego Radia na Fali i dziennikarzem „Przekroju”. Od 2007 związany z „Polityką” jako publicysta działu krajowego, następnie z „Newsweekiem” i z „Wprost”. W 2015 dołączył do redakcji portalu Wirtualna Polska. W tym samym roku wydał książkę Elegancki morderca, przedstawiającą historię polskiego seryjnego mordercy Władysława Mazurkiewicza.
W 2009 nominowany do nagrody dziennikarskiej MediaTory w jednej z kategorii. W 2016 został laureatem tej nagrody w kategorii ObserwaTOR. W 2014 przegrał prawomocnie proces ze Stowarzyszenia Dziennikarzy Polskich, który wytoczył organizacji po przyznaniu mu nominacji do Hieny Roku za artykuł o relacjach Jarosława i Lecha Kaczyńskiego z ich ojcem Rajmundem pt. Rajmund Kaczyński. Ojciec braci.
Laureat nagród: Książka Historyczna Roku z 2016 oraz Nagrody Literackiej „Nike” z 2017 za książkę Żeby nie było śladów. Książka ta została również nominowana do Nagrody Historycznej im. Kazimierza Moczarskiego 2017.