Marcin Kurczewski

Programista Python/JS, freelancer

Jeśli szukasz doświadczonego programisty Python/JS biegłego w programowaniu systemowym, bezpieczeństwie oraz tworzeniu skalowalnych rozwiązań webowych, zapraszam do kontaktu pod mailem dash@wind.garden. Przez ostatnie 10 lat budowałem od podstaw produkty, rozwijałem je, utrzymywałem, zarządzałem infrastrukturą niezbędną do ich działania oraz monitorowałem ich funkcjonowanie na produkcji. Zarządzałem także zespołami developerskimi oraz zajmowałem się kształceniem, kierowaniem, a także rekrutowaniem młodszych kolegów i koleżanek.

Kariera w pigułce

  • STX Next (4.3 lata)
    • Javascript
    • Django Rest Framework
    • Docker
    • C#
    • GitHub
    • OAuth
    • OpenLDAP
    • Angular
    • Python
    • HTML
    • React
    • CI
    • Redis
    • GraphQL Apollo
    • GraphQL
    • Postgres
    • Python 3
    • git
    • Jenkins
    • Django
  • Motoinsight (4.0 lata)
    • JQuery
    • Javascript
    • Docker
    • Django Rest Framework
    • VueJS
    • GitHub
    • Celery
    • Python
    • HTML
    • LogDNA
    • CI
    • Travis
    • Squash
    • Postgres
    • Python 3
    • git
    • Python 2
    • Django
    • Sentry
  • Toptal (1.6 roku)
    • Crispy Forms
    • Aptible
    • Calendly
    • Django Rest Framework
    • Docker
    • Bootstrap
    • GitHub
    • Celery
    • Python
    • React
    • CI
    • GitHub Actions
    • DigitalOcean
    • Postgres
    • Python 3
    • git
    • HelloSign
    • Django
    • CheckR
    • Stripe
    • Sentry

Technologie

  • CI
  • Typescript
  • Node.js
  • GitLab
  • Google Cloud Platform
  • Amazon AWS
  • Postgres
  • Python
  • Python 3
  • git
  • Apple News
  • Atom
  • Django
  • Docker
  • GitHub
  • Google News
  • Google News Showcase
  • RSS
  • Aptible
  • Bootstrap
  • Calendly
  • Celery
  • CheckR
  • Crispy Forms
  • DigitalOcean
  • Django Rest Framework
  • GitHub Actions
  • HelloSign
  • React
  • Sentry
  • Stripe
  • HTML
  • Javascript
  • LogDNA
  • Squash
  • Travis
  • VueJS
  • GraphQL
  • GraphQL Apollo
  • Okta
  • Python 2
  • Graphene
  • MongoDB
  • What3Words
  • Angular
  • Jenkins
  • OAuth
  • OpenLDAP
  • Redis
  • JQuery
  • Elasticsearch
  • Pyramid
  • SQL
  • SQLAlchemy
  • C#
  • Gosu
  • Guidewire
  • Cassandra
  • Mercurial
  • NHibernate
  • Oracle
  • Spring.NET
  • TeamCity
  • WPF
  • CSS
  • Google APIs
  • PHP
  • Zend
  • svn
  • Amazon S3
  • Pillow
  • C
  • PyQT5
  • ATI3DCIF
  • DirectX
  • OpenGL
  • Reverse engineering
  • SDL
  • WinAPI
  • WinMM
  • ffmpeg
  • curses
  • urwid
  • FFMS2
  • FFTW
  • mpv
  • numpy
  • PyQT4
  • PySide
  • C++
  • Apache
  • SQLite

Lokalizacja

Lokalizacja Poznań, Polska  

