Od 1985 do 1994 pracował jako asystent na Wydziale Prawa i Administracji UJ. W 1990 został głównym specjalistą w Ministerstwie Spraw Wewnętrznych, w tym samym roku objął stanowisko dyrektora gabinetu w tym resorcie. W latach 1991–1992 był wicedyrektorem Departamentu Społeczno-Administracyjnego MSW, następnie przez rok pełnił funkcję podsekretarza stanu w Urzędzie Rady Ministrów. Współtworzył koncepcję przekształcenia URM w Kancelarię Prezesa Rady Ministrów. W 1993 powrócił do MSW, obejmując stanowisko wicedyrektora Departamentu Spraw Obywatelskich.
W latach 1994–1998 pracował w Ministerstwie Spraw Zagranicznych: początkowo jako wicedyrektor, a od 1995 jako dyrektor Departamentu Konsularnego i Wychodźstwa. W 1998 kierował Departamentem Spraw Prawnych i Konsularnych MSZ. W okresie pracy w MSZ był m.in. negocjatorem umów dotyczących znoszenia obowiązku wizowego. Od 1998 do 2001 był podsekretarzem stanu w MSWiA. Wchodził w skład zespołu negocjującego akcesję Polski do UE, w ramach którego odpowiadał za obszar spraw wewnętrznych. W 2001 był pełnomocnikiem ds. organizacji Urzędu do Spraw Repatriacji i Cudzoziemców, a po jego utworzeniu objął funkcję prezesa tego urzędu, którą sprawował do sierpnia 2007.