Wychowanek Wybrzeża Gdańsk. W lutym 2016 został zgłoszony do rozgrywek I ligi[2], jednak nie zadebiutował wtedy w pierwszym zespole. W sezonach 2015/2016 i 2016/2017 występował w drugoligowych rezerwach gdańskiego klubu, w których rozegrał łącznie 27 meczów i rzucił 131 bramek[3][4]. Ponadto w sezonie 2016/2017 grał na wypożyczeniu w pierwszoligowymSPR GKS Żukowo (sześć spotkań i 18 goli)[1].
W 2017 na stałe dołączył do Wybrzeża[5]. W Superlidze zadebiutował 4 września 2017 w przegranym meczu z Chrobrym Głogów (26:31), zaś trzy pierwsze bramki rzucił 9 września 2017 w wygranym spotkaniu z Pogonią Szczecin (24:22). W sezonie 2017/2018 rozegrał w najwyższej klasie rozgrywkowej 31 meczów i zdobył 67 goli. W sezonie 2017/2018 wystąpił też w czterech meczach I ligi w barwach SPR GKS Żukowo[1]. W sezonie 2018/2019 rozegrał w Wybrzeżu 28 spotkań, w których rzucił 51 bramek[6].
W 2017 uczestniczył w mistrzostwach świata U-19 w Gruzji, w których rozegrał siedem meczów i rzucił 13 bramek[7]. W 2018 wystąpił w mistrzostwach Europy U-20 w Słowenii, podczas których zdobył 28 goli w siedmiu spotkaniach[8]. W październiku 2018 zadebiutował w reprezentacji Polski B, grając w wygranym towarzyskim dwumeczu z Czechami B (35:24 i 31:25), w którym rzucił pięć bramek[9].
W grudniu 2018 został po raz pierwszy powołany przez trenera Piotra Przybeckiego na zgrupowanie reprezentacji Polski[10]. W kadrze narodowej zadebiutował 12 grudnia 2018 w przegranym meczu towarzyskim z Niemcami (23:35), w którym zdobył dwa gole[11].