W 1987 ukończył studia prawnicze na Wydziale Prawa i Administracji Uniwersytetu Jagiellońskiego, na którym został zatrudniony jako nauczyciel akademicki. W latach 1987–1989 odbył aplikację sądową. W 1994 uzyskał stopień doktora nauk prawnych (promotorem był profesor Paweł Sarnecki). Przebywał na stażach naukowych w Austrii, Czechach, Hiszpanii i Niemczech, był też stypendystą Fundacji Alexandra von Humboldta. W 2004 uzyskał stopień doktora habilitowanego nauk prawnych. W 2018 prezydent nadał mu tytuł naukowy profesora nauk prawnych.