Родился 20 июля 1957 года в городе Витебске в семье рабочих. Детство и юность провел в Минске. В 1964—1974 годах учился в минской средней школе № 64. После окончания школы поступил на вечернее отделение факультета журналистики Белорусского государственного университета, одновременно работал учеником слесаря-инструментальщика. В 1975—1977 годах служил в армии. В июне 1982 года закончил университет, получив диплом журналиста.
Научную деятельность начал в сентябре 1982 года в качестве лаборанта по хоздоговорной теме сектора археологии зон новостроек Института истории Академии наук БССР под руководством Георгия Васильевича Штыхова. Познее работал в секторе археологии средневекового периода под руководством Петра Фёдоровича Лысенко. Участвовал в археологических исследованиях курганов белорусского Побугское, в раскопках средневековых Витебска и Слуцка. Самостоятельные научные исследования проводил с июля 1986 года, работая младшим науным сотрудником Института истории. Одновременно увлёкся компьютерным моделированием историко-демографических процессов, по результатам исследований в этой области в 1991 году защитил кандидатскую диссертацию в Московском государственном университете на тему «Популяционно-демографические процессы в эпоху нижнего и среднего палеолита (Опыт компьютерного моделирования)».
С июля 1991 года занимал должность младшего научного сотрудника в отделе специальных исторических дисциплин, со следующего года — научного сотрудника в том же отделе. С февраля 1993 году по декабрь 1997 года работал в Комитете по архивам и делопроизводству Республики Беларусь, возглавлял отдел государственной геральдической службы. С января 1998 года работает директором Белорусского научно-исследовательского центра электронной документации (БелНИЦЭД). С февраля 1994 года начал преподавательскую деятельность на историческом факультете Белорусского государственного и Полоцкого университетов. В разное время читал курсы «Генеалогия», «Историческая информатика» и «Образование Великого княжества Литовского», «Технотронное документирование». С 2006 года — главный редактор «Большого исторического атласа Беларуси».
В научном плане интересуется историей Белоруссии, исторической географией и картографей, генеалогией, исторической демографией, а также исторической и архивной информатикой. Особое место в работе уделяет методам микроистории и компьютерного моделирования.
Преимущественно исследует процессы образования Великого княжества Литовского и формирования его территориальной структуры, генеалогию шляхты и крестьянства, формирование и эволюцию крупного землевладения, историю административно-территориального деления, белорусскую историческую символику, процессы этногенеза, популяционную структуру на территории Белоруссии в различные исторические периоды, структуры семьи и домохозяйства, а также формирование и обеспечение сохранности исторических и архивных информационных ресурсов.
Согласно биографии с собственного сайта, на середину 2010 году опубликовал около 500 работ, включая 1 научную и 2 научно-популярные монографии. Автор 153 научных и научно-популярных статей и рецензий, 217 энциклопедических статей. Создал более 120 исторических карт, в том числе 44 карты для «Национального атласа Беларуси», «Исторического атласа Беларуси» и «Большого исторического атласа Беларуси». Имеет множество научных разработок в области исторической информатики.