Przemysław Zalewski

C# and .NET, 2009 to 2021

A .NET developer for the system nobody wants to touch

Ten years of C#, .NET, ASP.NET, Entity Framework and XAML, including my own chat product on sharded .NET servers with 30,000 concurrent users. Since 2017 TypeScript and Node.js. I keep legacy .NET alive, stabilize it, and when it is time, move it over without a rewrite from scratch.

Available from November 2026 · Wrocław, Poland (CET), remote

Przemysław Zalewski
  • “someone you can always count on”public LinkedIn recommendation
  • “a true bias for action”client CTO, on LinkedIn
  • 15+ yearsshipping software
  • Free call, no pitch deck30 minutes, then you decide
10+years of C# and .NET, through 2021
30,000concurrent users on my own chat app
3.7M+downloads across 25+ apps
15+years shipping software

Why me

Legacy, but not left alone

Builds that pass again, dependencies updated in order, tests around the parts people fear, a deploy that one person can run. Then the backlog of small cuts.

Migration without the big bang

Strangler pattern: a new TypeScript service in front, one endpoint at a time, both systems live until the numbers agree. I have moved a desktop 3D product to the browser with a .NET backend kept in place.

Fluent in both directions

LINQ to array methods, Task<T> to Promise<T>, records to interfaces, nullable reference types to | null. The demo below does the mechanical part so the conversation can be about the design.

Scale I have run myself

Horizontally scaled, sharded C# servers, a moderation panel and automated NSFW detection for a product with 1.5 million downloads. I know what production .NET looks like at 3 a.m.

Proof

Work I can show

Problem, what I did, result. Client names only where I am allowed to use them.

My own chat app: 30,000 concurrent users on sharded .NET servers

The problem
An ad-supported anonymous chat grew faster than one server could carry, and nobody else was going to run it.
What I did
Horizontally scaled, sharded C# and .NET servers, my own chat network, a moderation panel, automated NSFW detection, support answered by me.
Result
30,000 concurrent users and 1.5 million+ downloads. It paid my bills for five years and ended when Windows Phone did.

30,000 concurrent 1.5M+ downloads 5 years

See also: SaaS & MVP

25+ apps, 3.7 million downloads, published worldwide

The problem
Between 2009 and 2017 the Windows Phone and Windows Store ecosystem needed apps and had few developers.
What I did
C#, XAML and ASP.NET. Localization into dozens of languages, store listings, ads and in-app monetization, client apps for Polish media brands, plus game development on PC and Xbox 360 before that.
Result
25+ apps and 3.7M+ downloads. The habit of shipping, watching users and fixing what they say started here.

25+ apps 3.7M+ downloads

See also: Games

A desktop 3D measurement product rebuilt for the browser, React in 2017

The problem
A US manufacturer of precision instruments had a desktop app for visualizing 3D scans and wanted feature parity in the browser.
What I did
WebGL and three.js for the scans, React for the interface, a .NET backend around the client’s computation library, Stripe billing, visual regression tests, shared team tooling. Work in English across a nine-hour time difference.
Result
Feature parity reached. When the client cut the team for budget reasons they chose which engineers to keep and I was one of two.

WebGL React 2017 1 of 2 kept

See also: React

One foot in the door

Not ready for a project? Start smaller.

Two ways to see how I work before you commit to a sprint. Fixed scope, a number in writing after a short call.

C# & .NET (legacy) codebase audit, one week

I read the repo, CI, tests, security and the parts the team avoids. You get a written report with findings ranked by risk, a plan with milestones and a go or no-go you can defend. I have run this for a large software house before its clients saw the code.

Code review of one pull request or one module

Send me the diff that worries you. Within a few days you get line-level comments, the three things I would change first and whether I would merge it.

Ask about an audit Free 30-minute call first. If an audit is the wrong tool, I say so on the call.

Live demo

C# in, TypeScript out

A rule-based translator, running entirely in your browser: properties to fields, async Task<T> to Promise<T>, LINQ chains to array methods, records to interfaces, nullable types to unions. It is deliberately simple. The point is to show which parts of a migration are mechanical and which need a human.

Demo loading…

Paste a class from your codebase. If the output is wrong, that line is exactly where the migration needs thought.

How it works

Three steps from this page to a running project.

  1. 1

    A 30-minute call

    You describe the product and the problem. I ask the questions I would ask on day one. If I am not the right person, I say so and point you to someone who is.

  2. 2

    Scope in writing

    A short written plan follows: what we build first, what we measure, how we work together and what it costs. No slide deck.

  3. 3

    Something to touch in week one

    The first slice ships in the first week: deployed, measured, reviewable. From there the work is paced by what the numbers say.

Fit check

Is this a fit?

A good fit when

  • You need a senior who owns delivery, not a pair of hands
  • The product has to ship and be measured, with or without a product manager
  • A solo engagement or a team of up to four
  • TypeScript, React, Node.js, Cloudflare, Postgres, PostHog

Probably not when

  • A program that needs a ten-person vendor team
  • A stack built around Java, Python or a cloud I do not sell
  • Body leasing by the hour with no say in how the work is done
  • A start before November 2026

Working style

How I work

Zero bug policy

A bug is fixed or consciously closed, never parked. Alerts and error tracking in every project, so I learn about problems before the client does.

Review as a craft

Hundreds of pull requests reviewed. I review for the product and its reasons. The code comes second.

Measured, not assumed

PostHog in every project from day one. A tracking plan per feature and dashboards leadership actually reads.

FAQ

Questions people ask before they book

Do you still write C#?
When a client needs it, yes. My last production C# was 2021 and I say so. I am not the person for a greenfield .NET 9 microservice platform. I am the person who keeps a 2014 ASP.NET MVC app alive while the next thing is built, usually in TypeScript.
Migrate .NET to Node.js, or keep it?
Keep it if it is stable and the team can hire for it. Migrate if every change takes a month and nobody dares to deploy. I run a two-week assessment and give you the answer with the cost either way. The target stack is on the TypeScript and Node.js page.
Why is a 2021 skill on a page for hire?
Because the systems did not retire when I moved on. There are more legacy .NET apps than people willing to work on them, and I know both the old world and the new one. The rest of what I do is on the hire me page.
What does maintenance look like?
A fixed number of days per month: builds, patches, dependency updates, monitoring, the small features. Alerts routed to me so I learn about problems before you do.
Windows Phone and XAML too?
That is where the 25+ apps and 3.7 million downloads come from. The platform is gone, the discipline of shipping to a store and reading reviews stayed.
How soon can you start?
November 2026. Book the call and bring the solution file.
Przemysław Zalewski

Let’s find out in 30 minutes

A free 30-minute call. You bring the problem, I bring questions. No prices on this page because scope comes first.

If I am the wrong person I will say so on the call and point you to someone better.

After you book: a calendar invite, then the call. Nothing else to fill in.

Available from November 2026 · B2B contract or employment · Wrocław, Poland (CET), remote