Zatrudnienie

  • Freelance senior backend engineer Glopal 2023-09-01 Do teraz
    Planowałem i zarządzałem projektem do tłumaczeń automatycznych.
    Technologie:
    • CI
    • Typescript
    • Node.js
    • GitLab
    • Google Cloud Platform
    • Amazon AWS
    • Postgres
    • Python
    • Python 3
    • git
  • Freelance software developer PostMedia 2022-06-14 Do teraz
    Zostałem zatrudniony do stworzenia działającej integracji z Google News Showcase pod ogromną presją czasu. Udało mi się tego dokonać. Po tym zadaniu moje stanowisko przekształciło się w ogólne utrzymywanie integracji z kanałami informacyjnymi.
    Technologie:
    • CI
    • Apple News
    • Atom
    • Django
    • Docker
    • GitHub
    • Google Cloud Platform
    • Google News
    • Google News Showcase
    • Postgres
    • Python
    • Python 3
    • RSS
    • git
  • Senior freelance Python developer Toptal 2022-02-01 2023-08-31
    • Opracowałem od podstaw nowy produkt w branży medycznej do łączenia matek zastępczych oraz dawców komórek z przyszłymi rodzicami.
    • Zintegrowałem platformę z wieloma zewnętrznymi narzędziami do weryfikacji tożsamości i wiarygodności.
    • Utworzyłem system rozliczeń oparty na Stripe.
    • Po intensywnej fazie opracowania MVP, ja i mój zespół skupiliśmy się na refaktoryzacji systemu na API i SPA, oraz dalszym jej rozwoju dla klientów organizacyjnych.
    Technologie:
    • Aptible
    • Bootstrap
    • CI
    • Calendly
    • Celery
    • CheckR
    • Crispy Forms
    • DigitalOcean
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • GitHub Actions
    • HelloSign
    • Postgres
    • Python
    • Python 3
    • React
    • Sentry
    • Stripe
    • git
  • Senior full-stack engineer Motoinsight 2020-09-01 2023-04-26
    • Pracowałem przy przejściu całej firmy do architektury serwisów.
    • Zoptamylizowałem newralgiczne obszary w kilku sztandarowych produktach.
    • Brałem czynny udział w kształtowaniu architektury produktów.
    • Wykonywałem triaż incydentów produkcyjnych.
    • Przeprowadzałem rekrutacje dla nowych kandydatów.
    Technologie:
    • CI
    • Celery
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • HTML
    • Javascript
    • LogDNA
    • Postgres
    • Python
    • Python 3
    • Sentry
    • Squash
    • Travis
    • VueJS
    • git
  • Freelance software engineer Netguru 2022-04-01 2022-07-31
    • Opracowałem od podstaw projekt dotyczący technicznej analizy budżetowej.
    Technologie:
    • CI
    • Celery
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • GitHub Actions
    • Google Cloud Platform
    • Postgres
    • Python
    • Python 3
    • git
  • Senior+ freelance Python developer STX Next 2022-04-18 2022-07-15
    • Pracowałem na zasadzie team extension dla klienta z branży medycznej.
    • Utrzymywałem i opracowywałem nowe funkcje jednego z mikroserwisów.
    Technologie:
    • CI
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • GraphQL
    • GraphQL Apollo
    • HTML
    • Postgres
    • Python
    • Python 3
    • git
  • Freelance software engineer Netguru 2021-12-01 2022-03-31
    • Przeprowadziłem migrację API Google z wersji 7 na wersję 9 w rozbudowanym wewnętrznym produkcie dla firmy dostarczającej jedzenie na terenie ponad 30 krajów.
    • Propagowałem dobre praktyki w każdym projekcie (code reviews, narzędzia do automatycznego formatowania kodu itp.).
    • Przeprowadziłem przejście na Docker w trzech projektach.
    Technologie:
    • CI
    • Docker
    • GitHub
    • Google Cloud Platform
    • Okta
    • Python
    • Python 2
    • Python 3
    • Travis
    • git
  • Freelance software engineer Netguru 2021-10-01 2021-11-30
    • Wdrożyłem nową usługę do koordynowania inwentaryzacji w dużej polskiej sieci handlowej.
    Technologie:
    • CI
    • Django
    • GitHub
    • Python
    • Python 3
    • git
  • Senior+ software engineer STX Next 2021-01-01 2021-08-31
    • Pracowałem jako samodzielny opiekun wielu krótkoterminowych projektów w języku Python dla różnych klientów po tym, jak współpraca z poprzednim klientem została zakończona.
    • Przeprowadzałem rekrutacje dla nowych kandydatów.
  • Full-stack engineer Bridgemaker 2020-08-01 2021-02-14
    • Zbudowałem od zera backend dla nowego projektu do koordynacji flot samochodowych w Niemczech, oraz wspierałem go podczas wejścia na rynek.
    • Stworzyłem system do śledzenia pojazdów flotowych na mapie (na tyle dokładny, na ile to dopuszczalne przez niemieckie prawo.)
    Technologie:
    • CI
    • Django
    • Docker
    • GitLab
    • GraphQL
    • Graphene
    • MongoDB
    • Postgres
    • Python
    • Python 3
    • Travis
    • What3Words
    • git
  • Senior+ technical team lead STX Next 2019-11-01 2021-01-01
    • Utrzymywałem i zarządzałem istniejącymi projektami dla jednego z najstarszych klientów firmy w branży spożywczej.
    • Prowadziłem zespół składający się z 2 do 7 osób (wielkość zmieniała się w czasie w zależności od budżetu klienta).
    • Prowadziłem rozmowy z klientem.
    • Przeprowadziłem złożony projekt migracji z LDAP do relacyjnej bazy danych, który fundamentalnie angażował wszystkie linie produktów należące do klienta.
    Technologie:
    • Angular
    • CI
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • HTML
    • Javascript
    • Jenkins
    • OAuth
    • OpenLDAP
    • Postgres
    • Python
    • Python 3
    • React
    • Redis
    • git
  • Team lead Motoinsight 2020-04-01 2020-09-01
    • Prowadziłem zespół czterech osób symultanicznie utrzymujący wiele projektów.
    • Koordynowałem pracę między zespołami Delivery, Product i Q&A.
    • Przeprowadzałem przeglądy kodu dla zespołu.
    • Pracowałem z kodem i tworzyłem zadania.
    • Rozwiązywałem problemy architektoniczne.
    • Realizowałem z zespołem wyznaczone odgórnie OKR.
    Eksperyment po odejściu z pracy naszego poprzedniego lidera mający na celu zobaczyć, czy widziałbym się w bardziej menadżerskiej roli. Okazało się, że wolę pracować "bliżej klawiatury". Po tym, jak firmie udało się umocnić warstwę zarządzającą, zdecydowałem się wrócić do kodowania.
  • Full-stack engineer Motoinsight 2019-05-01 2020-03-31
    • Rozwijałem pięć istniejących projektów oraz dostarczałem nowe funkcjonalności.
    • Miałem pełną odpowiedzialność nad kodem jednego z projektów.
    • Oczyściłem backlog jednego z projektów ze wszystkich błędów.
    • Miałem największą prezencję w code reviews na całą firmę pod względem liczby komentarzy i szybkości odpowiedzi.
    Technologie:
    • CI
    • Celery
    • Django
    • Docker
    • GitHub
    • HTML
    • JQuery
    • Javascript
    • LogDNA
    • Postgres
    • Python
    • Python 2
    • Python 3
    • Squash
    • Travis
    • VueJS
    • git
  • Full-stack engineer Qualio 2019-10-01 2020-03-27
    • Rozwijałem jednym z istniejących projektów.
    • Wprowadziłem nową, kluczową funkcjonalność produktu.
    • Udoskonaliłem proces tworzenia oprogramowania w całej firmie – wypromowałem narzędzia do automatycznej analizy i formatowania kodu, upowszechniłem code reviews oraz wprowadziłem proces CI.
    • Wprowadziłem Docker.
    Technologie:
    • CI
    • Docker
    • Elasticsearch
    • GitLab
    • HTML
    • Javascript
    • Postgres
    • Pyramid
    • Python
    • Python 3
    • SQL
    • SQLAlchemy
    • git
  • Senior full-stack engineer STX Next 2019-04-01 2019-10-31
    • Rozwijałem wiele projektów i dzierżyłem nad nimi pełną techniczną odpowiedzialność dla jednego z najstarszych klientów firmy w branży spożywczej.
    • Prowadziłem rozmowy z klientem.
    Technologie:
    • CI
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • HTML
    • Javascript
    • Jenkins
    • OAuth
    • OpenLDAP
    • Postgres
    • Python
    • Python 3
    • Redis
    • git
  • Regular+ full-stack engineer STX Next 2018-04-01 2019-03-31
    • Utrzymywałem istniejące projekty dla jednego z najstarszych klientów firmy w branży spożywczej.
    • Przeniosłem kod produktu z Pythona 2 na Python 3.
    • Wprowadziłem Docker.
    Technologie:
    • Angular
    • C#
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • HTML
    • Javascript
    • Jenkins
    • OAuth
    • OpenLDAP
    • Postgres
    • Python
    • Python 3
    • React
    • Redis
    • git
  • Software engineer BAE Systems Applied Intelligence 2018-02-01 2018-03-15
    • Krótka rola jako programista C# w projekcie zw. z monitoringiem i analizą ruchu sieciowego. Współpraca zakończona bardzo szybko za obupólnym porozumieniem z racji rozmijających się oczekiwań po obu stronach.
    Technologie:
    • C#
  • Software developer Capgemini Polska sp. z o.o. 2017-05-01 2018-01-31
    • Rozwijałem wewnętrzne oprogramowanie firmy napisane w C#.
    • Przez krótki czas pracowałem jako programista Guidewire/Gosu dla dużej niemieckiej firmy ubezpieczeniowej.
    Przez większość czasu siedziałem na ławce ze względu na wewnętrzną restrukturyzację działów, co w końcu skłoniło mnie do poszukania czegoś innego.
    Technologie:
    • C#
    • Gosu
    • Guidewire
    • HTML
    • JQuery
    • Javascript
  • C#/.NET developer Forcom sp. z o.o. 2013-01-01 2017-04-30
    • Utrzymywałem i rozwijałem nowe funkcje dla klienta desktopowego aplikacji dla zaplecza sklepowego.
    • Utrzymywałem i rozwijałem nowe funkcje dla systemu centralnego, który komunikował się z biurami głównymi w całej sieci handlowej.
    Technologie:
    • C#
    • CI
    • Cassandra
    • Mercurial
    • NHibernate
    • Oracle
    • Postgres
    • Python
    • Python 2
    • Spring.NET
    • TeamCity
    • WPF
    • git
  • PHP developer Gammanet sp. z o.o. 2012-03-01 2013-02-28
    • Utrzymywałem różne aplikacje internetowe z branży edukacyjnej.
    • Stworzyłem od podstaw i wdrożyłem narzędzie do synchronizacji grup w domenach Google.
    Technologie:
    • CSS
    • Google APIs
    • HTML
    • Javascript
    • PHP
    • Zend
    • svn

