O mnie

Pasjonat rozwiązywania problemów z ponad 10-letnim doświadczeniem zawodowym. Moja przygoda rozpoczęła się 15 lat temu od nauczenia się C++ w celu analizy cen akcji na giełdzie przy pomocy uczenia maszynowego, ostatecznie przechodząc na .NET, gdzie odnalazłem powołanie. Stawiam na przejrzystość, łatwość utrzymania i realny wpływ.

Poza pracą etatową rozwijam narzędzie do analizy giełdowej Stock-Today, pełnię funkcję CTO platformy quizowej Squizzu, utrzymuję wiele bibliotek open source i prowadzę bloga False Green o wpadkach agentów AI przez nich samych.

Umiejętności techniczne

  • C#12 lat
  • Azure Cloud9 lat
  • ASP.NET (Web API, Core)11 lat
  • SQL + EF6 lat
  • NoSQL (CosmosDB, Mongo)8 lat
  • WPF w MVVM5 lat
  • ML (ML.NET, Accord.NET, Keras, GPT API)8 lat
  • Praca wspierana przez AI (Claude Code, Azure OpenAI)3 lat

Technologie

Ogólne
OOP, mikroserwisy, monolit (modularny), SOLID, TDD, REST, Clean Architecture, DDD
Języki
C#, C++, Python, Ruby, R, JS, VB
Chmura
Azure (App Services, Service Bus, Azure AI Search, Azure ML, Azure OpenAI, Key Vault, CosmosDB, Blob i File Storage, Cache for Redis), Azure DevOps, Heroku
DevOps
Azure DevOps (Pipelines, Releases), GitHub Actions, Docker, Terraform, Kubernetes
Bazy danych
MS SQL, CosmosDB, SQLite, Postgres, MongoDB + Atlas Search, Parquet
Brokery wiadomości
Azure Service Bus, RabbitMQ, MSMQ, Kafka
Ekosystem .NET
ASP.NET Core, WPF (MVVM, Telerik), ML.NET, Entity Framework, ADO.NET, WinForms, WebForms
Obserwowalność
Grafana, Application Insights, OpenTelemetry, Datadog
Testowanie
Postman, Burp, NUnit, xUnit, MSTest, Vegeta, NBomber, Playwright, SoapUI, Bruno
Zarządzanie projektami
Azure DevOps, Jira, Trello, Notion
Uczenie maszynowe
Azure OpenAI, ML.NET, Azure Machine Learning, Accord.NET, EmguCV, Keras
Low code / no code
Microsoft Power Apps, Dataverse, integracje z Microsoft 365
Kontrola wersji
Git, Subversion, TFS, GitHub, Bitbucket
Preferowany stack AI
Claude Code CLI, superpowers, skille Matta Pococka, własny zestaw skilli
Inne
Swagger, Zendesk, Cloud9, SonarCloud, GhostDoc, ReSharper, JSON, XSLT, XSD

Umiejętności miękkie

  • Uczciwość
  • Wytrwałość
  • Autonomia
  • Kreatywność
  • Skupienie

Wykształcenie

  • Uniwersytet Jagielloński - Psychologia - Magister 2009 - 2016
  • XVII Liceum Ogólnokształcące im. Młodej Polski - profil dwujęzyczny 2004 - 2008

Doświadczenie zawodowe

  1. StoneX Financial Services - Senior Software Developer od 2025

    Migruję zastane aplikacje chmurowe udostępniane klientom do modularnego monolitu w Domain-Driven Design i Clean Architecture. Usunąłem wąskie gardło w procesie code review i przyspieszyłem wyszukiwanie w DataGrid 10-krotnie. Praca w podejściu AI-first, z naciskiem na testy e2e i integracyjne.

  2. Happy Team - Senior Software Developer 2025

    Zbudowałem od zera backend dla aplikacji mobilnej w .NET MAUI: bezserwerowe API w Azure Functions komunikujące się z CosmosDb, serwis proxy oraz całą infrastrukturę opisaną w Terraform. Projektowałem pod kątem testowalności, łatwości utrzymania, wydajności i skalowalności.

  3. Seville More Helory Polska - Senior Software Developer 2020 - 2025

    Moją główną odpowiedzialnością była implementacja w ASP.NET Web.API parsowania i wersjonowania dokumentów, z czasem integracja z Azure AI (Cognitive) Search, Service Bus i Redis Cache, implementacja niestandardowej warstwy cache w oparciu o CosmosDb i poprawa wydajności wielu procesów. Powierzono mi planowanie i implementację architektury procesu dla nowego kluczowego klienta, podejmowałem trafne decyzje projektowe na wczesnym etapie bez pełnego zakresu wymagań oraz decydowałem o priorytetach, zapewniając płynną pracę front-endu i backendu. Przygotowana architektura była łatwo adaptowalna do zmieniających się wymagań, pozostając jednocześnie wydajna.

  4. Uniwersytet Jagielloński - Badacz 2019 - 2020

    Uczestniczyłem w badaniu finansowanym z grantu, gdzie opracowałem klasyfikator aktywności EEG mózgu małp oraz stymulator dotykowy sterowany Arduino. Stymulator składa się z 2 rękawic, każda z 5 osobno kontrolowanymi efektorami źródło. Klasyfikacja szeregów czasowych EEG po zastosowaniu FFT i innych transformacji miała dokładność powyżej 0.8 źródło.

  5. Open GI - Software Developer 2017 - 2019

    Kontynuacja poprzedniego zatrudnienia pod inną marką. Praca w Scrumie, z większym naciskiem na nowsze technologie; WCF zastępowaliśmy ASP.NET Core, używaliśmy RabbitMQ zamiast WWF, Azure Cloud zamiast on-premise, MongoDB zamiast MS SQL. Znaczącym wyzwaniem była modernizacja zastanej aplikacji napisanej w VB6, co osiągnęliśmy poprzez podział i migrację do mikroserwisów, jednocześnie intensywnie testując istniejącą funkcjonalność i przechodząc powoli przez hosting na maszynie wirtualnej przez Azure Virtual Desktop. Następnie, gdy wszystkie usługi były stabilne i przetestowane, podłączyliśmy nowoczesny frontend.

  6. Transactor Poland - (Junior) Software Developer 2014 - 2017

    Rozpocząłem pracę jako młodszy programista, a po pozytywnym odbiorze przez klienta projektu, który implementowałem — aplikacji business intelligence w WPF agregującej dane z wielu API — zostałem awansowany. Następnie pracowałem w jednym z zespołów w trybie metodyk zwinnych nad systemem zarządzania cyklem życia polisy ubezpieczeniowej, zajmując się rozwojem, refaktoryzacją, naprawą błędów i testami jednostkowymi. Główne technologie, w których pracowałem, to T-SQL, WCF, ASP.NET API, WPF, Windows Forms, XSLT, XSD, VB.NET i SQLite. Uczestniczyłem w wielu integracjach z systemami zewnętrznymi, w tym z dostawcami płatności i usługami wzbogacania danych. Do zarządzania projektami i współpracy używałem Azure DevOps (wtedy VSTS), Trello, Jiry i Zendesku.

  7. IGE+XAO - Stażysta 2014

    Poza refaktoryzacją i naprawą błędów w C++ zaimplementowałem operację UNDO na całej bazie danych, z użyciem procedury T-SQL wygenerowanej w C# na podstawie schematu tabel.

