Dominik Czerwiński

Solution Architect | .NET | Distributed Systems | Cloud

Jestem Solution Architectem pracującym głównie w ekosystemie .NET. Projektuję systemy biznesowe tak, żeby można było je rozwijać bez dokładania zbędnej złożoności - z wykorzystaniem DDD, modularnej architektury i podejścia dopasowanego do skali oraz kontekstu systemu.

Aktualnie skupiam się na budowaniu praktycznego modelu AI-assisted software delivery - AI jako integralna część pełnego cyklu wytwarzania oprogramowania.

Zdjęcie Dominika Czerwińskiego

Co robię

Architektura systemów
Projektuję architekturę systemów backendowych - od modularnych monolitów po rozwiązania rozproszone. Dbam o granice odpowiedzialności, spójność i możliwość dalszego rozwoju.
Wymagania i granice systemu
Przekładam wymagania biznesowe na granice domeny, API i odpowiedzialności komponentów - pracując z interesariuszami zanim zapadną decyzje projektowe.
.NET i Cloud
Buduję rozwiązania w oparciu o .NET i Azure, z naciskiem na skalowalność, niezawodność i utrzymywalność w środowisku produkcyjnym.
AI-assisted SDLC
Buduję praktyczny model AI-assisted software delivery - AI jako integralna część pełnego cyklu wytwarzania, od specyfikacji po wdrożenie.
Integracje i API
Projektuję i rozwijam API oraz integracje między systemami. Dbam o spójność kontraktów, stabilność i możliwość rozwoju bez częstych breaking changes.
Alignment zespołów
Pomagam ustalać granice odpowiedzialności między frontendem, backendem, API i integracjami, tak aby zespoły pracowały na spójnym modelu.

Pragmatyzm w mojej pracy

Wybieram technologie pasujące do problemu, a nie do aktualnych trendów
Dopasowuję architekturę do skali problemu - nie komplikuję rozwiązania tam, gdzie prostszy model jest wystarczający
Projektuję systemy z myślą o dalszym rozwoju, kosztach zmian i długoterminowym utrzymaniu
Świadomie podejmuję trade-offy zamiast dążyć do modelowej perfekcji

Jak pracuję

Zrozumienie problemu
Zaczynam od zrozumienia problemu biznesowego, ograniczeń systemu i miejsc, w których obecne rozwiązanie przestaje się skalować lub staje się zbyt kosztowne w utrzymaniu.
Decyzje architektoniczne
Projektuję rozwiązania w oparciu o realne wymagania, ograniczenia i skalę, a nie na podstawie tego, co dobrze wygląda na diagramie. Jasno nazywam konsekwencje decyzji architektonicznych.
Upraszczanie systemów
Eliminuję zbędną złożoność, rozdzielam odpowiedzialności i dbam o spójność. Projektuję tak, żeby dodanie nowej funkcji za rok nie wymagało istotnego przebudowania istniejących komponentów.
Blisko implementacji
Nie kończę pracy na etapie projektowania architektury. Prowadzę design review, wspieram przy trudnych przypadkach i pilnuję, żeby decyzje architektoniczne trafiły do kodu.

Zakres odpowiedzialności

  • Projektowanie architektury backendowej, integracyjnej i API
  • Prowadzenie decyzji architektonicznych od analizy problemu do wdrożenia
  • Przekładanie wymagań biznesowych na granice systemu, API i odpowiedzialności komponentów
  • Utrzymanie spójności architektury między zespołami i warstwami systemu
  • Mentoring developerów i technical leadów w zakresie architektury, DDD i system design

Skontaktuj się

Jeśli szukasz Solution Architekta, Tech Leada lub osoby, która weźmie ownership za kierunek techniczny systemu - odezwij się.

Doświadczenie

CSHARK

mar 2023obecnie

Domena: sprzedaż i obsługa zamówień, system enterprise dla globalnej firmy przemysłowej, integracja z SAP

Senior Software Engineer (Technical Leadership / Architecture)

mar 2023obecnie

Prowadzenie kierunku technicznego dla obszaru sprzedaży i obsługi zamówień.

  • Projektowanie architektury dla procesów przyjmowania, zmiany i obsługi zamówień
  • Wprowadzenie modularnej struktury zgodnej z domeną biznesową i granicami procesów
  • Projekt spójnego API dla integracji wewnętrznych, frontendowych i zewnętrznych
  • Porządkowanie odpowiedzialności i przepływów między backendem, frontendem, integracjami i systemami źródłowymi
  • Koordynacja decyzji technicznych między zespołami
  • Poprawa dokumentacji, onboardingu i utrzymywalności rozwiązania
  • Rozwijanie praktycznego AI-assisted development flow wspierającego analizę, specyfikację, implementację i review

Sente Systemy Informatyczne

lut 2013lut 2023

Domena: system finansowy z modułami ERP i CRM, obejmujący sprzedaż, rozliczenia finansowe, księgowość i procesy operacyjne

Lead Architect

wrz 2016lut 2023

