Pracował na Politechnice Poznańskiej, a także w Wyższej Szkole Inżynierskiej w Zielonej Górze. W latach 1976–1981 pełnił funkcję rektora tej uczelni. Później przez kilka lat pracował jako wykładowca w Oranie. Po powrocie do Polski był m.in. prorektorem Wyższej Szkole Inżynierskiej w Zielonej Górze ds. nauczania i wychowania (1984–1987), prodziekanem Wydziału Budownictwa i Inżynierii Sanitarnej (1987–1990) oraz dyrektorem uczelnianych instytutów. Wchodził w skład Komitetu Inżynierii Lądowej i Wodnej Polskiej Akademii Nauk. Autor lub współautor licznych publikacji naukowych, w tym około 30 monografii. W 2018 przeszedł na emeryturę.
Od 1964 do 1990 należał do Polskiej Zjednoczonej Partii Robotniczej, a w 1990 został przewodniczącym rady wojewódzkiej Socjaldemokracji Rzeczypospolitej Polskiej. W latach 1985–2001 sprawował mandat posła IX i X kadencji z ramienia PZPR oraz I, II i III kadencji z listy Sojuszu Lewicy Demokratycznej. W 2001 nie ubiegał się o ponowny wybór, w 2005 wszedł w skład rady programowej SLD.