Jako student Uniwersytetu Gdańskiego uczestniczył w podziemnym kolportażu i strajku w Gdańsku w maju 1988. Od 1989 kierował działem informacji biura Komisji Krajowej NSZZ „Solidarność”. W latach 1990–1994 był zatrudniony w Urzędzie Wojewódzkim w Gdańsku na stanowisku rzecznika prasowego ówczesnego wojewody, Macieja Płażyńskiego. Od 1994 do 1996 był dyrektorem Urzędu Wojewódzkiego w Gdańsku, a następnie przez rok kierownikiem Urzędu Rejonowego w Gdyni.

7 listopada 1997 został powołany przez prezesa Rady Ministrów na szefa służby cywilnej. 1 lipca 2001 objął to stanowisko na kolejną pięcioletnią kadencję, która upłynęła w 2006. 26 marca 2007 złożył listy uwierzytelniające prezydentowi Republiki CzeskiejPostanowienie Prezydenta Rzeczypospolitej Polskiej z dnia 8 marca 2007 r. nr 110-20-2007 w sprawie mianowania Ambasadora Rzeczypospolitej Polskiej ()., obejmując funkcję ambasadora RP w Pradze. Urzędowanie zakończył 30 czerwca 2012Postanowienie Prezydenta Rzeczypospolitej Polskiej z dnia 12 września 2012 r. nr 110-72-2012 w sprawie odwołania Ambasadora Rzeczypospolitej Polskiej ().. 26 listopada tego samego roku premier Donald Tusk powołał go na stanowisko dyrektora Krajowej Szkoły Administracji Publicznej. 7 października 2016 premier Beata Szydło odwołała go z pełnionej funkcji. Następnie pracował m.in.