Dominik Czerwiński

Solution Architect | .NET | Distributed Systems | Cloud

I am a .NET architect and developer. I design business systems using DDD, modularity and clear responsibility boundaries, so they can evolve without adding unnecessary complexity.

I am currently focused on practical Generative AI workflows in software delivery: from knowledge gathering and specification to implementation, review and technical decision support.

Photo of Dominik Czerwiński

How I think about architecture

Technology should serve business, not the other way around
I match solution complexity to the actual problem
I use advanced architectural patterns only when they bring real value
I design systems with long-term evolution and maintainability in mind
I make conscious trade-offs instead of aiming for theoretical perfection

How I work

Understanding the problem
I start by understanding the business process and context. Before proposing solutions, I make sure we are solving the right problem.
Architectural decisions
I design solutions based on real constraints, requirements and scale. I adapt the approach to the problem, not the other way around.
Simplifying systems
I reduce unnecessary complexity, define clear responsibilities and focus on consistency. The goal is a system that can evolve, not just be delivered.
Collaboration and delivering solutions
I work closely with teams and stakeholders. I support implementation, ensure quality and help bring solutions to production.

What I do

System architecture
I design backend system architectures — from modular monoliths to distributed systems. I focus on clear boundaries, consistency and long-term evolution.
Working with business
I collaborate with business stakeholders and end users to understand real needs. I help translate them into technical solutions and identify opportunities for improvement.
.NET and Cloud
I build solutions using .NET and Azure, focusing on scalability, reliability and maintainability in production environments.
Integrations and APIs
I design and develop APIs and system integrations. I ensure contract consistency, stability and the ability to evolve without frequent breaking changes.
Fullstack
When needed, I deliver end-to-end solutions — from backend and APIs to user interfaces. My primary focus remains on architecture and backend.

Get in touch

If you're looking for support in architecture, technical decision-making or project delivery — feel free to reach out.

Responsibilities

  • Designing backend system architectures
  • Driving architectural decisions and system evolution
  • Translating business needs into technical solutions
  • Ensuring architectural consistency and implementation quality
  • Supporting teams through mentoring and knowledge sharing

Experience

CSHARK

Mar 2023Present

Domain: sales and order processing, SAP-integrated enterprise platform for a global industrial company

Senior Software Engineer (Technical Leadership / Architecture)

Mar 2023Present

Leading technical direction for sales and order processing capabilities.

  • Designed architecture for order intake, order change and order management flows
  • Introduced modular structure aligned with business domains and process boundaries
  • Designed consistent APIs for internal, frontend and external integrations
  • Clarified responsibilities and flows between backend, frontend, integrations and source systems
  • Coordinated technical decisions across teams without a formal architect role
  • Improved documentation, onboarding and long-term maintainability
  • Developing practical AI-assisted development workflows supporting analysis, specification, implementation and review

Sente IT Systems

Feb 2013Feb 2023

Domain: enterprise financial platform with ERP and CRM modules, covering product sales, financial settlements, accounting, and broader business operations

Lead Architect

Sep 2016Feb 2023

Led architecture of a large-scale financial system under legacy constraints and limited senior engineering support.

  • Owned architectural direction for the entire system
  • Led transformation from legacy database-driven system to distributed architecture
  • Designed migration strategy using microservices and strangler pattern
  • Introduced DDD, CQRS, and event-driven architecture
  • Built internal frameworks and engineering standards
  • Coordinated architecture across 60+ developers and multiple teams
.NET Developer

Feb 2013Aug 2016

Development of a financial system using .NET and Firebird.

Education

Wrocław University of Science and Technology

2009 – 2014

Master of Science, Computer Science

IT Systems Design

2013 – 2014

Grade: Very Good
Bachelor of Engineering, Computer Science

2009 – 2013

Grade: Excellent

Key Projects

Legacy System Transformation

Sente IT Systems

Legacy system based on database logic and Firebird, with scalability issues and increasing operational risk.

Approach

  • Migration using the strangler pattern.
  • Gradual decomposition of the monolith into microservices.
  • Moving parts of the processing to real-time.
  • Introducing DDD as the foundation for domain modeling.

Impact

  • Reduced risks related to stability and scalability.
  • Enabled continued development of the system and teams.
  • More coherent architectural foundation across multiple modules.
Sales and Order Management Domain Redesign

CSHARK

System with fragmented business logic, inconsistent APIs, and growing integration needs.

Approach

  • Domain-driven modularization and clarification of responsibilities.
  • API redesign focused on consistency and external integrations.
  • Separation of logic between backend, frontend, and source systems.
  • Alignment of technical decisions across teams.

Impact

  • Easier development of further processes without rewriting the whole.
  • More stable API for internal and external integrations.
  • Reduced maintenance complexity.
AI-Assisted Software Delivery Flow (Pilot)

CSHARK

Building a practical process for using Generative AI in team work: from project knowledge and specification through implementation to review.

Tech stack

.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

Personal projects

In addition to commercial work, I develop Open Source projects where I test new patterns and solutions before applying them in production. This keeps me current with technology and minimizes risk in client projects.

nevo

Custom .NET framework for experimenting with CQRS, DDD and Event Sourcing. For validating architectural patterns before using them in production projects. Stack: .NET, EF Core, PostgreSQL

nevo-vibe-coding-prompts

Work-in-progress CLI project for generating repository-specific AI-assisted development workflows based on project stack, architecture and reusable knowledge. Focus: AI workflows, agents, instructions, project knowledge.

nevo-ui

Monorepo with React component system and experiments with AI-assisted development. Focus: frontend architecture, design system and developer experience. Stack: React, Next.js, TypeScript, Turborepo