Народився 13 вересня 1950 року селі Загородище Чорнобаївського району Черкаської області.
У 1976 році закінчив Національний юридичний університет імені Ярослава Мудрого за спеціальністю «правознавство». Кандидат юридичних наук.
Трудову діяльність розпочав слюсарем.
З 1976 року був народним суддею Подільського районного суду м. Києва, суддею Київського міського суду, головою Печерського районного суду м. Києва.
З 1987 до 1989 року працював старшим консультантом юридичного відділу Президії Верховної Ради УРСР.
У 1990-1996 роках - суддя Верховного Суду України, з 1995 року - військової колегії Верховного Суду.
Був головою редакційної ради “Вісника Конституційного Суду України”.
З 1996 до 2005 року працював суддею Конституційного Суду України, з 1996 до 1999 року - заступник голови Суду.
Після 2005 року був постійним представником Кабінету Міністрів України в Конституційному Суді України.
Народний депутат 8 скликання, обраний від партії “Опозиційний Блок” (№25 у списку), як безпартійний. Член Комітету Верховної Ради України з питань правової політики та правосуддя.
18 січня 2018 року був одним з 36 депутатів, що голосували проти Закону про визнання українського суверенітету над окупованими територіями Донецької та Луганської областей.
У 2019 році був обраний народним депутатом 9 скликання від партії “Опозиційна платформа - За життя” номером 6 у списку як член партії. Член однойменної фракції. Перший заступник голови Комітету з питань правової політики. Член Політичної Ради партії “Опозиційна платформа - За життя”.
Одружений, разом з дружиною виховали двох синів.
12.09.2019