Przemysław Zalewski

C# i .NET, 2009 do 2021

Programista .NET do systemu, którego nikt nie chce dotykać

Dziesięć lat C#, .NET, ASP.NET, Entity Framework i XAML, w tym własny czat na shardowanych serwerach .NET z 30 000 równoczesnych użytkowników. Od 2017 TypeScript i Node.js. Utrzymuję legacy .NET przy życiu, stabilizuję, a gdy przyjdzie czas, przenoszę bez przepisywania od zera.

Dostępny od listopada 2026 · Wrocław, zdalnie

Przemysław Zalewski
  • „someone you can always count on”publiczna rekomendacja na LinkedInie
  • „a true bias for action”CTO klienta, na LinkedInie
  • 15+ latwydawania oprogramowania
  • Bezpłatna rozmowa, bez prezentacji30 minut, potem decydujesz
10+lat C# i .NET, do 2021
30 000równoczesnych użytkowników mojego czatu
3,7 mln+pobrań w 25+ aplikacjach
15+lat wydawania oprogramowania

Dlaczego ja

Legacy, ale nie porzucone

Buildy, które znów przechodzą, zależności aktualizowane po kolei, testy wokół części, których ludzie się boją, wdrożenie, które jedna osoba może uruchomić. Potem backlog drobnych ran.

Migracja bez wielkiego wybuchu

Wzorzec strangler: nowa usługa w TypeScripcie z przodu, jeden endpoint na raz, oba systemy żyją, aż liczby się zgodzą. Przeniosłem desktopowy produkt 3D do przeglądarki z backendem .NET zostawionym na miejscu.

Płynnie w obie strony

LINQ na metody tablic, Task<T> na Promise<T>, rekordy na interfejsy, nullable reference types na | null. Pokaz niżej robi część mechaniczną, żeby rozmowa mogła być o projekcie.

Skala, którą prowadziłem sam

Skalowane poziomo, shardowane serwery C#, panel moderacji i automatyczna detekcja NSFW dla produktu z 1,5 miliona pobrań. Wiem, jak wygląda produkcyjny .NET o trzeciej w nocy.

Dowody

Praca, którą mogę pokazać

Problem, co zrobiłem, efekt. Nazwy klientów tylko tam, gdzie wolno mi ich użyć.

Mój własny czat: 30 000 równoczesnych użytkowników na shardowanych serwerach .NET

Problem
Anonimowy czat utrzymywany z reklam rósł szybciej, niż uniósłby jeden serwer, a nikt inny nie miał go prowadzić.
Co zrobiłem
Skalowane poziomo, shardowane serwery C# i .NET, własna sieć czatu, panel moderacji, automatyczna detekcja NSFW, support obsługiwany przeze mnie.
Efekt
30 000 równoczesnych użytkowników i 1,5 mln+ pobrań. Utrzymywał mnie przez pięć lat i skończył się razem z Windows Phone.

30 000 równoczesnych 1,5 mln+ pobrań 5 lat

Zobacz też: SaaS i MVP

25+ aplikacji, 3,7 miliona pobrań, wydanych na cały świat

Problem
Między 2009 a 2017 ekosystem Windows Phone i Windows Store potrzebował aplikacji i miał niewielu programistów.
Co zrobiłem
C#, XAML i ASP.NET. Lokalizacja na dziesiątki języków, wpisy w sklepie, reklamy i monetyzacja w aplikacji, aplikacje dla polskich marek medialnych, a wcześniej gry na PC i Xbox 360.
Efekt
25+ aplikacji i 3,7 mln+ pobrań. Nawyk wydawania, patrzenia na użytkowników i poprawiania tego, co mówią, zaczął się tutaj.

25+ aplikacji 3,7 mln+ pobrań

Zobacz też: Gry

Desktopowy produkt do pomiarów 3D przeniesiony do przeglądarki, React w 2017

Problem
Amerykański producent przyrządów pomiarowych miał aplikację desktopową do wizualizacji skanów 3D i chciał tej samej funkcjonalności w przeglądarce.
Co zrobiłem
WebGL i three.js do skanów, React do interfejsu, backend .NET wokół biblioteki obliczeniowej klienta, płatności Stripe, testy regresji wizualnej, wspólne narzędzia zespołu. Praca po angielsku przy dziewięciu godzinach różnicy czasu.
Efekt
Pełna funkcjonalność osiągnięta. Gdy klient ciął zespół z powodów budżetowych, sam wybrał, kogo zostawić, i byłem jednym z dwóch.

WebGL React 2017 1 z 2 zostawionych

Zobacz też: React

Jedna noga w drzwiach

Nie czas na projekt? Zacznij mniejszym krokiem.

Dwa sposoby, żeby zobaczyć, jak pracuję, zanim zamówisz sprint. Stały zakres, liczba na piśmie po krótkiej rozmowie.

Audyt kodu C# i .NET (legacy), tydzień

Czytam repo, CI, testy, bezpieczeństwo i miejsca, których zespół unika. Dostajesz pisemny raport z ustaleniami według ryzyka, plan z kamieniami milowymi i decyzję go/no-go, którą da się obronić. Robiłem taki audyt dla dużego software house’u, zanim jego klienci zobaczyli kod.

