logo
episode-header-image
Sep 2024
1h 4m

CQRS, System Maintainability, and Pragma...

JAMIE TAYLOR
About this episode
Metalama

This episode of The Modern .NET Show is supported, in part, by Metalama, reduce your boilerplate code by up to 15% with Metalama's C#-to-C# template engine and reduce your code complexity today!

Show Notes

"Essentially, when you look at it, what we are doing, we are not building software. We are changing it, we are maintaining it. Because when you look at the typical lifecycle of the application, enterprise one I would say, or any big system where you invest lots of time lots of money building it, you want to exploit this for 5-10-15 years hopefully. So when you look at the percentages, you're building something for one year and then you are using it for nine more years, let's say. It's a 10 year life cycle. So when you think about it, you spend 10 times... er, 10 percent of your time building something and 90 percent of the lifecycle of the application or the system responding to change requests, building new things, changing, adapting, and maintaining. So essentially, our job is not to build out. Our job is to sustain all these request changes. I think that's the first point we need to clear."— Dejan Miličić

Welcome friends to The Modern .NET Show; the premier .NET podcast, focussing entirely on the knowledge, tools, and frameworks that all .NET developers should have in their toolbox. We are the go-to podcast for .NET developers worldwide, and I am your host: Jamie "GaProgMan" Taylor.

In this episode, Dejan Miličić joined us to talk about the CQRS pattern, how it came from CQS, what CQS is and how it's related to Alan Kay's original ideas for object-oriented programming, being pragmatic as developers and engineers, the importance of system design and system's thinking, and how we all need to realise that our software lives on for years after we've pushed our changes to the repo.

"So I, indeed, agree with you that people should pay more attention to system design. Start looking at the whole picture. And the extreme of this thinking would be: okay you will go into job interview, they will ask you about, I don't know, quick sort you, will implement it on the whiteboard, and then six months later on you will go and purchase or maybe download a NuGet package with with a quick sort implementation, because you know it makes sense; you don't want to implement something that have been implemented this many times before."— Dejan Miličić

Whilst this episode doesn't focus on .NET per se, I think that the subjects that Dejan and I covered are incredibly important for anyone who wants to seriously level up their game. In fact, Dejan proved this point when he said:

"We [are] all, like, containerised into our own small silos and working on our own without being aware of the whole system. When you look at what people go through when they prepare for job interviews at, I don't you know, Google, Facebook, nowadays Meta, Microsoft, you have all these books on the system design. And then they go, instead of, you know, going to the job interview after 20 years of experience and talking about what you do and what you know, people with 20 years of experience still sit down and learn and prepare for the system design interview. I'm not saying they shouldn't be preparing, but some of my colleagues told me that that was the first time in their careers that they started looking at the system design as a discipline."— Dejan Miličić

Anyway, without further ado, let's sit back, open up a terminal, type in `dotnet new podcast` and we'll dive into the core of Modern .NET.

Supporting the Show

If you find this episode useful in any way, please consider supporting the show by either leaving a review (check our review page for ways to do that), sharing the episode with a friend or colleague, buying the host a coffee, or considering becoming a Patron of the show.

Full Show Notes

The full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at: https://dotnetcore.show/season-7/cqrs-system-maintainability-and-pragmatic-tech-choices-with-dejan-milicic/

Useful Links Supporting the show:

Remember to rate and review the show on Apple Podcasts, Podchaser, or wherever you find your podcasts, this will help the show's audience grow. Or you can just share the show with a friend.

And don't forget to reach out via our Contact page. We're very interested in your opinion of the show, so please get in touch.

You can support the show by making a monthly donation on the show's Patreon page at: https://www.patreon.com/TheDotNetCorePodcast.

Up next
Jun 27
Learning Azure with Jonah Andersson: A Developer's Guide to Cloud Computing and Development Fundamentals
RJJ Software's Software Development Service This episode of The Modern .NET Show is supported, in part, by RJJ Software's Software Development Services, whether your company is looking to elevate its UK operations or reshape its US strategy, we can provide tailored solutions that ... Show More
1h 14m
Jun 13
Dapr: The Secret Sauce to Simplifying Distributed Applications with Mark Fussell
RJJ Software's Software Development Service This episode of The Modern .NET Show is supported, in part, by RJJ Software's Software Development Services, whether your company is looking to elevate its UK operations or reshape its US strategy, we can provide tailored solutions that ... Show More
1h 9m
May 30
.NET Aspire: How Maddy Montaquila and the .NET Team Are Revolutionizing Development
RJJ Software's Software Development Service This episode of The Modern .NET Show is supported, in part, by RJJ Software's Software Development Services, whether your company is looking to elevate its UK operations or reshape its US strategy, we can provide tailored solutions that ... Show More
1h 2m
Recommended Episodes
Sep 2024
BDTP. Implementing Self-service SaaS with Franciska Dethlefsen
Today we have another episode of Better Done Than Perfect. Listen in as we talk to Franciska Dethlefsen, Head of Growth Marketing at Amplitude. You'll learn about their journey from being completely sales-led to launching a self-serve plan, how they approached pricing and packagi ... Show More
34m 29s
Apr 2021
Episode 210: Running a UX Patterns Library with Ramy Khuffash
What does it take to successfully run a content library for designers? What are the challenges? Our guest today is Ramy Khuffash, indie hacker and founder of Page Flows and Screenjar. You’ll learn about Ramy’s founder journey, how he works on multiple products simultaneously, how ... Show More
34m 37s
May 2021
397: Customer Feedback vs. Team Intuition
This week, we talk about the tension between building what customers explicitly ask for versus building towards a team’s internal vision. In The Sidebar, we talk about the lack of public software critique: Why isn’t there an MKBHD equivalent for software design?Golden Ratio Suppo ... Show More
23m 29s
Aug 2024
Episode 285: Designing for Real-world Experiences with Dave Waddell
How do you design for real-world experiences? Our guest today is Dave Waddell, co-author of The Experience Book and experience design research and strategist at FreeState. You’ll learn why it’s critical to involve end users, the elements that make for a great experience, their ca ... Show More
41m 35s
Nov 2024
ANTHOLOGY — Packages, pledges & protocols (Interview)
The hallway track at All Things Open 2024 — features Carl George, Principal Software Engineer at Red Hat for a discussion on the state of open source enterprise linux and RHEL (Red Hat Enterprise Linux), Max Howell, creator of Homebrew and tea.xyz which offers rewards and recogni ... Show More
1h 45m
Feb 2025
Tool calling and agents
It seems like everyone is uses the term “agent” differently these days. In this episode, Chris and Daniel dig into the details of tool calling and its connection to agents. They help clarify how LLMs can “talk to” and “interact with” other systems like databases, APIs, web apps, ... Show More
45 m
Jul 2024
Episode 284: Designing for Mature Markets with Simon Rohrbach
How do you design for mature markets like the devtool space? Our guest today is Simon Rohrbach, co-founder and CEO of Plain. You’ll learn about their founder journey, why you shouldn’t strive for hyper-polished websites all the time, why you shouldn’t sacrifice quality when shipp ... Show More
34m 40s