W ramach pracy naukowej jako historyk zajmuje się historią ruchu robotniczego, a także historią medycyny i leczenia uzależnień, a artykuł na ten temat publikował m.in. w wydawanym przez Cambridge University Press piśmie „Medical History”. Publikował artykuły w pismach „Meander”, „Przegląd Historyczny” i „Dzieje Najnowsze”. Jest wykładowcą na Wydziale Kultury Japonii Polsko-Japońskiej Akademii Technik Komputerowych. Pracuje także w Wyższej Szkole Komunikowania, Politologii i Stosunków Międzynarodowych w Warszawie. W ramach własnej działalności gospodarczej zajmuje się programowaniem aplikacji mobilnych.
Kariera polityczna
Był bliskim współpracownikiem lidera PPS Piotra Ikonowicza w jego kampanii wyborczej przed wyborami prezydenckimi w 2000. W 2001 wspólnie z Jackiem Kuroniem opublikował w „Gazecie Wyborczej” artykuł III RP dla każdego, w którym zaniepokojeni deficytem demokracji w Polsce proponowali zainicjowanie obywatelskiej debaty dotyczącej kierunków rozwoju.
Był członkiem Unii Pracy. Pełnił funkcję przewodniczącego organizacji młodzieżowej tej partii – Federacji Młodych UP, gdzie jego zastępczynią była Barbara Nowacka. Był współorganizatorem protestów przeciwko pomysłom likwidacji nieodpłatnych studiów oraz wysyłaniu polskich żołnierzy na wojnę do Iraku. Był też jednym z założycieli portalu lewica.pl. W kwietniu 2005 odszedł z Unii Pracy wraz z większością władz młodzieżówki w proteście przeciw wejściu przez partię w koalicję z SLD. W 2005 współtworzył partię Unia Lewicy III RP, zasiadając w jej zarządzie. W tym samym roku odszedł z tej partii, także z powodu sprzeciwu wobec podjęcia przez nią współpracy z SLD. Również w 2005 współtworzył stowarzyszenie Młodzi Socjaliści, którego był nieformalnym przywódcą (stowarzyszenie było określane jako „młodzieżówka bez partii”, a zostało rozwiązane w październiku 2015).
W maju 2015 współtworzył Partię Razem i zasiadł w jej zarządzie krajowym, odpowiada także za stronę internetową i media społecznościowe ugrupowania. W wyborach parlamentarnych w 2015 kandydował do Sejmu z pierwszego miejsca na liście Partii Razem w okręgu warszawskim, zdobywając 49 711 głosów, co stanowiło 4,54% głosów oddanych w okręgu i było siódmym wynikiem uzyskanym w stolicy. Nie uzyskał mandatu, ponieważ Razem nie przekroczyło progu wyborczego. Jego występ w przedwyborczej debacie liderów ośmiu ugrupowań sprawił, że przez niektóre media uznany został za zwycięzcę tej debaty i nową twarz lewicy. Pojawiły się także opinie, że swoim wystąpieniem zdobył dodatkowe poparcie dla Partii Razem kosztem Zjednoczonej Lewicy, której zabrakło 0,45 punktu procentowego do przekroczenia progu wyborczego dla koalicji. Inni komentatorzy, w tym liderka Zjednoczonej Lewicy Barbara Nowacka, wskazywali jednak na to, że większość wyborców Razem stanowiły osoby niegłosujące wcześniej na partie wchodzące w skład ZL i że ich popularność malała już od dłuższego czasu.