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
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.
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.
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.
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.
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.
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.
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 GitHubJę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.