Odpowiedzialność za architekturę dużego systemu finansowego w warunkach ograniczeń legacy, wysokiej złożoności domenowej i ograniczonej dostępności kompetencji architektonicznych.

  • Odpowiedzialność za kierunek architektury całego systemu
  • Transformacja systemu z architektury opartej o bazę danych do rozproszonej
  • Strategia migracji z użyciem mikroserwisów i wzorca strangler
  • Wprowadzenie DDD, CQRS i architektury event-driven
  • Budowa wewnętrznych frameworków i standardów inżynierskich
  • Koordynacja architektury w projekcie rozwijanym przez 60+ developerów i wiele zespołów
.NET Developer

lut 2013sie 2016

Rozwój systemu finansowego z wykorzystaniem .NET i Firebird.

Wykształcenie

Politechnika Wrocławska

2009 – 2014

Magister, Informatyka

Projektowanie systemów informatycznych

2013 – 2014

Ocena: bardzo dobry
Inżynier, Informatyka

2009 – 2013

Ocena: celujący

Wybrane projekty

Transformacja systemu legacy

Sente Systemy Informatyczne

System legacy oparty o logikę bazodanową i Firebird, z problemami skalowalności oraz rosnącym ryzykiem operacyjnym.

Podejście

  • Migracja z użyciem wzorca strangler.
  • Stopniowa dekompozycja monolitu do mikroserwisów.
  • Przeniesienie części procesów do przetwarzania w czasie rzeczywistym.
  • Wprowadzenie DDD jako podstawy modelowania domeny.

Efekty

  • Ograniczenie ryzyka operacyjnego przez rozdzielenie logiki serwisowej od kodu legacy.
  • Możliwość rozwijania i wymiany modułów bez wpływu na resztę systemu.
  • Spójna struktura modułów i wzorce integracyjne w projekcie z 60+ developerami.
Redesign domeny sprzedaży i obsługi zamówień

CSHARK

System z rozproszoną logiką biznesową, niespójnym API i rosnącymi potrzebami integracyjnymi.

Podejście

  • Modularyzacja domenowa i uporządkowanie odpowiedzialności.
  • Redesign API pod spójność i integracje zewnętrzne.
  • Rozdzielenie logiki między backend, frontend i systemy źródłowe.
  • Wyrównanie decyzji technicznych między zespołami.

Efekty

  • Nowe procesy można budować na istniejących granicach domenowych bez modyfikowania obecnych.
  • Stabilne kontrakty API zmniejszyły liczbę breaking changes dla frontendu i integracji zewnętrznych.
  • Jasne granice odpowiedzialności zmniejszyły koszty koordynacji między zespołami.
AI-Assisted Software Delivery Flow (Pilot)

CSHARK

Budowa praktycznego procesu wykorzystania Generative AI w pracy zespołu: od wiedzy projektowej i specyfikacji po implementację oraz review.

Podejście

  • Zaprojektowanie strukturalnego procesu SDLC z określonymi rolami AI: spec writer, implementer, reviewer i wsparcie analizy technicznej.
  • Budowa konfiguracji agentów i zestawów instrukcji dla GitHub Copilot i Claude Code.
  • Zastosowanie workflow w realnym projekcie komercyjnym - iteracje na organizacji bazy wiedzy, strukturze speców i cyklach review.
  • Udokumentowanie metodyki jako publicznej serii blogowej (w toku, EN/PL) i opublikowanie referencyjnej implementacji open-source.

Efekty

  • Proces stosowany na co dzień w realnym projekcie komercyjnym.
  • Referencyjna implementacja open-source dostępna na github.com/dczerwinskipl/ai-sdlc-from-scratch.
  • Seria blogowa dokumentująca praktyczne wnioski, decyzje narzędziowe i mechanizmy kontroli w AI-assisted software delivery.

Stack technologiczny

.NET / C#
Distributed Systems
System Architecture
Azure Cloud
Architecture & Design
MicroservicesModular MonolithDomain-Driven DesignCQRSEvent-Driven ArchitectureClean ArchitectureLegacy ModernizationEvent SourcingStrangler PatternC4 / UML
Backend & APIs
.NET / C#ASP.NET CoreREST API DesigngRPCEntity FrameworkAspire
Cloud & Infrastructure
AzureDockerKubernetes / AKSCI/CDAzure DevOpsGitHub Actions
Messaging
RabbitMQKafkaAzure Service BusNATS
Data
PostgreSQLSQL ServerMongoDBCosmosDBEventStoreFirebird
Frontend
TypeScriptReactReact NativeNext.js
AI
GitHub CopilotAI‑assisted development workflowsInstruction design for AI coding tools

Projekty i pisanie

Poza pracą komercyjną prowadzę projekty i piszę. Waliduję tu podejścia architektoniczne, tooling i workflow przed użyciem podobnych rozwiązań w projektach komercyjnych.
Open Source

nevo

Środowisko testowe w .NET do eksperymentowania z CQRS, DDD i Event Sourcingiem. Waliduję tu wzorce architektoniczne zanim trafią do projektów produkcyjnych. Stack: .NET, EF Core, PostgreSQL

ai-sdlc-from-scratch

Referencyjna implementacja AI-assisted SDLC: od zbierania wiedzy, przez specyfikację i implementację, po review. Stack: TypeScript, Node.js

nevo-ui

Monorepo z systemem komponentów React i eksperymentami z AI-assisted development. Architektura frontendu, design system i developer experience. Stack: React, Next.js, TypeScript, Turborepo
Publicystyka