Wykształcenie

  • Uniwersytet Adama Mickiewicza (magister) Wydział Matematyki i Informatyki 2012-10-01 2014-06-01
    Praca magisterska: Ataki na kryptograficzne funkcje haszujące
  • Uniwersytet Adama Mickiewicza (licencjat) Wydział Matematyki i Informatyki 2009-10-01 2012-06-01

Projekty open source

  • TRCustoms 2022-10-01 2022-03-30 TRCustoms
    Portal społecznościowy do publikowania fanowskich poziomów do klasycznej serii Tomb Raider (w momencie pisania tego tekstu, jest ich ponad 3000!). Wspiera tagowanie, przemyślany system oceniania poziomów, skórki i wiele więcej. Pliki są hostowane w chmurze.
    Technologie:
    • Amazon S3
    • CI
    • Celery
    • Django
    • Django Rest Framework
    • Docker
    • GitHub
    • GitHub Actions
    • HTML
    • Javascript
    • Pillow
    • Postgres
    • Python
    • Python 3
    • React
    • git
  • CRC manipulator 2021-01-28 Do teraz
    Narzędzie do manipulowania sumami kontrolnymi CRC32 (oraz kilkoma odmianami CRC16) plików poprzez dodanie kilku specjalnych bajtów na ich końcu. Motywacją dla tego projektu była głównie scena fansubberska anime – pliki publikowane przez grupy parające się tym zajęciem często zawierają sumy kontrolne w swoich nazwach. Narzędzie powstało, aby umożliwić tym grupom zmienianie tych sum wedle woli, co umożliwiło nową kategorię memowania.
    Technologie:
    • C
    • PyQT5
    • Python
    • Python 3
  • Tomb Raider I: Community Edition 2021-01-01 Do teraz Tomb Raider I: Community Edition
    Otwartoźródłowa implementacja oryginalnej gry Tomb Raider I (1996). Stworzona poprzez kompletną inżynierię wsteczną wariantu oryginalnej gry znanego jako TombATI/GLRage, oraz zastąpienie wszystkich komercyjnych bibliotek audio/wideo darmowymi wariantami. Cały ten proces przeprowadziłem samodzielnie. Projekt dodaje również wiele nowych funkcji do gry, takich jak paski zdrowia wrogów czy możliwość latania, a także naprawia wiele błędów oryginalnej gry. Obecnie jest utrzymywany przez społeczność testerów i programistów z całego świata.
    Technologie:
    • ATI3DCIF
    • C
    • DirectX
    • OpenGL
    • Reverse engineering
    • SDL
    • WinAPI
    • WinMM
    • ffmpeg
  • Progress Quest: the CLI edition 2018-11-01 2021-12-20 Progress Quest: the CLI edition
    Zaimplementowałem port pewnego "zero-player" RPG pod nazwą Progress Quest tak, aby móc go uruchamiać w terminalu. W grze z grubsza chodzi o to, że gracz po stworzeniu swojej postaci zasadniczo traci nad wszystkim kontrolę; gra toczy się sama, a użytkownik może się jedynie przyglądać efektom. W pewnym momencie naszła mnie refleksja, że idealnym środowiskiem dla takiej gry jest konsola tekstowa, co umożliwia uruchamianie jej na serwerach i tym samym gwarantuje bardzo długą symulację – i tak powstał ten projekt.
    Technologie:
    • Python
    • Python 3
    • curses
    • urwid
  • docstring parser 2018-04-17 Do teraz
    Biblioteka służąca do parsowania różnych rodzajów docstringów w Pythone na silnie typowane klasy. Oferuje również mechanizm do serializacji takich obiektów z powrotem do tekstowego docstringa. PyPI w pewnym momencie paczkę uznał za krytyczną dla ekosystemu Pythona, co mi bardzo pochlebiło.
    Technologie:
    • Python
    • Python 3
  • bubblesub 2017-07-22 2021-12-31 bubblesub
    Ponieważ aegisub, najbardziej popularny program do tworzenia napisów do anime, zasadniczo nie odpowiadał moim potrzebom, zdecydowałem się stworzyć swój własny edytor napisów. Bubblesub współpracuje z napisami ASS/SSA i oferuje podgląd wideo na żywo, spektrogram audio, swoisty spektrogram wideo (którego nie widziałem nigdzie indziej), synchronizację do klatek wideo, kontrolę tempa odtwarzania z korekcją tonacji oraz zaawansowany system wtyczek.
    Technologie:
    • FFMS2
    • FFTW
    • GitHub
    • GitHub Actions
    • Pillow
    • PyQT5
    • Python
    • Python 3
    • git
    • mpv
    • numpy
  • szurubooru 2016-03-19 2018-02-10
    Galeria internetowa z użytkownikami i solidnym systemem uprawnień. Obsługuje tagowanie, sugestie i implikacje tagów, filmy, adnotacje, wykrywanie wizualnie podobnych obrazów, ocenianie, dodawanie do ulubionych, solidny system wyszukiwania, solidne API i wiele więcej. Chociaż już nie używam tego projektu, udało mi się zbudować wokół niego tak silną społeczność, że żyje on do teraz, utrzymywany przez wolontariuszy. Podczas jego pisania nie korzystałem z żadnego określonego frameworku i zdecydowałem się na autorski silnik zarówno dla frontendu, jak i backendu, ale z perspektywy czasu prawdopodobnie wybrałbym Django i React.
    Technologie:
    • Elasticsearch
    • Javascript
    • Pillow
    • Python
    • Python 3
  • DRM and TCT video frontends for mpv 2015-04-15 2015-06-17
    W pewnym momencie dysk twardy mojego notebooka uległ awarii i musiałem go uruchamiać z pendrive'a. Aby oszczędzić zasoby, nie korzystałem z powłoki graficznej i zamiast tego uruchamiałem go bezpośrednio w konsoli Linuxa. Tego notebooka jednak używałem głównie do oglądania anime, no a najsensowniejszym dla mnie odtwarzaczem jest mpv, fork legendarnego mplayera. Niestety w tamtych czasach wymagał on środowiska graficznego. Stąd pomysł napisania dla niego dwóch wyjść wideo: DRM (który alokuje mikrosystem graficzny na potrzeby odtworzenia wideo), i TCT (rysuje wideo za pomocą znaków w konsoli, uzyskując lepsze efekty niż znane wówczas libcaca).
    Technologie:
    • C
    • GitHub
    • OpenGL
    • git
    • mpv
  • IDA image preview plugin 2015-03-16 2020-11-07 IDA image preview plugin
    Wtyczka dla deassemblera IDA, która pozwala na przeglądanie pamięci programu i jej interpretowanie jako niekompresowanego obrazu bitmapowego. Obsługuje kilka trybów, takich jak RGB-888, BGR-565 itp.
    Technologie:
    • PyQT4
    • PyQT5
    • PySide
    • Python
    • Python 3
  • arc_unpacker 2014-11-30 2017-11-06
    Ogromne narzędzie do wyciągania dźwięków, muzyki, obrazków i filmów z różnych japońskich gier z gatunku visual novel. Obsługuje ponad 450 gier. Z czasem projekt stał się bardzo popularny, co znalazło odzwierciedlenie w coraz większym zapotrzebowaniu ze strony społeczności na wsparcie dla nowych tytułów. Niestety jednak wysokie umiejętności techniczne potrzebne do analizowania i inżynierii wstecznej algorytmów użytych w tych grach oznaczały, że nie było nikogo, kto mógłby mi z tym pomóc, a roszczeniowość użytkowników rosła. Ostatecznie kompletnie przestałem cieszyć się z pracy nad tym projektem i postanowiłem dać sobie z nim spokój.
    Technologie:
    • C
    • C++
    • Reverse engineering
    • git
  • MALgraph 2013-07-05 2015-05-02

    Usługa statystyczna dla użytkowników MyAnimeList, pozwalająca na wyświetlenie między innymi dystrybucji ocen, z jakiej dekady serie lubisz najbardziej, rekomendacje nowych tytułów do obejrzenia, a nawet oferująca odblokowywanie specjalnych osiągnięć. Współtworzona z tym gościem. Kiedyś bardzo popularna (wielu użytkowników umieszczało odznakę ze swoimi wykresami ocen na swoich profilach), projekt porzuciliśmy po tym, jak MyAnimeList wyłączyło swoje API.

    Technologie:
    • Apache
    • CSS
    • HTML
    • JQuery
    • Javascript
    • PHP
    • SQLite