C# Test using OpenTelemetry traces in Asp.Net Taking advantage of our OpenTelemetry tracing to easily test behavior that is otherwise very hard to observe
Sociotechnical systems The free software commons Free and open source software has become a modern commons, but now it's vulnerable. Freedom isn't sufficient to secure it for the future.
Letterbook Letterbook - No universal translators It turns out that federating is really hard. But, I managed it. Now I would love to have your help with everything that comes after that.
Letterbook Featured Letterbook We build tools, but we are also shaped by the affordances of those tools. I'm building Letterbook. I would like it if you join me.
Sociotechnical systems Mental maps, part 2: incidents and observability We map the system so that we can change the system, so then we must remap the system. That's the tight inner loop of software development.
Sociotechnical systems Complex vs complicated A quick and practical summary of what it means for a system to be complex, or not.
Sociotechnical systems Mental maps for navigating software systems Learning and exploration in complex systems happens continuously, forever. We need to constantly update our mental maps, or they'll lead us astray
Artificial Intelligence Featured Losing the imitation game AI cannot develop software for you, but that's not going to stop people from trying to make it happen anyway. And that is going to turn all of the easy software development problems into hard problems.
DevOps Automate Thyself For quite some time, my own ops haven't had much dev in them. But I'm changing that.
Advent of Code in Production Advent of Code in Production, Day 13: Observability At this point we've designed a system and we're going to provide it as a service. To operate that service effectively we have to understand how its behaving. That's all about observability.
Advent of Code in Production Advent of Code in Production, Day 7: Incident Review If Advent of Code was a whole system, it might look like this. Of course, the first deployment of a complex system is never smooth. This is a review of that incident.
Advent of Code in Production Advent of Code in Production, Day 6: Operating Environment Let's talk distributed systems! Getting into the details of how we could build a whole system to support Santa's elves, instead of a bunch of scripts.
Advent of Code in Production Advent of Code in Production, Days 2-4: Early Development Continuing my attempt to design a cohesive system that can address the challenges faced by Santa's Elves as they collect magical star fruit.
Advent of Code in Production Advent of Code in Production, Day 1: Project Kickoff Explore how you might approach building the solutions to Advent of Code challenges as a production service that you intend to operate long term, rather than as a collection of one-off scripts.
Engineering Dimensions of Scalability We are part of the systems we build. When those systems scale, that includes us. The approach we take will determine how successful and how painful that scaling will be.
Engineering Named Things This is a cautionary tale. It's the story of an internal tool development project. We'll call it Astro, because naming things is hard, and the reasons why are very instructive.
Interviewing Culture Fit We don't evaluate candidates purely on skill. We also assess them socially. I'll explore how to do that, without falling into the trap of dismissing someone as "not a culture fit" due to bias.
Interviewing Interviewing Software Engineers Artificial white board programming tests are the wrong thing, but they're easy to assign. Doing the right thing is going to be harder. So what we really need to do is identify what we're looking for in a programmer
Interviewing Questions for your interviewer As a candidate, interviews are your chance to learn how the team works, and how the company views and treats their employees. But after enduring your own interview, it's hard to know what to ask or how to evaluate the answers. This should help.
Talks A Guide to using GitHub for Hacktoberfest If you want to participate in Hacktoberfest, but you don't have much experience with GitHub, then you've come to the right place.
C# FizzBuzz? Really? Yes, it's FizzBuzz, but without the modulo! Exploring FizzBuzz as an interview exercise, and implemented like the children's counting game that inspired it.
Social Justice Tech Is Not Neutral Those of us in the tech field like to pretend that it's neutral. We like to pretend that we're neutral. We have to stop.
Engineering Designing for Testability The same factors that make your software hard to test will also make it hard to maintain. By adding tests, you can find and fix those things, and so the simple fact of having tests will make your software projects more successful.
Personal Falsehoods programmers believe about gender (and sex) Sex and gender are complicated. If you want my advice, it's that your app probably doesn't even need to collect this information.
C# Maybe don't use StringBuilder So, should you use StringBuilder? Yes, sometimes. It depends on what your data is like, and what you're optimizing for.