Dominik Czerwiński

Solution Architect | .NET | Systemy Rozproszone | Cloud

Jestem architektem i developerem .NET. Projektuję systemy biznesowe z wykorzystaniem DDD, modularności i jasnych granic odpowiedzialności, tak aby można je było rozwijać bez dokładania zbędnej złożoności.

Aktualnie skupiam się na praktycznym wykorzystaniu Generative AI w software delivery: od pracy z wiedzą i specyfikacją, przez implementację, po review i wsparcie decyzji technicznych.

Zdjęcie Dominika Czerwińskiego

Pragmatyzm w mojej pracy

Technologia służy biznesowi, nie odwrotnie
Dopasowuję złożoność rozwiązania do złożoności problemu
Stosuję zaawansowaną architekturę tylko tam, gdzie przynosi realną wartość
Projektuję systemy z myślą o ich ewolucji i długoterminowym utrzymaniu
Świadomie podejmuję kompromisy zamiast dążyć do teoretycznej „idealności"

Jak pracuję

Zrozumienie problemu
Zaczynam od zrozumienia procesu biznesowego i kontekstu. Zanim zaproponuję rozwiązanie, upewniam się, że rozwiązujemy właściwy problem.
Decyzje architektoniczne
Projektuję rozwiązania w oparciu o realne wymagania, ograniczenia i skalę. Dobieram podejście do problemu, zamiast dopasowywać problem do technologii.
Upraszczanie systemów
Eliminuję zbędną złożoność, rozdzielam odpowiedzialności i dbam o spójność. Celem jest system, który da się rozwijać, a nie tylko wdrożyć.
Współpraca i dostarczanie rozwiązań
Pracuję blisko z zespołami i interesariuszami. Wspieram implementację, dbam o jakość i pomagam doprowadzić rozwiązanie do produkcji.

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.
Współpraca z biznesem
Współpracuję z osobami odpowiedzialnymi za procesy i użytkownikami końcowymi. Pomagam przekładać potrzeby biznesowe na rozwiązania techniczne i identyfikować miejsca do usprawnień.
.NET i Cloud
Buduję rozwiązania w oparciu o .NET i Azure, z naciskiem na skalowalność, niezawodność i utrzymywalność w środowisku produkcyjnym.
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 zmian breaking.
Fullstack
W razie potrzeby dostarczam kompletne rozwiązania — od backendu i API po interfejs użytkownika. Mój główny fokus pozostaje na architekturze i backendzie.

Skontaktuj się

Jeśli szukasz wsparcia przy architekturze, decyzjach technicznych lub realizacji projektu — odezwij się.

Zakres odpowiedzialności

  • Projektowanie architektury systemów backendowych
  • Prowadzenie decyzji architektonicznych i kierunku rozwoju systemu
  • Współpraca z biznesem i przekładanie wymagań na rozwiązania techniczne
  • Nadzór nad spójnością architektury i jakością implementacji
  • Wsparcie zespołów poprzez mentoring i dzielenie się wiedzą

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 bez formalnej roli architekta
  • 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 i braku doświadczonych inżynierów.

  • 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 ryzyk związanych ze stabilnością i skalowalnością.
  • Możliwość dalszego rozwoju systemu i zespołów.
  • Spójniejszy fundament architektoniczny dla wielu modułów.
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

  • Łatwiejsze rozwijanie kolejnych procesów bez przepisywania całości.
  • Stabilniejsze API dla integracji wewnętrznych i zewnętrznych.
  • Mniejsza złożoność utrzymania systemu.
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.

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 workflowsAI agents / instructions

Projekty osobiste

Poza pracą komercyjną prowadzę własne projekty – traktuję je jako poligon doświadczalny, nie gotowe produkty. Testuję tam wzorce i rozwiązania, zanim trafią do projektów klientów.

nevo

Autorski framework .NET do eksperymentowania z CQRS, DDD i Event Sourcingiem. Służy do walidacji wzorców architektonicznych przed użyciem w projektach produkcyjnych. Stack: .NET, EF Core, PostgreSQL

nevo-vibe-coding-prompts

Eksperymentalny projekt CLI do generowania workflow AI-assisted development dopasowanych do konkretnego repozytorium, technologii i architektury. Focus: AI workflows, agents, instructions, project knowledge.

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