Był przez cały okres aktywności zawodowej związany z Katedrą Historii Gospodarczej UW, którą kierował od 2000. Ponadto od końca lat 70. do końca lat 80. XX w. pracował dydaktycznie na Wydziale Humanistycznym i Wydziale Ekonomiczno-Prawnym Filii UW w Białymstoku, w latach 1987–1990 w Państwowej Wyższej Szkole Teatralnej w Warszawie, a od 2000 na Wydziale Historii Uniwersytetu Środkowoeuropejskiego w Budapeszcie. Wypromował sześcioro doktorów, w tym troje polskich naukowców: Macieja Tymińskiego, Annę Sosnowską-Jordanovską i Piotra Korysia. Był członkiem Komitetu Naukoznawstwa PAN.

W latach 1980–1981 i 1994–1996 zasiadał w Senacie UW, od 1993 do 1994 także w Zarządzie Fundacji UW. Był od 1996 redaktorem naczelnym „Roczników Dziejów Społecznych i Gospodarczych”. W latach 1998–2006 pełnił funkcję wiceprezesa .

Brał udział w wydarzeniach marca 1968, w 1980 współzałożył Niezależny Samorządny Związek Zawodowy „Solidarność” na WNE UW. Nawiązał kontakty z członkami opozycji politycznej: Sewerynem Blumsztajnem, Ryszardem Bugajem, Heleną Łuczywo i Aleksandrem Smolarem. Później został członkiem zarządu i rady nadzorczej Fundacji im. Stefana Batorego, przewodniczył radzie nadzorczej Banku Inicjatyw Społeczno-Ekonomicznych.