Code review jednego pull requesta albo modułu

Przyślij diff, który Cię martwi. W kilka dni dostajesz komentarze do linii, trzy rzeczy, które zmieniłbym najpierw, i werdykt: zmergowałbym czy nie.

Zapytaj o audyt Najpierw bezpłatna rozmowa 30 min. Jeśli audyt to złe narzędzie, powiem to na rozmowie.

Pokaz na żywo

C# wchodzi, TypeScript wychodzi

Translator regułowy, działający w całości w Twojej przeglądarce: properties na pola, async Task<T> na Promise<T>, łańcuchy LINQ na metody tablic, rekordy na interfejsy, typy nullable na unie. Jest celowo prosty. Chodzi o pokazanie, które części migracji są mechaniczne, a które wymagają człowieka.

Ładuję pokaz…

Wklej klasę ze swojego kodu. Jeśli wynik jest zły, ta linia to dokładnie miejsce, gdzie migracja wymaga namysłu.

Jak to działa

Trzy kroki od tej strony do działającego projektu.

  1. 1

    Rozmowa 30 minut

    Opisujesz produkt i problem. Ja zadaję pytania, które zadałbym pierwszego dnia. Jeśli nie jestem właściwą osobą, mówię to i wskazuję kogoś, kto jest.

  2. 2

    Zakres na piśmie

    Potem krótki plan na piśmie: co budujemy najpierw, co mierzymy, jak pracujemy i ile to kosztuje. Bez prezentacji.

  3. 3

    Coś do dotknięcia w pierwszym tygodniu

    Pierwszy wycinek wychodzi w pierwszym tygodniu: wdrożony, zmierzony, do przejrzenia. Dalej tempo wyznaczają liczby.

Dopasowanie

Czy to pasuje?

Dobre dopasowanie, gdy

  • Potrzebujesz seniora, który bierze odpowiedzialność za dowiezienie, nie pary rąk
  • Produkt ma wyjść i być mierzony, z product managerem albo bez
  • Współpraca solo albo zespół do czterech osób
  • TypeScript, React, Node.js, Cloudflare, Postgres, PostHog

Raczej nie, gdy

  • Program, który potrzebuje dziesięcioosobowego zespołu dostawcy
  • Stack zbudowany wokół Javy, Pythona albo chmury, której nie sprzedaję
  • Body leasing na godziny bez wpływu na sposób pracy
  • Start przed listopadem 2026

Styl pracy

Jak pracuję

Zero bug policy

Błąd jest naprawiony albo świadomie zamknięty, nigdy odłożony. Alerty i śledzenie błędów w każdym projekcie, więc o problemach dowiaduję się przed klientem.

Review jako rzemiosło

Setki przejrzanych pull requestów. Patrzę na produkt i jego powody. Kod jest drugi.

Mierzone, nie zakładane

PostHog w każdym projekcie od pierwszego dnia. Plan zdarzeń per funkcja i dashboardy, które zarząd naprawdę czyta.

FAQ

Pytania, które padają przed umówieniem rozmowy

Piszesz jeszcze w C#?
Gdy klient tego potrzebuje, tak. Mój ostatni produkcyjny C# to 2021 i mówię to wprost. Nie jestem osobą do nowej platformy mikroserwisów na .NET 9. Jestem osobą, która utrzyma aplikację ASP.NET MVC z 2014 przy życiu, póki powstaje następna, zwykle w TypeScripcie.
Migrować .NET na Node.js czy zostawić?
Zostawić, jeśli jest stabilny, a zespół da się do niego zrekrutować. Migrować, jeśli każda zmiana trwa miesiąc i nikt nie odważa się wdrożyć. Robię dwutygodniową ocenę i daję odpowiedź z kosztem w obie strony. Docelowy stack opisuje strona o TypeScripcie i Node.js.
Czemu umiejętność z 2021 jest na stronie do wynajęcia?
Bo systemy nie przeszły na emeryturę, gdy ja poszedłem dalej. Aplikacji legacy w .NET jest więcej niż ludzi chętnych do pracy nad nimi, a ja znam stary świat i nowy. Reszta tego, co robię, jest na stronie zatrudnij mnie.
Jak wygląda utrzymanie?
Stała liczba dni w miesiącu: buildy, łatki, aktualizacje zależności, monitoring, małe funkcje. Alerty kierowane do mnie, żebym dowiadywał się o problemach przed Tobą.
Windows Phone i XAML też?
Stąd 25+ aplikacji i 3,7 miliona pobrań. Platforma odeszła, została dyscyplina wydawania do sklepu i czytania recenzji.
Od kiedy możesz zacząć?
Od listopada 2026. Umów rozmowę i przynieś plik solution.
Przemysław Zalewski

Sprawdźmy to w 30 minut

Bezpłatna rozmowa 30 minut. Ty przynosisz problem, ja pytania. Bez cen na tej stronie, bo najpierw zakres.

Jeśli nie jestem właściwą osobą, powiem to na rozmowie i wskażę kogoś lepszego.

Po umówieniu: zaproszenie do kalendarza, potem rozmowa. Nic więcej do wypełniania.

Dostępny od listopada 2026 · B2B albo etat · Wrocław, zdalnie