Gimė 1967 m. liepos 23 d. Klaipėdoje. Netrukus su tėvais persikėlė į Vilnių.
1985 m. baigė Vilniaus Antano Vienuolio vidurinę mokyklą (dabar Antano Vienuolio pagrindinė mokykla ir Vytauto Didžiojo gimnazija).
1985 m. įstojo į Vilniaus valstybinio universiteto (nuo 1990 m. Vilniaus universitetas) Teisės fakultetą, kurį 1992 m. baigė ir įgijo teisininko specialybę.
1990 m. studijavo ir tobulinosi Hagos tarptautinės teisės akademijoje (Nyderlandų Karalystė), 1991 m. Kopenhagos universitete (Danijos Karalystė), 1992 m. Birmingemo universiteto Europos teisės institute (Didžioji Britanija), 1994 m. Europos universiteto instituto Europos teisės akademijoje Florencijoje (Italijos Respublika), 1999 m. Grioningeno karališkajame universitete (Nyderlandų Karalystė).
19951999 m. studijavo Vilniaus universiteto Tarptautinių santykių ir politikos mokslų instituto doktorantūroje.
1991 m. dirbo Užsienio reikalų ministerijoje vyresniuoju specialistu, 19911994 m. šios ministerijos Europos saugumo ir bendradarbiavimo konferencijos skyriuje pirmuoju sekretoriumi.
19941996 m. žurnalo East European Constitutional Review (leidžiamo Čikagos universiteto) bendradarbis apžvalgininkas.
19942000 m. F. Naumano fondo koordinatorius Lietuvoje.
19942004 m. Vilniaus universiteto Tarptautinių santykių ir politikos mokslų instituto dėstytojas.
1998 m. skaitė paskaitas Geteborgo universitete (Švedija).
19972000 m. savaitraščio Atgimimas apžvalgininkas.
1997 m. ir 2000 m. buvo išrinktas į Vilniaus miesto tarybą.
20002004 m. VIII Seimo narys, išrinktas Lazdynų rinkimų apygardoje Nr. 9. Iškėlė Lietuvos liberalų sąjunga. Seime ėjo Seimo Pirmininko pavaduotojo pareigas. Dirbo Europos reikalų (20002001 m. pirmininkas), Teisės ir teisėtvarkos ir Žmogaus teisių komitetuose.
20042008 m. IX Seimo narys, išrinktas Lazdynų rinkimų apygardoje Nr. 9. Iškėlė Liberalų ir centro sąjunga. Seime dirbo Švietimo, mokslo ir kultūros (20042006 m.), Teisės ir teisėtvarkos (20062008 m.) ir Europos reikalų (20042007 m.) komitetuose, Konstitucijos komisijoje. 20052008 m. ėjo Seimo Pirmininko pavaduotojo pareigas.
Vienas iš Lietuvos Respublikos liberalų sąjūdžio įkūrėjų (2006 m.), šiuo metu Liberalų sąjūdžio pirmininko pirmasis pavaduotojas.
Dalyvauja kelių visuomeninių organizacijų veikloje: yra Lietuvos žmogaus teisių centro narys ir steigėjas, Pilietinių iniciatyvų centro narys, visuomeninės organizacijos Gelbėkit vaikus narys, Liberaliosios minties instituto narys, visuomeninės organizacijos Liberalios reformos narys, Vilniaus Perkūno Rotary klubo narys, G. Steponavičiaus paramos fondo steigėjas, kelių vietos bendruomenių narys.
Pomėgiai muzika, skaitymas, kinas, krepšinis.
Moka anglų ir rusų kalbas.
Žmona Ugnė teisininkė.
Turi du vaikus: sūnų Mykolą (iš pirmosios santuokos) ir dukrą Urtę.