W 2010 roku zdobył pierwsze medale na Mistrzostwach Polski Seniorów.

W 2012 otrzymał powołanie do kadry na igrzyska olimpijskie w Londynie do sztafety 4 × 100 m stylem zmiennym oraz możliwość startu na 50 m stylem dowolnym.

W 2016 roku podczas igrzysk w Rio de Janeiro na dystansie 200 m stylem dowolnym zajął dziesiąte miejsce i czasem 1:46,30 ustanowił nowy rekord Polski.

Rok później na mistrzostwach świata w Budapeszcie w tej samej konkurencji był dziewiąty z wynikiem 1:46,40. Płynął także w sztafecie 4 × 200 m stylem dowolnym, która uplasowała się na siódmym miejscu. Na dystansie 100 m stylem dowolnym zajął 23. miejsce (48,98).

W sierpniu tego samego roku podczas uniwersjady w Tajpej w konkurencji 200 m kraulem zdobył srebrny medal i poprawił rekord kraju, uzyskawszy czas 1:46,19. Na dystansie dwukrotnie krótszym również wywalczył srebro, osiągając drugi czas w historii polskiego pływania (48,38).

W 2025 roku podczas World Games 2025 w Chengdu zdobył 3 medale w sportowym ratownictwie wodnym: złoty w konkurencji 100 m ratownik kombinowany (bijąc jednocześnie rekord świata) i dwa srebrne (50 m holowanie manekina oraz sztafeta 4 × 25 m holowanie manekina).

Jest żołnierzem Sił Zbrojnych RP.