If you like learning via books like me, you might be interested in reviewing manuscripts prior to publishing. It can be fun because you can help shape the book and also learn about the topic. Here are some of the books I’ve had the pleasure of reviewing: Infrastructure as Code, Patterns and Practices Core Data in Swift Grokking Streaming Systems I was even quoted inside the cover of Core Data in…
My team at Seeq is hiring for a couple of roles! One is focused on our Kubernete-based platform, and the other is dedicated to developer experience. Check them out: Staff Software Engineer - Platform Staff Software Engineer - Developer Experience If you apply, let me know via DM, email, etc. so that I can make sure your application gets reviewed (by me!) 👀
As I mentioned in Are Migrations Good for Your Career? , “naming things” is notoriously one of the hard problems of Computer Science. But naming things can also be fun! What is the best name that you’ve come up with at work? The name I’m proudest of so far would have to be “Sk8s” (Seeq on Kubernetes, pronounced “Skates”). People have really run with it, too, with follow-on names like “Sk8park” and…
If you’re in software and early in your career, the book Clean Code is often recommended as a must-read. I, however, do not recommend it. I read it with a group at work a few years back, and I think it’s haphazard and riddled with subpar advice. It’s also aging. There are much better choices.
I think Grokking Simplicity is a must read for anyone who works with code. Even if you’re vibe coding, Grokking Simplicity can help you instruct your AI agents to generate good code rather than slop. If you actually want to apply functional concepts and understand why they’re good, pick this one up.
When is the last time you thought about how you make decisions or evaluated your decision success rate? I’m trying to be more intentional about my decision-making: https://www.stevenoxley.com/blog/2026/01/23/make-better-decisions/
I have given significant thought to how to make good decisions lately. The most recent trigger of these thoughts was a My First Million podcast episode . In this episode, one of the hosts - Shaan Puri - shared his “decision survey,” which is a list of questions he answers for himself when making a decision. The list of questions itself was interesting and useful (I’ve created a Google Forms…
I am a big fan of Publish (on your) Own Site, Syndicate Elsewhere (POSSE) , and I have been doing it for a while (this post is POSSEed, for example). Anyone else doing it? If so, what tools are you using? I’ve created a babashka script that currently meets my main requirements, but I’m looking for what other options are out there.
I was listening to the My First Million podcast , and Shaan Puri shared a decision-making framework he uses to help him make better decisions (and record decisions for later analysis). I thought it could be useful to record decisions in this way, and I created a Google Form template based on his list of questions in case you want to try it, too:…
Large pull requests make me sleepy. If you’re going to ask me to review more than 400 lines of code or so, then I expect some entertaining comments at least. // You're doing great, Steve, keep it up! only a couple files left! // I bet you didn't see this coming! LinearB software engineering benchmarks report that the top 10% of organizations’ PRs have 228 code changes.…
If you’re a software engineer, which would you rather work on - a greenfield project or a software system migration? If you’re looking to further career, you may want to consider the software system migration. I explore some reasons why in my latest article .
What is the hardest problem in computer science? Phil Karlton famously quipped, “There are only two hard things in Computer Science: cache invalidation and naming things.” Martin Fowler has a number of variations of this quote on his blog . My favorite is, “There’s two hard problems in computer science: we only have one joke and it’s not funny.” On a more serious note, Matt Ranney from DoorDash…
I wrote an article about how to influence software architecture (and decision-making more generally). Check out “ How to Influence Architecture .” See if you agree or if you have better ideas.
A colleague asked me, “How do you get a shared technical style across teams and also between teams?” He specifically mentioned, “[I] often find people come up with functional solutions to problems that break core abstractions of our platform, I can usually unwind things myself but I can’t be in all places at the same time.” I had a couple of thoughts immediately, but I didn’t think they were very…
I’m a Senior Principal Software Engineer and aspiring entrepreneur currently located in Coeur d’Alene, Idaho. I enjoy programming, snowboarding, spending time with family, playing board games, and riding through the woods at breakneck speeds on my mountain bike. I send out periodic articles about software engineering - with a focus on platform engineering - from my mailing list . Consider signing…
I finished reading Traction: Get a Grip on Your Business by Gino Wickman. Here is my three sentence summary: Use the Entrepreneurial Operating System to effectively run your business. Get everyone at your company aligned towards a common vision. Use regular meeting cadences and metrics to keep everyone accountable and aligned.
I’ve been learning next.js via the official tutorial . About halfway through, and I’m very impressed. The tutorial itself is very polished. Next.js + vercel seems to have solved a lot of crosscutting problems, as well, which I look forward to taking advantage of.
This article is a friendly reminder that if you actually want to be good and continuously improve, it pays to spend time to truly understand what you’re working on: https://www.stevenoxley.com/blog/2025/09/09/trial-and-error-driven-development/
One of the things that I learned (fortunately) relatively early on in my career is that it’s actually important to understand how things work. I remember in college working on assignments where we would receive some framework code to work with. It wouldn’t compile. I would bash against each compiler error until I would finally get it to compile. Then I’d add my changes. More bashing to get that to…
A few weeks ago I finally captured a POV of a run down the Return to Sender trail on Canfield mountain. I just got to where I could clear every jump on this trail last summer, and in this video I linked them all together in a single run!
I finished reading Release It! by Michael Nygard recently. It was a great read - highly recommended - and triggered a number of thoughts which I explore in Robust Software, Clear Thinking, and Production Excellence in Release It! .
I recently ran a book club at Seeq for the book Release It! by Michael T. Nygard. It’s a new entry on my list of recommended books for all software engineers - platform engineers included. There are a bunch of great, practical insights to be harvested. Throughout the book, I found myself reflecting on the systems I work on at Seeq or even checking code to verify some detail that Nygard had brought…
I included some reader comments in my latest article about how to apply the principle of production purpose . See what other people think in Speed? Stability? or Making 💰? How to clarify software priorities
In The Principle of Production Purpose (PPP), I described a principle that encourages applying common sense to software. That common sense can have some pretty far-reaching implications. In the article, I gave the application of the principle unfortunately brief treatment. After some correspondence and chatting with readers about it, I think it’s time to further flesh out how the principle of…
I finished listening to the book Buy Then Build this morning. I felt like the author was trying to make acquisition entrepreneurship sound easy while saying stuff like, You only need $100k down! and describing a process that sounds an awful lot like buying a house on steroids… and then you have a company that you have to run. Not for the faint of heart, but I admit I’m intrigued.
I have a mailing list you can join! I write about platform engineering topics - especially focused on getting started with developing a platform at your company or managing a platform without a dedicated platform team. If that sounds interesting to you, sign up below! Here are some example articles that were sent to the mailing list: The Principle of Production Purpose Conquer Your Main Quest
v0.0.1 In the last article , I wrote about how I was selected to lead a new team at my company, Seeq, that would be responsible for infrastructure, developer experience, software delivery, production observability, and operations tooling. What I didn’t mention is that our product (also called Seeq) was primarily deployed on-premise at the time. Seeq started out as an on-premise web application.…
I wrote a blog post about a (fairly obvious, but easy to overlook at times) principle I discovered as part of my work the past few years at Seeq. Read about it here .
“We want you to be the manager,” my VP of engineering told me. “Oh… ok,” I responded. Earlier that week I had volunteered to be part of a newly forming infrastructure team - also responsible for developer experience, software delivery, production observability, and operations tooling - at my company, Seeq. I was very interested in this new team for a couple of reasons. First, I had always been…
I have fully collected and analyzed the results of my polls about how long people are waiting for code review. I wrote up my report here: https://nudgsicle.com/articles/code-review-wait-survey-results.html
I recently purchased some foam dart blasters for my self kids. They are as fun as I hoped they would be. I’ll share more details on the experience, but I can highly recommend the following blasters: https://nerf.fandom.com/wiki/Spectrum https://nerf.fandom.com/wiki/Racer https://dartzoneblasters.com/product/desperado/ And strongly warn against this piece of crap (at least all three that I bought…
New discussion questions for Release It! are live on Kook Book Nook. It’s a good book; you should come read it with us ;) https://www.kookbooknook.com/t/what-do-you-hope-to-get-out-of-reading-release-it-preface/14/4 https://www.kookbooknook.com/t/what-level-of-criticality-are-the-systems-that-you-work-on-preface/15/1…
Is this the future? “Siri, I’d like to watch a 10 episode, hour-per-episode show. Use the books I’ve been reading recently for inspiration (I especially like the sci-fi one you generated for me last week), but try to surprise me. Make sure not to end the 10 episodes on a cliffhanger, but leave it open for a future multi-episode installment if I feel like continuing.” Siri generates the first…
I learned a cool tip about how to add details to foliage in this blog post from the art director of Bluey: Creating Bluey: Tales from the Art Director - Chapter 1 . It recommends organizing details around an orb. I decided that fir trees are more of a cone, so I tried to organize around a cone instead.
My 5 year old daughter likes drawing, and I think it would be fun to get back into it again, so I’m trying to do a little drawing every day. Here’s a bad drawing of my mug.
I was recently on a walk with my 2 year old daughter. We were having a pleasant time. I said to her, “I’m glad to have you around. I like you.” To which she responded, “I know. Where’s mommy?”
I decided to try out dlvr.it for syndicating the RSS feed from my microblog on my website to my social media accounts. There are two main things I’m interested in: how does it handle links? how does it handle threads? how does it handle HTML like this unordered list? There doesn’t appear to be any customization. And I think this microblog post should prove a good test. We will see how it goes!
I’ve been reading the book Release It, and I’ve started putting discussion questions on Kook Book Nook . The first few topics to discuss the book are already up . Come read with me! (Also remember there’s a 40% discount to buy the book at https://pragprog.com/ with discount code stevenoxley .)
I’m relaunching the Release It! book club on Kook Book Nook (yes, the name is kooky on purpose), which is a Discourse forum I set up specifically for book clubs. I felt a forum would be a better format for the types of discussions I want to have with you about this book. Come join me and let’s learn from each other and have some fun along the way. Click this link to get started.
I’m not a food blogger. I’m not into baking. But now that I have been diagnosed with celiac disease, I have figured out how to make (actually good) gluten-free bread at home, and if you’re like me, you might want to save some money and do it, too. Here’s the recipe: https://www.stevenoxley.com/blog/2025/03/27/go-to-gluten-free-bread/ .
I’m not a food blogger. I’m not into baking. But I was recently diagnosed with celiac disease, and I do love bread. So now I’ve finally found and perfected a recipe for gluten-free bread that I actually enjoy eating, and I can make fairly quickly and easily. And I’ll give you all the details you need to make it yourself - even if you have zero experience baking like me.
In Release It! chapter 3, Nygard makes distinctions between faults, errors, and failures: Fault: “A condition that creates an incorrect internal state in your software.” Error: “Visibly incorrect behavior.” Failure: “An unresponsive system.” “Triggering a fault opens the crack. Faults become errors, and errors provoke failures.. That’s how the cracks propagate.” What do you think of these…
Nygard states that “the major dangers to your system’s longevity are memory leaks and data growth.” Can you think of other major dangers to system longevity? #ReleaseItBookClub #ReleaseItBookClubChapter3 I have the advantage of reading ahead - there’s a whole chapter on stability antipatterns - but I think it’s interesting that this statement focuses on data issues. I suppose compute-related…
In chapter 3 of Release It! Nygard refers to James R. Chiles’s “analogy between a complex system on the verge of failure and a steel plate with a microscopic crack in the metal. Under stress, that crack can begin to propagate faster…[until] the metal breaks explosively.” In software systems, the equivalent of an explosive break and the “crack” that caused it is called a “failure mode.” Does this…
Nudgsicle is coming along - slowly but surely. It’s amazing to me how much of a slog it is - even for someone like me who has integrated OAuth, OpenID Connect, etc. - to build authentication for an application. Even with services like Amazon Cognito. Fun fact: did you know that “Sign in with Slack” and “Add to Slack” are two different things that shall not be combined?
Chapter 3 of Release It! has some interesting definitions that I hadn’t considered as deeply before. Nygard notes that the following two terms come from mechanical engineering. Impulse is a “rapid shock to the system.” Stress is “a force applied to the system over an extended period.” What do you think of these terms? Have you felt the need to differentiate between these two types of load in your…
Chapter 2 of Release It! is a case study of an incident that occurred which brought down an airline’s entire check-in system. It took three hours to recover, and was caused by leaking connections from a database connection pool. Nygard’s conclusion from the case study is that perhaps this issue could have been caught with more testing, but even so it’s impossible to catch every such defect. And…