Sędzia Trybunału Konstytucyjnego w latach 1998-2007.
W latach 1991-1998 przez trzy kadencje z ramienia Unii Demokratycznej i Unii Wolności sprawował mandat poselski.
W latach 1963-1969 był pracownikiem naukowym na wydziale Prawa i Administracji Uniwersytetu Warszawskiego.
W 1962 roku ukończył studia na Wydziale Prawa i Administracji Uniwersytetu Warszawskiego.
W 1983 był współzałożycielem Komitetu Helsińskiego w Polsce.
W latach 1989-1991 zajmował stanowisko podsekretarza stanu w Urzędzie Rady Ministrów i sekretarza Rady Ministrów.
W latach 1992-1993 był zastępcą przewodniczącego Komisji Konstytucyjnej Zgromadzenia Narodowego.