Reprezentował województwo gdańskie w Krajowym Sejmiku Samorządu Terytorialnego.

W latach 1991–1998 był pracownikiem naukowym Instytutu Badań nad Gospodarką Rynkową, w którym kierował Zakładem Gospodarki Komunalnej. Zasiadał w radach nadzorczych wielu przedsiębiorstw i fundacji (m.in. Nordea Bank Polska SA w latach 2002–2005, przewodniczący RN Agencji Rozwoju Pomorza SA w latach 2003–2005). W latach 1998–2001 pełnił funkcję prezesa Urzędu Ochrony Konkurencji i Konsumentów.

Od 1990 należał kolejno do Kongresu Liberalno-Demokratycznego, Unii Wolności i Platformy Obywatelskiej. Zasiadał we władzach regionalnych i krajowych PO. W 2026, po jej przekształceniu w partię Koalicja Obywatelska, został wiceprzewodniczącym gdyńskich struktur ugrupowania.

W wyborach parlamentarnych w 1991 z listy KLD i w wyborach w 2001 z listy PO bez powodzenia kandydował do Sejmu, a w wyborach w 2005 został wybrany na posła V kadencji w okręgu gdyńsko-słupskim. W wyborach parlamentarnych w 2007 po raz drugi uzyskał mandat poselski, otrzymując 17 275 głosów. Trzeci raz został wybrany liczbą 14 013 głosów w wyborach w 2011. Również w 2015 z powodzeniem ubiegał się o poselską reelekcję (dostał 6625 głosów). W wyborach w 2019 został wybrany na kolejną kadencję z ramienia KO, otrzymując 9385 głosów.