Urodził się 12 marca 1967 r. w Wieluniu.
Ukończył Liceum Ogólnokształcące im. Tadeusza Kościuszki w Wieluniu, a następnie studiował prawo na Uniwersytecie Wrocławskim i Uniwersytecie Warszawskim. Studia ukończył na Uniwersytecie Warszawskim i tam uzyskał doktorat oraz habilitację. W latach 1992-2011 pracował na Wydziale Prawa i Administracji Uniwersytetu Warszawskiego jako pracownik naukowy i dydaktyczny. Wykładał prawo także na wielu innych warszawskich wyższych uczelniach.
Obecnie zatrudniony jest na stanowisku profesora nadzwyczajnego w Instytucie Nauk Prawnych Akademii Ekonomiczno-Humanistycznej w Warszawie.
Po wyborach parlamentarnych w 2015 r., został wybrany przez Sejm na stanowisko sędziego Trybunału Stanu.
Pracował między innymi w Biurze Rzecznika Praw Obywatelskich (na stanowisku głównego specjalisty), w Naczelnej Izbie Lekarskiej (na stanowisku doradcy Naczelnego Rzecznika Odpowiedzialności Zawodowej) oraz w Biurze Analiz Sejmowych Kancelarii Sejmu RP.
W 2011 r. został powołany przez Ministra Sprawiedliwości na stanowisko notariusza; prowadził kancelarię notarialną w Warszawie.
Uchwałą Rady Głównej Nauki i Szkolnictwa Wyższego z 8 grudnia 2016 r. został powołany w skład Komisji Dyscyplinarnej do spraw Nauczycieli Akademickich przy Radzie Głównej Nauki i Szkolnictwa Wyższego na kadencję 2017-2020.
26 stycznia 2018 r. został wybrany przez Sejm RP na sędziego Trybunału Konstytucyjnego i 30 stycznia 2018 r. złożył ślubowanie wobec Prezydenta Rzeczypospolitej Polskiej.