S08E19 1h 05mSeason 8

Episode Summary
In this episode, Chris Woodruff joins Jamie to discuss his upcoming book on simplicity-first software architecture — a philosophy distilled from over 30 years of professional development experience.
Chris argues that complexity is too often mistaken for sophistication, and that the industry has drifted into “resume-driven development”: choosing patterns like microservices for career reasons rather than technical ones. He introduces three practical filters that any team can apply:
- The half rule: could you cut half the resources (or half the code) and still meet user needs?
- The 2 a.m. test: could a tired, stressed engineer debug this at 2 a.m. without calling 20 people?
- Primary path first: build for the 90% before you entertain a single edge case.
Along the way, Jamie and Chris dig into the economics and sustainability of simpler architectures, why Amazon Prime Video moved back to a monolith and cut costs by 90%, how AI tools amplify complexity by defaulting to React with hundreds of dependencies, and why ASP.NET Razor Pages with HTMX can serve the vast majority of web applications without the SPA tax.
Whether you’re an architect, a senior engineer, or someone wondering why your cloud bill keeps growing, this conversation is a reminder that complexity is a budget — and once you spend it, you don’t get it back.
Episode Transcription
A lot of people go to conferences and they do conference-driven development. They come back with all these great ideas. And you know what? I’m guilty. I speak at conferences and I give lots of ideas. But they’re ideas and you don’t have to take every idea and apply it when you get back to the office.
Hey everyone, and welcome back to The Modern .NET Show; the premier .NET podcast, focusing entirely on the knowledge, tools, and frameworks that all .NET developers should have in their toolbox. I’m your host Jamie Taylor, bringing you conversations with the brightest minds in the .NET ecosystem.
Today, we’re joined by Chris Woodruff to talk simplicity, which is his overarching philosophy when it comes to working with code; whether that’s developing, architecting, or interacting with decision makers: simplicity matters.
Simplicity also reflects in cost. Because I’ve found all these studies that say that most companies that start putting solutions out on the cloud pay a lot more than they should.
Along the way, we talked about how simplicity goes further than the code we write and into how we choose to host our applications, either in the cloud or on prem. Arguably, most of the time, an application which has a simpler architecture will be cheaper to host.
So let’s sit back, open up a terminal, type in dotnet new podcast and we’ll dive into the core of Modern .NET.
Jamie
Chris
Jamie
Chris
I think I’m one of the old men of the community. I’ve got lots of grey hair. Well, I have no hair now, but I have grey in my beard, so it must mean I’m old. I’ve been doing software development professionally for over 30 years now, and for fun for almost forty-five years. So it goes way back.
I’ve done a little bit of everything in my career: developer, architect, databases, developer advocacy, training, content creation, sales. I’ve been on the dark side with sales. But yeah, that’s a little bit about me.
Jamie
Chris
Jamie
Folks, you’ll need to get lots of experience of different sized companies. I have to say you’re right there, Chris. Everyone needs all of that experience.
Chris
Jamie
Because I’m the expert in my own experience, I don’t know whether this maps to everyone else’s experience. But we as an industry assume that we have a whole bunch of rules and best practices, and we assume that everybody just implements them the exact same way. Let me tell you, folks, nobody does, right?
Chris
Jamie
Chris
Jamie
Chris
Jamie
Chris
Then, as we transition to being seasoned, as I say, or very experienced developers, we see the error of our ways. We come back to trying to make things simple. I’m at this point in my career where I’ve been looking back on 30 years and I just said, I made a lot of mistakes.
For the past couple of years, I’ve been really thinking about this, and I said, I’m going to document some of this. I just got done publishing a book with some friends on developer relations patterns, and I talked to the book editor and said, I’ve got this idea about a book and it’s about simplicity first. They were like, okay, let’s do it. I was like, okay, I guess it resonated with the editors. So we’re going to have a book out probably in the late summer, early autumn.
Jamie
Chris
Jamie
Chris
Some people think simple means not valuable, but I try to challenge people to say simplicity just means you try to have — I have three filters that I try to apply to solutions, and we can talk about those as we go on, Jamie — but I just try to make solutions that people can understand. If you can explain a solution in ten to fifteen minutes and someone else can understand it, I think it’s simple enough to implement. If it takes a week to explain a solution or a project, you’re in a bad spot, especially if you’re at the starting point or in the beginning of it.
Jamie
Chris
Jamie
I think personally a lot of people confuse making something simple with making something stupid. That is completely the opposite, like you’re saying, right? If you can explain it on the back of a napkin in an elevator ride, or in less time than it takes to drink a coffee — what was the character’s name? Charlie in Always Sunny. If you need a pegboard with a thousand photographs, you’ve probably overcomplicated it.
Especially since I feel like 90% of the applications we build — yes, we might add the complications of things like microservices and sharded databases, but 90% of the applications we build are forms over data. Get some data out of a database, show it to the user or to the consumer of the API, let the user or consumer of the API tell you what needs to be updated, and then put the data back in the database. That’s it, right?
Chris
Complexity is not sophistication. What we have to realise — and you hit it on the head — is simple does not mean it’s dumb or stupid or not worth our time. It just means that it’s a simple way of dealing with something. I always said that the best tool, and the most simple tool, sometimes is just a pencil and a piece of paper. You don’t need a mobile phone and an app sometimes. All that you need sometimes is a piece of paper. If you’re writing down notes, why do your notes have to go into a computer? I write my notes on paper and then I’ll go back, read them, and put them into something like Notion or some other tool.
We have this idea that we have to start everything in a complex manner. I’m going to say many things that will probably make your listeners mad. But here’s the first thing — you hit on a keyword that triggers me: microservices. Microservices are not a default starting point. They are a destination point. They’re not where you start. You start with something simpler.
I always say if you’re really thinking about microservices, take a look at domain-driven development and look at the modular monolithic architecture idea, because that will give you 80% of what you’re trying to do with your microservices, without the complexity of microservices. I don’t mean just by code — I mean by deployment, testing, maintainability. So when I say simplicity first, it’s not code, it’s the entire process of software development.
That’s the first thing that I’ve probably really upset your listeners with, the ones who think that microservices are the be-all and end-all. Even the person who coined the term microservices — I cannot remember his name — but he came up with the idea in about 2006, and by 2012 he was telling people that they didn’t have to use microservices, that those were special cases only, and it wasn’t a blanket for everything.
Jamie
Chris
Jamie
I feel like, whilst microservices is a great pattern to look to move towards, when it started to become the design pattern du jour, a lot of people saw one or two conversations at conferences and talks by people like Netflix, and it looked easy because Netflix did it and Netflix is really successful. But what they didn’t take from the talk was the bit where Netflix had said, yes, it does work for us, but it has required the equivalent of two hundred engineering years, or two thousand engineering years, or something like that. I can’t remember the actual number, but they were pretty public about: it has taken us a long time to come up with this kind of solution and to figure out how to glue all of these microservices together such that they are stable, and such that we can throw Chaos Monkey at it and get it to work.
It’s still a relatively simple design compared to what it could be, but it is still very, very complex. My own personal opinion is, I feel like they probably had a lot of help from AWS setting everything up and getting it up and running. For folks who don’t know, Netflix is the killer app of AWS, right? As far as I’m aware, the video hosting side of it isn’t on AWS, but all of the microservices and the back ends for front ends and the app that is Netflix all runs on AWS. It is the poster child for microservices on AWS.
Chris
Jamie
Chris
So when one person comes in and talks about what Netflix did at a conference, what they don’t explain is all the manpower, like you said, behind the scenes. For a small company and a small team, I think microservices has turned into a career decision instead of a technical decision.
You hit it earlier when you were talking — a lot of people go to conferences and they do conference-driven development. They come back with all these great ideas. You know what? I’m guilty. I speak at conferences and I give lots of ideas. But they are ideas, and you don’t have to take every idea and apply it when you get back to the office. Think about stuff. Just like if you were reading the Gang of Four pattern book, you don’t need to try to get every pattern into your software solution. It’s not a competition.
I feel that over the last ten, fifteen years, a lot of people made technical decisions that weren’t the best for their teams or their organisations. They were chosen and implemented for their career development, which — I’m all for people making the most of themselves and creating a good career for themselves. But when you put yourself in front of your team and the organisation that you represent by developing solutions that are far more complex and complicated than they need to be, just because you wanted to have something on your resume, I think that is a huge, huge issue in our industry.
Jamie
But then I’m also going to counter that same argument with — one of the things that I know about American pop culture is that in the TV shows, someone who is approaching retirement age tends to pick up a hobby outside of work that is not directly related to what they’re doing, right? So maybe they take up woodwork and start fabricating things and building things, and they buy a special set of equipment. They don’t buy the equipment specifically because it’s the only equipment they could use to do the thing. When they buy the equipment, they don’t just use that piece of equipment for what they’re building.
Let’s say someone’s building a boat in their workshop, the space that they can do their activity in. You can buy a belt sander, or you can buy a hand-operated plane, and you can slowly sand and plane the wood down to give it the finish that you’ll feel — you’ll have the right feel to it. You can use the belt sander or you can use the plane to plane it down. Now, you don’t buy one and exclusively use that forever. You buy the one and use it in the situation in which it makes the most sense.
It’s one of the reasons why the tagline for this show is “the tools in your toolbox”, not “do it this way and only ever do it this way”, because that’s just silly. It would be a terrible idea for me — not for others, but for me — to tell people specifically: you should only ever write software in this particular way, with these particular languages, with these particular frameworks and these particular tools, because none of those apply to every single problem, right?
Chris
When I say simple, a lot of people think, oh, you’re just trying to make things simple. I go, well, no, I’m trying to make things affordable, I’m trying to make things sustainable, I’m trying to make things testable, I’m trying to make things maintainable.
I’m releasing over six weeks right now: the economics of software architecture. Simplicity also reflects in cost, because I’ve found all these studies that say that most companies that start putting solutions out on the cloud pay a lot more than they should, either because teams add a lot of complexity to the solutions which causes the resources and the features to be more expensive on Azure or AWS or Google Cloud, or engineers and DevOps teams set up too big of resources for their solutions.
One of these filters that I speak about — there’s three of them — one’s called the half rule. I come in and I say, you know, if we could get rid of half of the resources — for this, let’s say it’s cloud — could we get rid of half of the cloud resources and still have a functional solution? I challenge teams to do that. Just like I challenge teams — and I’ll tell you what the two other filters are in a second — but sometimes I’ll say, hey, can we get rid of half the code and still have a working solution that meets the customer’s needs? So one of the filters is called the half rule.
The other important one, probably the most important one, is what I call the 2 a.m. test. If you could have someone wake up at 2 a.m. when your solution or your system goes down, and they can — half asleep and groggy-eyed — fix that solution quickly and not have to call 20 different people across 20 different teams to get a solution, that’s what you strive for. So that’s the other filter I try to apply. Could a tired, stressed engineer debug this problem at 2 a.m. without help? I’m not saying they could or they couldn’t — I’m just saying that’s what you’re striving for.
Then the last filter, and you’ll laugh because every engineer does this, I call it the primary path first. I say develop your primary path of your solution. Don’t worry about edge cases. You know when engineers get into a room and they start talking about designs, it’s all about edge cases. No — worry about the 90%. Worry about the 90% that’s your primary path. If there’s a feature and less than 5% of your users will use it, that’s an edge case. Don’t even think about edge cases until you get the primary path done. Then you can bring edge cases into it.
If you build all these edge cases, you’re using up the complexity tax of your teams. That complexity tax, or that energy that a team has to build the solution, should be for meeting the needs of the majority of the users. We all get caught up — and I’ve done this in my career — you sit there and go, well, what about if we go for this integration? No one sits there and goes, how many of our users need to integrate to that X third-party tool? Well, I don’t know. If someone says I don’t know, you slap them and tell them to be quiet and let’s keep on the primary path.
My philosophy, this simplicity-first philosophy, is not hard. It’s common sense. It’s just reminding yourself to ask questions. It’s reminding yourself to say: is this really worth the time to do it? Are we putting too many resources into this solution? Are we making this solution too complex for our engineers and our DevOps people to fix if something breaks? It all comes down to common sense and respect for each other and the users.
Jamie
Chris
After a few years of them trying to get this microservice platform architecture running, I think they just decided we’re going to go back to a monolithic architecture, and they built it. Now they built it in a way where they used all the knowledge that they learned from the microservices — how not to do it. I don’t think they were really implementing microservices well, but they had a lot of that knowledge, and they built their monolithic solution. It is still used today and it supports their tens of millions of users. I don’t think they have the same user base as Amazon — they could, because there’s tons of people that have Amazon Prime — but they went back to a simple solution and got better, easier, more maintainable, more testable, and it was a better solution for them.
I think they were trying to just say, oh well, if Netflix does it, we should do it. I think they learned that everyone has to develop their own solution for themselves and their users.
Sponsor Message
Today's episode of The Modern .NET Show is brought to you by RJJ Software: strategic technology consulting for ambitious SMEs.
You know me as the host of this podcast, but here's what you might not know: I'm also a former Microsoft MVP who's helped businesses from Formula 1 teams to funded startups transform technology from a cost center into a competitive advantage. At RJJ Software, we specialize in three things that matter to growing businesses:
- AI that actually delivers ROI: not hype, just practical implementations that pay for themselves
- Developer Experience optimization: we've helped teams achieve 99% faster deployments and 3x productivity gains
- Strategic technology decisions: from architecture reviews to fractional CTO services
The difference? We don't just advise. We ensure successful implementation through knowledge transfer to your team.
If you're an SME leader wondering why your technology investments aren't delivering, or you're facing critical decisions about AI, modernization, or team productivity, let's talk.
Visit rjj-software.co.uk/podcast to book a strategic consultation.
Now, let's back to today's episode...
Jamie
Imagine you’re building a house, right? You decide that two hundred years ago there was a flood in your area, and the water levels rose to, I don’t know, twenty-five feet. It’s only happened once in the last two hundred years, so you build your house on stilts, like they do in some parts of Australia, where your house is twenty feet in the air. That’s fantastic. But then you realise, maybe ten years into owning that house, I didn’t need those stilts. Well, guess what? You’ve got loads of complexity required in lowering your house back down to the ground.
Chris
Imagine you going to your boss and saying, hey, I want to redo this system; it’s going to save us 90% of what we pay for the current system. Unless it takes 10 years to implement, your boss is going to listen to you. This is the economics of simplicity. Instead of sixty-five thousand dollars a year for a microservices solution and architecture, what if it was ten thousand dollars a year for the same capabilities, the same number of users, the same uptime, the same everything? If you could say, instead of a $65,000 solution, we’re going to have a $10,000 solution, I would guess that the people that are paying for it, or having to sign off on the cost, would probably be happier.
Jamie
Chris
In my book, I also have a couple of chapters on environmental concerns. I’m not a tree hugger or anything, but I do want to think about solutions that use less energy, because we’ve all seen it in the past couple of years: energy prices have gone up. We have more demand for energy, mostly from these AI data centres, which I don’t know if they really take a look at sustainability or not. But I have changed my ideas and changed my views. If I can make a solution that is more sustainable, uses less energy, that will be a simpler solution and usually a cheaper solution, because I’m not using as much energy compared to a complex solution that uses a lot more features and energy and stuff.
So there’s this whole idea of sustainability and using less energy and making a positive impact on the environment. We should be stewards of our world. I want to leave this world in a better place for my kids and my grandkids. I don’t think other people have that philosophy, but I do. So when I sit down and look at solutions, I try to look at it from a sustainability aspect also.
Jamie
I’m going to pick an easy low-hanging fruit here. We do need abstraction in order to do our jobs, but we don’t need as much abstraction, I think, as we use, right? If the power cost of creating one level of abstraction is, say, ten milliwatts an hour, and you have 400 levels of abstraction, the numbers add up really quickly, right? Maybe that’s per request, and maybe you’re getting four million requests a minute. Your power consumption goes through the roof.
One of the things that we don’t realise as devs is that every time you create a new class, or every time you go back to a class that previously existed, or every time you move through a function call stack, you’re literally moving through a stack. The CPU and the whole system has to remember where it came from. So it has to hit pause, put some stuff onto the real stack, increase the program counter, flush a whole bunch of memory, pull all of your instructions back in from level one or level two cache, rehydrate everything, and then continue. First off, that’s super inefficient anyway. But secondly, it might be picowatts, I don’t know, but that’s power that’s being used that you don’t need.
Then combine that with — there was a blog article, I’ll see if I can find it for the show notes. I read it yesterday and it was about 49 megabytes of data required to load a single HTML page. This person is talking about the design of the page and all of the ads and all of the extra cruft — the 49 megabytes of JavaScript and images and stuff that are required to show 250 kilobytes, if that, of a news article, right? That’s a huge waste too, because that’s super complex.
In that instance, what’s happening is it’s loading a whole bunch of JavaScript, and then the JavaScript figures out which of the ad networks is “the best one” in quotes to go to to get an ad. But it has to load them all, and there’s this whole complex bidding process and tracking and stuff. All of that itself is an argument for another day. But it adds to the complexity of loading that page, because if I’m running a relatively low-powered cell phone, or maybe I don’t have a well-optimised laptop, I load a website and the fan is going to kick in and the battery’s going to get hot. That shouldn’t be happening.
Chris
I have four computers in this office that I’m sitting in. If I close the door, especially in the summertime, and I come back and they’re all running, this office is pretty toasty. I don’t really need heat in this office — these computers give off enough heat.
When I was in school, and early in my career, no one ever talked about saving energy, like building solutions to use less energy. They would talk about building solutions to be cheaper, to run on cheaper hardware, or on smaller resources in the cloud. But I think it’s this new idea of the last maybe five to eight years that we’ve really taken a look at the energy consumption that these cloud platforms, these cloud providers, are using. Now, with all the AI data centres, there might not be enough energy to go around, no matter how much oil we get out of the ground.
I know we’re beating a dead horse right now, but there are lots of ways to think about simplicity. You hit on abstraction, but there are also dependencies. So let’s bring in the big elephant in the room — we’ve already said AI a couple of times. Here’s the other thing: AI is a complexity amplifier. The perfect example is, if you ask Claude or Copilot or Codex, ChatGPT, to create you a web app that does XYZ — if that’s all you asked each one of those agents — what do they create right off the bat?
Jamie
npx create-react-app.Chris
I’ll tell you what — 80% of most applications that anyone builds, and here’s another one where I’m going to make people mad out there — 80% of web applications can be created either using static sites or 100% server-rendered frameworks like ASP.NET Razor Pages. Even Blazor — I know Blazor’s the hot thing in the .NET community. You don’t need Blazor for most of your application. Blazor is a me-too framework that is trying to do what React and Angular and Vue and Svelte and all the other SPA frameworks do.
There was a time and a place for needing to get all of that JavaScript into a browser, but in today’s world, we have huge data pipes going from servers out to either our browsers or out to our mobile phones. We don’t need client-side. We don’t need to push everything into the client anymore. You can email me, you can find me on social media and tell me I’m the biggest dunce in the world, the stupidest person in the world, but it’s a hill that I am worth dying on: 80% of people do not need SPA applications. They don’t. They can do everything, and it’s actually cheaper, easier to maintain, costs less, and easier to test.
I do it every day. I use ASP.NET Razor Pages with HTMX. It allows me to have an application that looks like a SPA application, but it’s 100% server-side. I don’t have to mess around with JWTs. I don’t have to mess around with having a front end and back end. I have one code base, and I’m such a simple person. I love it. Really, I’m a simple person. I’m not smart enough to come up with these huge complex ideas. I’m just a simple person that thinks in terms of: simple is good enough. Okay, I’ll get off my soapbox now, Jamie.
Jamie
Chris
Jamie
Pro tip, folks: go to the website for this podcast. It’s all statically generated HTML, right? Which means that when I release a new episode, the website is rebuilt, which means that as long as the servers that the HTML files are copied to are working, you will never be able to load those pages any faster, right? It is not possible.
My point was not so that I would get fast page load times. My point was: why do I want to do it this way? Well, okay, if I had it behind a CMS like Ghost or a server-side application CMS like Ghost, or Umbraco, or WordPress, or anything like that, the server has to be on and running, and something has to poke at the server every 30 minutes to stop the application from falling asleep. That means the application’s running and listening for requests every thirty minutes, which likely means it’s probably doing a whole bunch of memory management it doesn’t need to do.
I know I’m speaking from old information here, so WordPress folks, please do write in and correct me on this. But old WordPress: for every request you send to a WordPress website, regardless of whether the plugin should fire on that request, all of your plugins in sequence fire for that request. So if you’ve got 15 plugins — one for image manipulation, one for SEO tags or caching —
Chris
Jamie
Chris
Jamie
If something does change, it’s because I’ve forced a new build and deploy, which means it’s been told: invalidate all the caches for these particular paths, not for everything. So, yes, the deployment bit behind the scenes is a little bit complex, but all I needed was a website that has a bunch of pages, and each page has a player. Each player links to a file somewhere on the web. If you want to go and right-click and inspect, you’ll find out where they all point to. It just displays HTML.
I’m not trying to pick on any particular technology here, but it doesn’t need React, it doesn’t need a JavaScript framework, because the content’s all pre-built. You can’t get much simpler than that, right? It’s pre-built HTML.
Chris
I need to get back to a simpler way. I use WordPress for my personal site and my blog, but I am trying to develop a plan to move to a statically generated website for my personal site and my blog. I like WordPress for what it can do, but for me it’s a little too complex. I don’t need all the stuff. I can do most of it statically now.
It’s also funny — I talk to these companies and they’re like, well, we’re doing microservices and this and that. I go, well, how many users do you have? They’re like, oh, we have about 50 users. I’m like, you have 50 users and you’re using microservices? Why? Well, our architect said this. I said, okay, so is that architect still around? The funniest thing is, most of these companies, they get these architects who have these big ideas, and they implement these ideas, and then they’re gone after a while.
I found another interesting data point: by having complexity, on average it takes three months for new developers to come onto a project to understand these over-complex solutions. Usually by the time those three months hit, 25% of your engineers have left, because they just don’t want to deal with that much complexity. So there’s another angle: you’re wearing your developers out by implementing complexity.
You know what? I think developers and engineers love the idea of building a Ferrari, but if you actually ask them the truth, they would probably say that they would love to maintain something like a Volkswagen solution. So there are these diametrically opposed ideas. They want the flash and they want all the high performance and the glitz and the glamour and the shiny things and the bells and whistles, until they have to actually go back and bug-fix it and maintain it and upgrade it and add more complexity to it. Then they go back and they go, wow, why did we make it so complex? Why didn’t we make it simple? Then our lives wouldn’t be so tough.
Today, you can’t leave your job and go find a new job. The job market’s not great right now. So sorry everyone, you’re stuck maintaining those solutions that you built a year or two ago, or three years ago, when the market was hot and you could have a career based on moving around and showing off what you did at your previous employers. It’s not the case in today’s world.
Jamie
Hey folks, I’m going to let you in on a little secret here, and I’m going to upset some people. I recently built an entire PDF report generation service that uses Playwright. What I did was I got all the information, got all the data I needed, converted it to HTML, threw it at Playwright, and then said, hey Playwright, file > print PDF. It came out as a fully fledged PDF file. I didn’t need any kind of crazy expensive libraries for creating PDFs. I just said, hey, I’m in a browser context. I’ll just do file > print to PDF, and it works, right? Because it’s a simple solution to a really, really complex problem.
You think about PDF — that is really complex. But if you go in your browser right now, on any page you’re looking at — well, not any page, but pages that you’re looking at which don’t really require a great deal of interaction — you can do file > print PDF, and you get a PDF version of that page. It might not look great and you may have to create a print.css file to make it look good, but guess what? That’s a super simple solution to that problem, rather than the hyper-complex one of: which PDF library do I choose? How much money are we willing to spend on it? Is it a SaaS product? Is it a DLL? You don’t need any of that. If you’re in a browser context, file > print PDF. Done.
But yeah, nobody ever got paid for creating the simple thing, right?
Chris
Jamie
Chris
But yeah, I think it all goes back to: use common sense. Can I give a list of suggestions to people?
Jamie
Chris
The next thing: treat every dependency that you bring into your solution as a complexity cost, as an architecture task. There’s a tax that you pay for every dependency and every abstraction, like Jamie said.
Run the 2 a.m. test filter in code reviews. Ask someone in another team if they could figure out the solution to a problem in your system. If they can’t, there’s a red flag there.
When you’re in sprint planning, apply the half rule when you are building out your tasks. When you’re planning out your implementation of your tasks, apply the half rule to those.
Trace primary path before edge cases. Always do your primary path before you even think about doing edge cases. Remember that.
Every abstraction must pay for itself. Enough said. That is the challenge that this simplicity-first approach boils down to. It’s not rocket science. Rocket science is very complex. Most of our solutions that we build are not rockets, so we don’t have to worry about that. Ours is just common sense.
It’s remembering to be simple. It’s remembering that complexity is not sophistication, that everything you do has a complexity budget. You only have so much complexity budget to use, and if you use that all up in the beginning, you’ve got nothing left down the road. So remember that.
That’s from Uncle Woody. Uncle Woody is giving you some wisdom and some advice from 30 years in this industry. Okay, Jamie, I’m done.
Jamie
Chris
Jamie
Chris
Jamie
Chris
Jamie
Wrapping Up
Thank you for listening to this episode of The Modern .NET Show with me, Jamie Taylor. I’d like to thank this episode’s guest for graciously sharing their time, expertise, and knowledge.
Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at the podcast's website, and there will be a link directly to them in your podcatcher.
And don’t forget to spread the word, leave a rating or review on your podcatcher of choice—head over to dotnetcore.show/review for ways to do that—reach out via our contact page, or join our discord server at dotnetcore.show/discord—all of which are linked in the show notes.
But above all, I hope you have a fantastic rest of your day, and I hope that I’ll see you again, next time for more .NET goodness.
I will see you again real soon. See you later folks.
Useful Links
- Chris’ blog
- Chris on Bluesky
- Chris on LinkedIn
- Simplicity First
- Supporting the show:
- Getting in touch:
- Podcast editing services provided by Matthew Bliss
- Music created by Mono Memory Music, licensed to RJJ Software for use in The Modern .NET Show
- Editing and post-production services for this episode were provided by MB Podcast Services