Własne projekty

Rozwijam narzędzie do analizy szeregów czasowych cen akcji polskich i zagranicznych spółek, z użyciem algorytmów uczenia maszynowego, metod statystycznych oraz analizy technicznej i fundamentalnej. Backend napisany w C# odpowiada za synchronizację danych, wykonywanie analiz, generowanie raportów i wysyłanie wyników do repozytorium, gdzie GitHub Action uruchamia wdrożenie statycznej strony do Azure, dając zerowy koszt utrzymania. Aktualne wyniki: Stock-Today.

Pełnię funkcję CTO w Squizzu, platformie quizowej budowanej w React i C# z wykorzystaniem generatywnej AI. Zaprojektowałem i zaimplementowałem model danych, skonfigurowałem integracje z CosmosDB i Key Vault, odpowiadam też za integrację z Azure OpenAI.

Piszę i publikuję False Green, bloga o weryfikacji, która wyglądała na zieloną, a nią nie była — każdy wpis to prawdziwy incydent, w którym test przeszedł, a system nadal był zepsuty. Statyczna strona w Astro, wdrażana na Azure Static Web Apps przez GitHub Actions, na infrastrukturze opisanej w Terraform.

Utrzymuję publiczny zestaw skilli do Claude Code — ponad 30 powtarzalnych procesów do code review, triage'u, przekazywania pracy i higieny wydań, instalowanych jako plugin Claude Code.

Próbowałem również innych przedsięwzięć, w tym platformy kursów online i narzędzia do raportowania czasu pracy zbudowanego w Power Apps. Chociaż te projekty nie osiągnęły długoterminowego sukcesu, dostarczyły cennych lekcji i umiejętności, takich jak znajomość Power Platform.

Wybrane biblioteki open source, które rozwijam i utrzymuję:

  • LoggerLite — Lekki framework do logowania obsługujący JSON, XML, YAML, konsolę i pliki, z wbudowanym debouncingiem.
  • OnTheFlyStats — Umożliwia obliczanie statystyk w locie, takich jak średnia czy wariancja, z dostępem w czasie O(1).
  • Extensions.Standard — Kolekcja metod rozszerzających do typowych zadań, takich jak interpolacja czy partycjonowanie.
  • ProgressReporting — Biblioteka do szacowania pozostałego czasu i raportowania postępu pętli lub transferu danych.
  • StocksData — Biblioteka .NET Standard do symulowania strategii giełdowych na historycznych danych rynkowych. Na NuGet opublikowana jako pakiety Stocks.Data.*.

Te i inne pakiety są dostępne na NuGet.org.

Moja aktywność na GitHub

Języki

  • Polski - ojczysty
  • Angielski - C2
  • Francuski - B2

Konferencje i szkolenia

  • 2025 - Niebezpiecznik - Atakowanie i ochrona aplikacji webowych
  • 2021 - MEGA Sekurak Hacking Party
  • 2020 - AzureDay
  • 2019 - MEGA Sekurak Hacking Party
  • 2018 - .NET DeveloperDays
  • 2014 - Warsztaty Scrum

Dodatkowe informacje

  • Prawo jazdy kategorii B.
  • Szeroka wiedza z zakresu psychologii.
  • Zainteresowania: ekonomia (finanse osobiste i analiza ilościowa), gry planszowe, squash, bieganie, siłownia.