A blog about software engineering and architecture.
2024
-
11.28
Book Club 11/2024: NoOn forming quality opinions and saying 'no'
-
11.20
Three LawsSome 'folk laws' that are commonly known but seldom applied.
-
11.13
Hot off the Press: .NET 9, C# 13The AI will continue until morale improves!
-
11.03
Publish Your Blogroll NowI've done it and so can you; in fact, I've made it easier for you - way easier!
-
11.01
I Have a Blogroll Now!An actual blogroll, not just a blog post with a bulletted list of links!
-
10.28
Book Club 10/2024: Fallacies of Distributed ComputingPutting a pin in the series I wrote this year on the topic of these Fallacies
-
10.25
Many Dimensions of HeterogeneityThe final fallacy of distributed computing - 'The Network is Always homogenous' - has more dimensions than typically considered. These tie all the other fallacies together.
-
10.11
Guerrila DevEx TestingDeveloper experience is subjective. Employ the 'hallway test' method to ascertain your code's quality.
-
10.05
Postgres: Use Views to Refactor to Soft DeleteRefactors are tough, database refactors are scary. Being a bit clever can save us a lot of pain!
-
09.30
I've Stopped Using Visual Studio... mostly. And so can you!
-
09.28
Book Club 9/2024: BlogrollI've been dying to ask you; I really want to know: where do you get your ideas from?
-
09.20
Learn the Old LanguagesNew languages are hip, old languages are erudite. Don't neglect these languages as you round out your skills.
-
09.09
Why I Have This BlogReflecting on the last year of blogging.
-
09.02
Book Club 8/2024: LaborUsing Labor Day as an excuse to wonder about some recent trends in the industry
-
08.30
There's Always Money in the Banana StandExcept the 'banana stand' is the transport layer and instead of saving the money for later you're just always setting it on fire.
-
08.23
There Are Infinite AdministratorsYes, infinite, and they're inventing more each day! The larger the system, the greater the problem that nobody really knows how it all works.
-
07.29
Book Club 6&7/2024: PostgresI have become further radicalized to the opinion that we should all just be using PostgreSQL
-
07.22
Don't Retro the Same TwiceDifferent retrospective formats are mostly the same thing in different flavors - don't argue about them; try all the flavors (at least once)
-
07.13
The Case for Single-Reviewer PRsOr, strengthening your team and its code with communication, professionalism, and trust.
-
06.28
Deploying Your Prolog API with DockerIt can be tough living on the bleeding edge of modern technology. If you've jumped on the hype train and developed your latest API with Prolog only to find there aren't any tutorials to Dockerize it - look no further!
-
06.19
The Topologies They Are a-Changin'Okay, dumb title, but could you really have done better? Shifting topologies have always presented problems for distributed computing, and modern infrastructure systems sometimes leave us worse off than ever before.
-
06.08
Using InterfacesI'm on a quest to make it happen less
-
06.05
Scrum is not AgileTaking a step back to try to be a bit more rigorous about these process terms we use.
-
05.30
There's More to Network Security than the NetworkAssuming a secure network in a distributed system loses sight of all the ways vulnerabilities can creep into our systems. Just as distributed computing makes our systems 10x more complex, the same effect is felt on security.
-
05.29
Book Club 5/2024: SOLIDIs SOLID still relevant?
-
05.03
Roll Your Own C# ResultsC# doesn't have discriminated unions yet, but that shouldn't stop us from adopting the result pattern to strengthen and simplify our code. It's not complicated at all to create result objects that give us all the expressiveness and safety we want!
-
04.26
Bandwidth is Infinite ... ly TroublesomeThe bandwidth of the world-wide web has increased dramatically, but so has its demand. There's an abolute limit to how much data we can all transmit, and working around that requires dilligence.
-
04.24
Book Club 4/2024: I Don't Like ORMsObject-relational mappers are more trouble than they're worth.
-
04.17
Roll Your Own End-to-End Encryption in Blazor WASMUsing the SubtleCrypto API to get simple end-to-end encryption for a collaborative Blazor WASM app.
-
04.13
Thing I Made: FreePlanningPoker.ioI made a free planning poker tool and named it aptly.
-
04.01
I've IndieWebbed My SiteA small, loose collection of formats and protocols, IndieWeb is an interesting supplement (maybe alternative) to social media
-
03.29
Latency is Zero and the Speed of Light is Getting FasterLatency is a constant and unavoidable fact of nature, but we can plan for it, work around it, and respond to it.
-
03.27
Farewell, Twin Cities Code CampLooking back on my favorite local conference.
-
03.25
Book Club 3/2024: SimplicityEverything is too complicated.
-
03.03
On Task PrioritySome thoughts on assigning priority to our tasks.
-
02.24
Book Club 2/2024: Recovering from TDD and Unit TestsTDD and unit tests are overused and often misprescribed. What do we really hope to gain from our tests, and what testing practices support our goals?
-
02.21
The Network is Unreliable and Reliability is ScaryIndeed the network is unreliable, and this is especially concerning for modern, distributed system. The catch though is that it never can be 100% reliable, and we can't create systems that perfectly compensate for this.
-
02.15
It's Better to be Consistently Incorrect than Inconsistently CorrectOn consistency in code and what it means for something to be 'incorrect'
-
02.14
Develop Effective Coding StandardsBad coding standards are worse than no standards, and even good standards are sometimes unnecessary. What's the utility in coding standards, and what makes a good one?
-
02.12
Windows Users: Consider a Tiling Window ManagerTiling window managers are what all the cool kids have been doing for 40 years, yet they're almost entirely overlooked on Windows.
-
02.04
Four Deeply-Ingrained C# ClichesThere's a lot to love about C# and .NET, and there are some things that I don't love as much. Then there are four bad habbits that are so deeply ingrained they've become cliches within our codebases.
-
01.24
Book Club 1/2024: What is a Software Architect?A few meandering and maybe unhelpful thoughts on the title "Software Architect"
-
01.17
Eight MaximsA few principles for thoughtful software engineering.
-
01.13
Just Use PostgreSQLWith a vast and growing ecosystem of database systems, data models, patterns, and paradigms, choosing the right one can be a long and complicated process. I prefer a simpler approach: Just use PostgreSQL.
2023
-
12.16
Book Club 12/2023: Workflow, Process, and AgileSome thoughts on how to organize software development and teams, and how non-technical factors help (or hinder) us developing better software.
-
12.13
Reclaim Your Agile: The One Clever Trick Agile Coaches Don't Want You to KnowWhat if I told you there's one trick to being able to reshape your team's development process without your company knowing it? What if I told you that you can achieve actual Agile even though you work in a Scrum firm?
-
12.09
My (Continuing) Descent Into MadnessIt started simply enough, when I asked myself if I should try an IDE other than Visual Studio. Mere months later, I'm now using a tiling window manager. This is the story of my (continuing) descent into madness.
-
12.06
90% of my Homepage was UselessIn a few days, I reduced the size of my homepage to 10% of what it had been, and sped it up by 50-66%.
-
12.03
Clean Meetings: A Software Engineer's GuideIf being in meetings all day isn't bad enough, spending more time thinking about them seems horrible. Here's a simple guide on making sure you're getting the most out of your meetings.
-
11.25
Write Your Own RDBMS Versioned Migration BoilerplateVersioned migrations are an essential tool for systems using an RDBMS, and it's no work at all to start your applications the right way with this pattern.
-
11.22
Book Club 11/2023: New .NET, New C#The release of .NET 8 brings a lot of features I'm excited for!
-
11.14
"Should I Learn (Insert Some Tech Here)?"One of the most common questions - would it be good to learn this or that language, framework, database, etc? Taking even a little time to learn something new is good all around, but is it really worth making an investment in yourself to grow personally and professionally? Let's take a deep dive into this topic.
-
11.08
Adding a Database to our Railway AppLast time I looked at Railway, I got it up and running with a Blazor WASM app. Now, I'll look at adding a PostgreSQL database to it.
-
11.01
Quick & Dirty Sequential IDs in MongoDBMongo doesn't natively support generating sequential IDs. Here's a quick & dirty solution to get you up and going if you need sequential IDs.
-
10.27
Book Club 10/2023: Functional Patterns in C#This month I've focused on functional domain modeling and related patterns. We're just a few weeks away from the release of the next version of C#, and like each previous version it'll introduce even more functional features.
-
10.26
Daily GrugNeed inspiration start day, made API.
-
10.20
A Scrum OdysseyA journey away from daily scrum meetings, as a cycle of eight Shakespearean sonnets.
-
09.28
Book Club 9/2023: Papers I LoveReflecting on the final Strange Loop conference, having attended several 'Papers We Love' talks, I'm motivated to share five papers I love.
-
09.14
Giscus Is AwesomeI can add comments to my statically generated blog? Using GitHub Discussions?? For Free??? And it works????
-
09.05
Deploying ASP.NET 7 Projects with RailwayRailway is a startup cloud infrastructure provider that has gained traction for being easy to use and cheap for hobbyists. Let's get a .NET 7 Blazor WASM app up and running with it!
Looking for an earlier article? All of my past articles are archived here.