A twofer on software estimation that also tallies with my intuition. People are really great at estimating the median which is impossible to communicate to people without deep intuition for software engineering and statistics.
I fully agree with Paolo Scanferla here that very complex typing (“hyper-typing”) is an impediment to get anything done but besides the technical aspects, here are some ratchets here that are very pernicious.
Using the same Github account for work that you also use to do anything and everything else with is not particularly secure. That’s why I split my presence on the platform, but getting everything to work that way has been somewhat annoying.
Something that I also need to try. The rise of overlay networks that can create private networks and make all your devices and servers internet addressable is a huge convenience.
Here’s a topic over at Lobsters of what a bunch of software engineers would like to see programmed out in the world. Every ask gets a bunch of suggestions of things out there that could fill that gap.
A thought provoking attack on SQL with a bunch of pointers and hints as to what could come next. I’m pretty competent with SQL but that is exactly the point where you should become interested in what the limitations are and in what situations it makes sense to break out of the paradigm.
The amount of positive things happening around Python packaging and performance is really cool to see. Here’s a way to compile Python directly to Webassembly and get much better performance.
I’ve never used a tool that supports interdiff code reviews, but seeing it described here, it makes intuitive sense and I would love to have this. Instead we are–as is pretty much everybody else–stuck on Github.
All of those things listen above are in support of your primary goal: ensuring that you are getting shit done. You cannot get shit done to a world-class level by leaving all of the details to other people.
We liked to pretend that it was possible to use American cloud providers with any measure of sovereignty, but that pretence is going to drop very soon now. Not sure what the alternatives are, but everybody should be planning for some drastic changes here.
A good overview of how Git developers configure git for themselves with a bunch of settings that should be the default for everybody but which will take ages to be rolled out. You should copy most of these into your own config.
I think this critique of Flamework is a bit rich coming from the author of Flask with its global request object. But there is a point in being able to iterate really quickly, it’s even better to be able to work crudely without creating a disastrous unmaintainable mess.
Our work in software engineering consists mostly of learning and for me and my team a fair part of that is teaching. Both of these are immensely difficult and rewarding components of the job.
Here’s a good article about platform teams that I got to read an early draft of. I can say from my own experience that all of these traps are very easy to go into. Be aware and prioritize ruthlessly what works and what doesn’t work.
I think when people ask what’s so great about jj they tend to go deep into things such as mega-merge strategies and stacked PRs. These things are cool, no doubt, but jj can be useful starting from the very small.
A lot has been made of this talk about Egoless Engineering but I can say that for me it came at the exactly right time. In our platform team we got to the point mentioned in the talk and are now working on #3: Empower Everybody Else.
This is the way “A Pattern Language” intended we should talk about patterns: applied and without making things more complicated. Patterns should simplify and be grasped immediately.
A very good explanation about “object soup” and how Rust is uniquely poorly suited to model problems in that way. It pins down a very fundamental issue that people coming from an object oriented background run into all the time and offers a helpful solution.
Quanta’s write-ups of math discoveries are always enjoyable to read. In this case an undergraduate (!) figured out something new about hash tables and how fast they can be. Not sure yet when this will be shipped in code, but still it’s a pretty amazing discovery.
Wild to see the materials that go into making a single inference machine for private use. At scale this stuff will of course be more efficient, but still the main components will be more or less the same.
We’ve revived our tech blog and will be sharing a bunch of stuff around our AI process and what it means to be an “AI first” company. Here’s an in-depth first piece about what it takes to develop a successful real life product with LLMs.
LLMs are fundamentally matching the patterns they’ve seen, and their abilities are constrained by mathematical boundaries. Embedding tricks and chain-of-thought prompting simply extends their ability to do more sophisticated pattern matching. The mathematical results imply that you can always find compositional tasks whose complexity lies beyond a given system’s abilities.
This was exactly a discussion I had yesterday where when teams reach higher levels of maturity, they may catch and fix issues internally before they become full blown incidents.
Even the most basic functions in foundational libraries can be iterated on and improved by reading papers and implementing novel algorithmic approaches. Here’s a breakdown of how the time crate got faster (even though “no one has complained”).
SQLite is a tiny, somewhat quirky but incredibly convenient and fast database. For side projects I definitely don’t bother with a “real” database anymore and for many of them I just check the entire .sqlite file into version control for easier deployments.
After missing the previous edition, I’m ‘attending’ HYTRADBOI 2025. Databases are the bread and butter of our team and I enjoy keeping up with the cutting edge of the field while using the most boring possible one at work.
This is a very good framework from Matt Webb for organizations how to do strategic pathfinding when it comes to AI. In Germany especially, lots of orgs would benefit from doing this instead of whatever it is that they are busy with right now.
I don’t think there’s been a Python developer tool that’s been adopted as quickly as uv is being right now. Dealing with dependencies and running Python code has never been easier.
Quick turnarounds on fixing vulnerabilities usually correlated with general engineering operational excellence. The best cases were clients who asked us to just give them a constant feed of anything we found, and they’d fix it right away.
[…] the abandonment of responsibility in two dimensions. Firstly, and following on from what was already happening in ‘big data’, the world stopped caring about where AI got its data — fitting in nicely with ‘ surveillance capitalism. And secondly, contrary to what professional organisations like BCS and ACM had been preaching for years, the outcomes of AI algorithms were no longer viewed as the responsibility of their designers — or anybody, really.
Artemis, fostered with Apollo, virgin who delights in arrows, far-shooting goddess, who swiftly drives her all-golden chariot through Smyrna to vine-clad Claros, I ask that you establish a loop counting from ninety-nine to one called beerLoop.