Skip to Content

Software / Engineering / Architecture / Design / Modeling


About me More about me

If you think good architecture is expensive, try bad architecture.

Brian Foote and Joseph Yoder.

My name is Kamil Grzybek. I solve business problems - by talking to people, designining systems architecture and writing code for over 15 years. From time to time I conduct consultations, trainings, workshops and make public appearances sharing my experience and knowledge gained while solving real problems.

I play many roles at almost every stage of software development lifecycle - from "information gatherer", through analyst, modeller, architect, leader, programmer, tester, to maintainer of the system in production.

Doing right things right

Enterprise solutions

Deisgning and implementing software solutions for corporate enterprises.

Complex domains

Working with various business domains - financial, banking, medical, sales domains.

+15 years experience

More than 15 years of commercial experience.

Mulitiple roles

Architect, analyst, modeller, programmer and more.

Knowledge sharing

Open-source software contributor, trainer, consultant, conference speaker, blogger, mentor.

.NET Specialization

Deep .NET Framework knowledge and skills.

Services View all services


Collecting information about the organization and its processes on many levels. Analysis of business processes and operations, finding weak points and opportunities for improvement. Specification of business and system requirements.

Example techniques: Event Storming, User Story Mapping, Behavior-Driven Development, Strategic Domain-Driven Design

System designing

Based on functional and quality requirements, as well as technical and business constraints, designing the architecture of the system or individual applications.

Example techniques: Event Storming, C4 Model, text/code as a diagram, Views and beyond, modularization, architectural drivers, Strategic Domain-Driven Design.


System implementation and its supervision in accordance with the previously designed architecture.

Backend and database implementation. Process and tests automation.

Example technology and techniques: Tactical Domain-Driven Design, Behavior-Driven Development, Test-Driven Development, .NET, PostgreSQL, CI/CD, Trunk-based development, Left-shift testing.


Single or series of consultations on solving a specific problem related to the area of software development, solution architecture or implementation.

Example problems: suboptimal architecture, incorrect domain model, low quality code, performance optimization, low development productivity.


Software engineering process and architecture evaluation (as is) along with recommendations for improvement (to be).

Comprehensive code reviews. Audits.


Long-term guidance of individuals to enhance their software engineering skills.

Example career paths: Senior Engineer, Principal Engineer, Architect.

Latest Blog posts See all blog posts

Automated Tests: Testability
6 April 2023
The second in a series of articles about automated testing, devoted to an important quality attribute from the point of view of testable architecture - testability.
Read More
Automated Tests: The Why
30 March 2023
The first article in a series on automated testing discussing why you should test your software in an automated manner at all.
Read More
Modular Monolith: Domain-Centric Design
30 November 2020
In previous posts in this series, I covered what a Modular Monolith is, what its architecture looks like and how this architecture can be enforced. Then I described architectural drivers for this architecture and styles of integration between modules. In this post I would like to go deeper - a level lower and describe how such architecture can be designed. We are not going to implement this architecture yet - we will focus on its technology-agnostic design.
Read More

I strive to ensure that the content I post on my blog and other platforms, as well as the open source projects I create, are both valuable and unique. You will not find simple tutorials or content that has been copied from books or the internet here.

My knowledge is primarily based on my commercial work experience, training, speaking engagements, and years of studying the works of many personalities in the software development community.

To stay updated on my latest work, I warmly invite you to subscribe to my newsletter. I provide exclusive materials only through the newsletter that are not published on the website.

The newsletter contains curated, valuable content on software engineering practices, software architecture, domain-driven design, and other software-related topics. There is no spam.

Read the Privacy Policy. Please note that you can unsubscribe at any time with just one click.

Contact me

Do you have any inquiries, business proposals, or feedback you would like to share? Are you interested in any of me services, or simply looking to stay in touch? Please don't hesitate to contact me.
Let's chat via

Send me a message via the form:

By clicking the button you confirm your acceptance of Privacy Policy.