RSSAmplifier

Blog

Jon Skeet's coding blog

codeblog.jonskeet.ukRSS feed ↗10 posts

Latest posts

Scratch a simple data model, find a complex one

I seem to have a knack for discovering corner cases or in many situations being a corner case. One category of this is where I find myself using a data model which appears simple to start with and then the real world interferes. I ve always found this sort of thing interesting, and recently Continue reading Scratch a simple data model, find a complex one

Forking an open source project

Introduction and motivation Some of the projects I work on notably V-Drum Explorer and At Your Service use MIDI to interact with hardware devices. I use a couple of packages for this depending on the nature of the interaction, but the one I use most often is managed-midi, which currently has its source Continue reading Forking an open source project

Election 2029: Load Testing

I ve now been through three approaches to load testing for the site, and I think I ve settled on a solution for the medium term at least. This post explains what I m trying to achieve, along with the pros and cons of what I ve tried. Requirements For this particular site, I have four requirements: If the Continue reading Election 2029: Load Testing

Election 2029: Models and Reality

On January 15th 2026, Robert Jenrick broke my election site. Okay, that s slightly hyperbolic. The site continued to operate, and it would be fairer to say that the actions of Kemi Badenoch and Robert Jenrick exposed a flaw in the data modelling in my site. For those readers who don t follow UK politics, two events Continue reading Election 2029: Models and Reality

Changing Immutable Collections

As I ve written before, I m leaning heavily into immutability in the election site code. Until September 2025 (it s taken a long time to get round to writing this blog post) that meant a combination of records, ImmutableList T and ImmutableDictionary TKey, TValue . In an ECMA C# standards meeting, however, Joseph Musser passed on some really valuable feedback Continue reading Changing Immutable…

Records and the ‘with’ operator, redux

In my previous blog post I described some behaviour of C# record types which was unexpected to me, though entirely correct according to the documentation. This is a follow-up post to that one, so if you haven t read that one yet, please do so I won t go over all the same ground. Is this Continue reading Records and the with operator, redux

Unexpected inconsistency in records

Unexpected inconsistency in records The other day, I was trying to figure out a bug in my code, and it turned out to be a misunderstanding on my part as to how C# records work. It s entirely possible that I m the only one who expected them to work in the way that I did, but Continue reading Unexpected inconsistency in records

Election 2029: Postcodes

Postcodes After a pretty practical previous post about records and collections, this post is less likely to give anyone ideas about how they might tackle a problem in their own project, and doesn t have any feature requests for Microsoft either. It s an area I ve found really fun though. An introduction to postcodes in the UK Continue reading Election 2029: Postcodes

Records and Collections

Records and Collections This post is to some extent a grab-bag of points of friction I ve encountered when using records and collections within the election site. Records recap This may end up being the most generally useful blog post in this series. Although records have been in C# since version 10, I haven t used them Continue reading Records and Collections

Election 2029: Storage

Storage Since my last post about the data models, I ve simplified things very slightly basically the improvements that I thought about while writing the post have now been implemented. I won t go into the details of the changes, as they re not really important, but that s just to explain why some examples might look like Continue reading Election 2029: Storage