był też stypendystą Uniwersytetu w Duisburgu. W czasie studiów należał do Niezależnego Zrzeszenia Studentów, kierował uczelnianymi strukturami tej organizacji w SGPiS. W latach 90. działał kolejno w Kongresie Liberalno-Demokratycznym i Unii Wolności, następnie przystąpił do Platformy Obywatelskiej. W 1993 ubiegał się o mandat poselski z listy KLD.
Od 1994 do 1996 był zatrudniony w Telewizji Polskiej, m.in. jako dyrektor Programu 1. W 1997 koordynował program Media i Demokracja w Instytucie Spraw Publicznych. W latach 1998–2000 pełnił funkcję dyrektora Biura Prasy i Informacji w MON, a do 2002 zajmował także stanowisko wiceprzewodniczącego rady nadzorczej Polskiej Agencji Prasowej. W latach 1998–2000 był radnym gminy Warszawa-Centrum. Od grudnia 2000 do lipca 2002 był wiceprezydentem Warszawy. W okresie 2002–2006 zasiadał w zarządzie Polskiego Radia, następnie do 2007 był wicemarszałkiem województwa mazowieckiego. 26 listopada 2007 został powołany na stanowisko sekretarza stanu w MSWiA.