Окончил Академию Русского балета им. А.Я. Вагановой (класс Юрия Умрихина, 1999), в том же году принят в Мариинский театр. Исполнял сольные партии в советских редакциях балетов Петипа и Горского, балетах Баланчина и Форсайта. Исполнитель российских премьер балетов Нижинской, Макмиллана, Ноймайера, Прельжокажа. Первый исполнитель партий в балетах Лакотта, Ратманского, Симонова, Мирошниченко, Дмитриевского, Гелбера. Участник проектов «Диана Вишнёва: красота в движении» и «Диана Вишнёва: диалоги».
Дебютировал как хореограф в 2012 году в Мариинском театре. Там осуществил шесть работ, в том числе балет «Скрипичный концерт №2» на музыку Прокофьева, принесший ему Национальную театральную премию «Золотая маска» в номинации «Работа балетмейстера-хореографа».
Работал в Театре балета имени Якобсона, «Балете Москва», Баварском государственном балете, Большом театре России, а также в Пермском хореографическом колледже.
В 2017-2020 годах — заместитель художественного руководителя и хореограф Урал Балета. Здесь осуществил постановку балетов Brahms Party на музыку Брамса и готовит балет «Конёк-горбунок» Королёва. С 2020 по 2023 — главный балетмейстер Пермского театра оперы и балета.