7/4/2026 at 9:35:41 AM
I'd like to highlight a different part of the article:> In general, when I talk to software folks about testing, I'm coming from such a different place that they immediately look at me like I'm an alien, so let's talk about how we tested at this hardware company I worked for, Centaur, which informs my biases about how I like to work. Some of the things that we did that were or are unorthodox in the software world are:
> Hired dedicated QA / test engineers, with testing being a first-class career path on par with being a developer - No code review by default - Virtually no hand-written tests - Constant testing via what programmers sometimes called property based testing, randomized testing, fuzzing, etc., although we just called those tests (hand-written tests were called "hand tests"). - Large regeression test suite (3 months wall clock to execute on compute farm) - No unit tests
Anybody here tried that (or a similar) approach? Especially going all-in on property based testing and fuzzing with no unit tests.
I tried that approach somewhere before and the initial results were promising, but ran into political issues so the idea was canned.
by duckmysick
7/4/2026 at 12:35:05 PM
I bake MCP tools into everything now, including doing screenshots. Any LLM can run just about every function, including resizing the window. I just watched Fabel 5 do a full usability test on a new project, copying the release cycle for my agentic terminal, relaunching the app like 20 times as it went, ensuring the move to a built and signed release was working. It installed the program like 5 times (something I do daily multiple times).I noticed map tiles were not working and started to tell it, but then all of a sudden they reappeared and checking the logs it had found the issue and autocorrected itself.
The key here is feedback loops and systems annealing.
As for Dan, my God I love this guy. Glad someone posted it!
by kordlessagain
7/4/2026 at 12:39:40 PM
I feel like Dan is one of the most consistently interesting writers in tech at the moment.This is most likely because we take similar approaches towards things.
by disgruntledphd2
7/4/2026 at 7:03:23 PM
I'm with him 100% on these points:>For no particular reason, I've always liked designing experiments and measuring things. This was true long before I ever thought about careers and it's still true today. As discussed here, measurement is one of the primary themes of this blog, maybe the primary theme. Lucky for me, this lifelong hobby has been something I've been able to make a career out of. And even luckier, this skill seems to have been made relatively more valuable by coding agents3.
>3.And, coincidentally, as with testing, it happens to be a skill that gets developed a lot more at CPU companies than in typical software companies, even ones that produce highly performance sensitive products, like databases. Above, we estimated that the effort spent on testing at the CPU design shop I worked for was maybe a ~2:1 ratio over what you'd see in a traditional software company. When it comes to benchmarking/evals/experimental design, the denominator is low enough at traditional software companies that it's hard to estimate the ratio, but it's surely at least 10:1 and 100:1 and 1000:1 are plausible numbers as well.
>Of course, by focusing on and developing much more expertise than software companies in these areas, chip companies are often relatively in the stone ages in a number of other areas. Relatively speaking, I'm also relatively weak in most of those areas. I think this works out ok in the context of a company, where it's valuable to have people with complementary skills, but it can definitely cause some problems in interviews. [return]
Notice how much numerical difference Luu attributes to highly performance sensitive software products versus a traditional software company.
As for Claude and Codex in mid-2024:
>At the time, I didn't find this useful enough to use for anything where I knew what I was doing, but it enabled me to embed a little web game into that post and do other tasks that would've required me to learn something about an area where having actual expertise will probably never be particularly interesting to me, such as building a web app.
Me neither when it comes to web apps. I always thought the fundamental thing with the greatest room for improvement was getting the most out of stand-alone electronics, before it made as much sense to even network them to begin with. Looks to me that performance progress was less than halfway there when it got to be reversed in personal computers, and now more resources than ever are being put to keep personal computers from allowing users to get as much advantage as they could have been. Basically more effort than ever imagined since before the 1990s, toward a return to centralized data centers instead, not much differently than we had with mainframes. The difference is that "everybody" has a "terminal" now but those user PCs are going to need to become less-capable as stand-alone personal computers, and more like "dumb" terminals otherwise a growing number of high-rollers will not be able to fulfill their massive vision as overwhelmingly.
So what if I thought it was fairly intuitive learning to program on mainframes back in the 1960s. I was pursuing natural science not computer science, in ways people like Wozniak and Gates were not. For me the programs are supposed to be a tool, and one that's still not always necessary to achieve the optimum outcome in the research lab. It took a number of years before I was able to pay for the experimentation by doing chemical testing in the lab, and was basically the only computer pioneer in my field for a while after that, as alternative labs also had some emerging "computerized" or "digital" instruments but not for user-programming.
Anyway, by the tine the 1990's rolled around, with all the overtime at the bench, it gave me about the equivalent of 40 years of intense testing in only 20 years. From where I have never stopped, but it was mostly chemical testing. Not as applicable to things like CPU design as it could be, but the hardware I build has to handle chemicals not only electrons. Usually quite toxic materials, hazardous in other ways, and highly regulated.
And I was even more out-of-date by then on computer languages. Much more of a disadvantage compared to digital hardware engineering like where Luu is coming from, since I was not the coder those folks were, and they don't have the time to put most of their effort into the kind of code that software engineers have to do.
I didn't code every year, just as needed, and "shipping" code was not an objective at all. By then I had founded my first company and I made more money using my code than I was before, or developed routines that made the work easier. The LOB was mostly scientific and automation. I figured anybody would prefer NASA-type performance if they could, so why not, I had no deadlines, and these are some risky chemicals.
It should be easy to see that the only unfair advantage I had was a lifetime of testing up the wazoo, even if only a baby part of that was testing code. And I already could tell that testing had to be at least a bit lacking in the commercial software that had appeared (and is still often raising its ugly head). As a total laboratory system I had always been more reliable than that and I was not ready to stop at all.
Ended up at 100:1 in testing:development ratio to hit the sweet spot. That's not relative to any other companies, just what it took to give lab business clients their money's worth. Of course lots of "unit tests" and code reviews were included. With chemicals you must leave no stone unturned even more so than plain electronics. Never could have done it if I wasn't already giving clients their money's worth without the code.
Otherwise the likelihood of unforeseen regrets is far too high for mission-critical application, and can not be very accurately estimated either.
The whole time it was on my mind how I would incorporate AI into some advanced automation, if PCs got powerful enough, but that was a bit of a dream 30 years ago. AI was just unheard of for any type of everyday use. I had to accept that if I ever did want to ship some software I would have to be more of an architect and let professional engineers rewrite my stuff in a more modern language that they have experience in.
Now with things like Claude and Codex I could be doing it all on my own, but nah. I've already got a well established lack-of-momentum and a couple years ago it looked like LLM autocoding was impending so I figured it would be good to see how AI develops from the sidelines. While I'm past "retirement age" anyway. Why would I settle for my own single-handed code when now I could have a team of software engineers who are using AI to help them. Just like I always figured I would need a team to do all the coding in order to make a "product" out of my efforts since before the '90s.
If I get such a wild hair I'll still have to do all the testing myself regardless :\
by fuzzfactor
7/4/2026 at 1:39:12 PM
[flagged]by m_m_carvalho
7/4/2026 at 3:04:48 PM
No code review by default goes against actual established evidence (there is little of this for software development practice) that code review is the best way to find defects.I always get the impression from using hardware and other anecdotes like this that it is rare for hardware companies to know how to do software development well because their core competency is hardware. In fairness, it is uncommon for software companies to know how to do software development well.
Every form of testing has its value when done well and they are using several forms that most software developers don't use- probably helps make up for the lack of code review and unit tests. But if they incorporated code review and unit tests their software would likely be even higher quality.
Property based testing is amazing, but it won't provide full coverage. Regression suites are amazing, but generally the most expensive form of testing in terms of time to write and maintain tests and time to run them.
Today AI can crank out unit tests so its silly not to have them.
by gregwebs
7/4/2026 at 12:31:33 PM
I really wonder what "randomixed testing" looks like in practice. What is the measure of success/failure?I undrestand for fuzzing you have a very basic "doesn't crash" metric. Property based tests.... you gotta write properties for the PBTs to work on. What is the randomized testing hitting?
by rtpg
7/4/2026 at 12:36:09 PM
Dogfood everything, all the time.by kordlessagain
7/4/2026 at 7:02:29 PM
Arf.by fuzzfactor
7/4/2026 at 10:19:37 AM
The first thing I started wondering was "is this the same Centaur that comes up as 'CentaurHauls' on a CPUID (EAX=0)?"by bitwize
7/4/2026 at 11:36:23 AM
Should be, judging by their LinkedIn from the bottom of the page (Centaur Technology - Member of Technical Staff: 2005 - 2013)This is a blast from the past. Centaur was doing VIA Technology's CPUs, and I was at VIA (in Taiwan) while this author was in Centaur (in the US). I was on the embedded side, but I remember some distinct collaborations with the US team, so there's a non-zero chance to have crossed path.
by imrehg