Hot takes #4: Automation is wildly undervalued
Sep 22, 2026
The calculation for when to automate is easy! We do this x times per week, it takes y time to complete, and automating it takes z time, so the payoff time is z/(x*y) weeks. There is even XKCD #1205 about it. Right? Wrong. Hot takes #3: Spinoffs have overengineering as part of their DNA
Jul 27, 2026
Let’s rewind back to 2013. I got my first ‘proper’ job at a plucky startup, and was introduced to the onboarding material, which was a mix of “watch these videos” and tribal knowledge. Some hidden gems that the modern internet has forgotten, like WAT and MongoDB is Webscale (links at the end). There was also an apocryphal story about product development.
Once upon a time at a company far far away, an engineer was riding to work by bicycle. It was nearing the end of summer and there had been a cold snap, and when he got to work his hands were freezing.
...
➦ Hot Takes #2: Most people have incorrect intuitions around correlations
Jul 16, 2026
There are a ton of blog posts, academic articles and even youtube videos on all sorts of statistical mistakes that are made in research, ranging from academic drug discovery to A/B testing of websites. Some of them talk about P-hacking. Others talk about sample sizes and statistical power. And then of course there’s all the logical fallacies that involve statistical interpretation. However one that I feel is very underrepresented is around the chaining of correlations.
...
➦ Hot Takes #1: Robotics companies that use ROS don't make money
Jul 8, 2026
Let’s kick off the Hot Takes series with something extra spicy.
Hot Takes #1: Robotics companies that use ROS don’t make money. ROS stands for Robotics Operating System, and it is basically Arduino for robots. Ok for amateurs to play around with, making the “plug the mapping into the motion planning” hello-world blinky-LED of robotics, but not really suitable for real products.
ROS2 is the same. I can already hear the objections, and no, switching to DDS didn’t fix the build system, everything being async, the nondeterminisim, the untestability, the reliability, everything being a node, or, frankly, the sales pitch of where the hard part of the problem is. [I hear some people wanted to make more drastic changes but it was shot down to improve the backwards compatibility? Well, we are where we are.]
...
➦ A non-obvious heuristic on when to stop and think
Jan 7, 2026
We have so many options of what we could do for every second of every day of our life, that the potential outcomes are almost unthinkable, from ending up considerably better off (these ones are tricky to find) to ending up ‘on a list’, in prison or dead (there are lots of obvious ways for these ones).
The problem is that there is an opportunity cost to thinking about every single decision, so for almost everything we just act on autopilot. Some things we deem important though, we take the time to really evaluate what our options are, so that we can make sure we are taking the optimal decision, at least given the information we have at the time. Sometimes the effort we spend here can actually get in the way of actually just trying out some of the options, especially when the downside to trying things out is low.
...
➦ Low latency adaptive machine learning
Mar 4, 2025
Despite all of the diverse applications that machine learning is used in, pretty much all of them have a workflow something like:
Gather data Label data Train model Deploy model Unfortunately, data drift is something that occurs in almost all domains. Data drift slowly makes your model inaccurate, requiring follow-up iterations of gathering, labelling, training and deployment.
Usually data drift isn’t caused by the optimal output changing for a given input, but rather the inputs starting to explore new areas of the input space that no training data exists for yet. This means the model has to extrapolate from more distant training data, which it may be able to do more or less successfully depending on the exact situation. A classic example here would be that consumer cellphone cameras have gotten better quality over time, so if your model was trained on old blurry camera data, it may now (counterintuitively) be less accurate on the new, clean data, simply because it isn’t in the training data.
...
➦ Monopolistic Thinking
Aug 26, 2024
This one starts with a Steve Jobs quote. Love him or hate him, nobody disputes that he lived for his product vision and cared deeply about the experience of his customers.
“If you were a product person at IBM or Xerox, so you make a better copier or computer. So what? When you have monopoly market share, the company’s not any more successful. So the people that can make the company more successful are sales and marketing people, and they end up running the companies. And the product people get driven out of the decision making forums, and the companies forget what it means to make great products. The product sensibility and the product genius that brought them to that monopolistic position gets rotted out by people running these companies that have no conception of a good product versus a bad product. They have no conception of the craftsmanship that’s required to take a good idea and turn it into a good product. And they really have no feeling in their hearts, usually, about wanting to really help the customers.”
...
➦ Quality Assurance
Jul 30, 2024
Why even have Quality Assurance? This one starts with a question: what is the purpose of Quality Assurance in a product company?
I think we all agree that there’s a very big primary goal of making sure bad products don’t get delivered to customers. The question, then, is in all the little secondary factors, and the tradeoffs that they imply.
For example, is it ok to prevent all bad products from getting to customers by also preventing all good products from getting to customers? You’d probably say no, but in for example a company with a complete monopoly, this could even make sense. Of course this is a wild exaggeration from anybody’s intentions, but it is certainly a tradeoff that is being made in the ’traditional’ organisational role, where QA is tasked with the combinatorially exploding task of checking that every piece of product functionality works with every other, plus any third party integrations, all at the same time.
...
➦ Electric motor intuition
Mar 2, 2023
As someone who’s been working with electric motors for a long time, I’ve seen a lot of newcomers get confused about things like kV, internal resistance, motor size, magnet strength, and how all the various aspects of the motor design actually impact the motor’s performance in different situations.
A note, this page is only going into brushless DC permanent magnet (BLDC-PM) motors, and even then particularly as they pertain to the 10W - 1000W, weight and efficiency sensitive applications, such as multirotor and fixed wing drones. A lot of the intuition carries over into other areas, and maybe I’ll do a follow up on that, but for now, permanent magnet brushless motors are the focus.
...
➦ Building 10x software teams
Feb 22, 2023
Twice in my career I’ve had a boss mention, in relation to the team I was leading at the time, “I’ve never seen such a productive team before.” Sometimes it’s harder to see from the inside, but with the benefit of hindsight, in these cases, something special happened. It certainly isn’t something I can force to happen, and it isn’t from anything like pulling crazy overtime or just ‘working harder’. It’s more like an emergent behavior of the correct team members, the working environment and the problem that needs solving. Having done it twice now to a degree that people actively remarked on it, I think I’m starting to see the patterns of what is needed. When it happens, it’s a magical state of flow that the whole development process enters, and anything I can do to help you experience the same is time well spent on both our parts.
...
➦