Jamie Taylor
banner
gaprogman.com
Jamie Taylor
@gaprogman.com
150 followers 150 following 830 posts
Technology consultant & fractional CTO specializing in .NET architecture & security. Microsoft MVP | Host of The Modern .NET Show | Open source contributor
Posts Media Videos Starter Packs
Pinned
By way of a sort of introduction:

- I host The Modern .NET Show (dotnetcore.show)
- I also host Waffling Taylors (wafflingtaylors.rocks)
- I run a company (rjj-software.co.uk)
- I do open source things, including OwaspHeaders.Core (www.nuget.org/packages/Owa...)
𝗣𝗼𝘀𝘁 𝟰: "Programmers worry too much about performance, full stop." Balance optimization with readability, maintainability, time-to-market. Full post: rjj-software.co.uk/blog/continu...
𝗣𝗼𝘀𝘁 𝟯: The real performance secret: "The way to make code run faster is to do less, not to do the same things faster." Eliminate unnecessary work. Remove redundancy. Simplify algorithms.
𝗣𝗼𝘀𝘁 𝟮: Counterintuitive but essential. Premature optimization diverts resources from important work and creates unnecessary complexity. Your instincts about performance bottlenecks? Usually wrong.
𝗣𝗼𝘀𝘁 𝟭: 🚀"The first lesson of optimization—don't optimize. Make your code as simple as possible. Don't worry about how fast it will run. It'll be fast enough. And if not, it will be easy to make it fast."
This coming Friday (Oct 24) will see the release of an episode or The Modern .NET Show with @adefwebserver.com

This episode is all about #genAI, and Michael being quite possibly the best and most prolific open source #dotnet developer out there right now.

You DO NOT want to miss this one, friends.
I'm looking for guests for episodes of The Modern .NET Show (dotnetcore.show) for February 2026 onwards. So if you'd like to talk .NET, then please reach out (DMs are open, I believe) or use the contact form on the website.
dotnetcore.show
Presented with zero context
100%.
In this case, I'd asked GitHub Copilot to review my PR. It suggested some things which made sense on first read, but were for super old versions of the libraries I'd used.
Rather than trying them out locally, I hit the "commit this" button, and broke the builds.
Lesson learned.
𝗣𝗼𝘀𝘁 𝟰: Build for today's known problems. Refactor when patterns emerge. Let tomorrow's problems drive tomorrow's solutions. Read more: rjj-software.co.uk/blog/continu... 🎯
𝗣𝗼𝘀𝘁 𝟰: Balance performance with readability, maintainability, time-to-market. Is this issue preventing users from getting value? If not, focus elsewhere. More wisdom: rjj-software.co.uk/blog/continu... 🚀
𝗣𝗼𝘀𝘁 𝟯: "When you're holding a hammer, everything looks like a nail. Creating a general solution is handing out hammers. Don't do it until you're sure you've got nails instead of screws." Choose the right tool.
𝗣𝗼𝘀𝘁 𝟯: The do less philosophy consistently outperforms clever optimization tricks. Ask: What is the code doing that it doesn't need to do? What's done multiple times that could be done once? Eliminate it.
𝗣𝗼𝘀𝘁 𝟮: Optimization requires profiling, analysis, data-driven decisions. Not guesswork. Not "this code looks slow." Build simple code first. Profile if performance issues emerge.

Optimize based on data.
𝗣𝗼𝘀𝘁 𝟮: The problem: Trying to anticipate every use case creates overly complex code that's harder to adapt when real requirements arrive. You're building for imaginary futures instead of actual needs.
𝗣𝗼𝘀𝘁 𝟭:💡"If you've got one use case, write code to solve that use case. Don't try to guess what the second will be." Part 2 of our Rules of Programming series tackles premature generalization—one of software's most seductive traps.
𝗣𝗼𝘀𝘁 𝟭: 🎯Key insight from Rules of Programming Part 2: Your optimization instincts are wrong. Wrong about where bottlenecks are. Wrong about what data looks like. Wrong about the right fix.
In the past 24 hours, GitHub Copilot has suggested two changes to PRs that have broken things in my repos.

But that's on me for hitting the "commit suggestion" button rather than trying them locally.
Such a fantastic podcast that you all should be listening to.

Also, thanks for the shout out in this episode.
New podcast episode is live! Come check out my 10 favorite spooky games. Take a walk down this eerie memory lane complete with spooky sounds and moments that'll make your heart race. Listen here or wherever you get your pods!

theretrowildlands.com/episode/retr...
Retro Wildlands #74 - Top 10 Spooky Video Games
Darkness falls across the Wildlands, and the time has come to face the games that once haunted my dreams. In this episode, I’m sharing my personal Top 10 spooky...
theretrowildlands.com
Reposted by Jamie Taylor
Yet another mind-blowing and highly educational video by AlphaPhoenix, in which he builds a 2,000,000,000 FPS camera and uses it to watch light move. In his garage. 🤯
Seriously, just go watch all of his videos.
www.youtube.com/watch?v=o4Td...
𝗣𝗼𝘀𝘁 𝟰: Pattern recognition: Teams copy data API code project to project, bringing bugs forward. Why not abstract it? Full conversation: dotnetcore.show/season-8/des...🎯
𝗣𝗼𝘀𝘁 𝟯: Data API Builder eliminates repetitive work: database CRUD, filtering, sorting, pagination, caching, retry logic. Focus engineering on business differentiation, not infrastructure plumbing.
𝗣𝗼𝘀𝘁 𝟮: Design for the person inheriting your code. Don't make them curse your name. Give them well-architected, standard solutions—not clever custom code that requires a PhD to understand.
𝗣𝗼𝘀𝘁 𝟭: 🚀 Jerry Nixon's wisdom on The Modern .NET Show: "The maintenance developer that follows you is the most important person for every project. They're the ones who don't tell your boss you're terrible."
𝗣𝗼𝘀𝘁 𝟰: You're not enforcing learning—you're cultivating curiosity. The difference matters.
Tech doesn't pause, but we can grow together gently, sustainably, enjoyably. rjj-software.co.uk/blog/when-yo... 🌱