Wykładał na Chrześcijańskim Uniwersytecie Robotniczym. Od 1997 do 2001 pracował jako nauczyciel historii w V Prywatnym Liceum przy ul. Smoleńsk w Krakowie. Od lutego 2002 był profesorem w Państwowej Wyższej Szkole Zawodowej w Przemyślu (od 2006 Państwowej Wyższej Szkole Wschodnioeuropejskiej; pracował tam jako kierownik Zakładu Historii Starożytnej i Średniowiecznej, od 2004 do 2005 dyrektor Instytutu Historii i Archiwistyki PWSZ, od 2002 do 2010 członek Senatu PWSZ/PWSW). Od 2009 do 2010 prowadził wykłady z zakresu historii ustroju Polski w krakowskiej Wyższej Szkole Filozoficzno-Pedagogicznej Ignatianum.
W latach 1989–2000 pełnił funkcję przewodniczącego koła NSZZ „Solidarność” krakowskich placówek Instytutu Historii PAN. W 1990 wstąpił do Partii Republikańskiej, a w 1991 przystąpił z nią do Koalicji Republikańskiej. W 1992 został członkiem Partii Chrześcijańskich Demokratów. W wyborach w 1993 kandydował do Sejmu z 21. miejsca na liście wyborczej KKW „Ojczyzna” w okręgu obejmującym województwo krakowskie, otrzymując 235 głosów. Pod koniec lat 90. działał w Stronnictwie Konserwatywno-Ludowym. Od 2008 był członkiem Stowarzyszenia „NZS 1980”.