HNHacker News
TopNewBestAskShowJobs

msteffen

898 karma · joined December 11, 2014

https://creating.software
submissionscomments
msteffen··on Local AI needs to be the norm
> One of the current trends in modern software is for developers to slap an API call to OpenAI or Anthropic for features within their app.

Well there’s your problem, control needs to go the other way. If you want your app to be AI-enabled, you need to make it easy for AI to control your app. Have you used OpenClaw? It’s awesome!

msteffen··on Read Programming as Theory Building
I wrote a series of blog posts about this a few years ago: https://creating.software/essays/theory_of_a_program/, some of the few I ever actually finished, lol.

Most of my posts have aged terribly in the age of AI (especially the ones I didn't finish...so long, extended discussion of how to use a lab notebook when debugging, we hardly knew ye. Claude fixes our bugs now) but one job that engineers still have is the collection and retention of context that AI doesn't have and can't easily get.

msteffen··on The bottleneck was never the code
For that matter, here's a thread from a few days ago recommending the practice of scheduling status meetings for the purpose of pressuring the attendees to work on your project in addition to their other work: https://news.ycombinator.com/item?id=47906942

What hermit wouldn't love meetings that simultaneously insist that you do more while taking away time to do it, all to avoid adjusting a pollyanna quarterly plan and budget!

msteffen··on The bottleneck was never the code
Yes! So much of professional software development is about assisting the nominal job of management—planning and budgeting—rather than users or even business fundamentals.

Why am I awake at 1:00am, ruining my brain and body, trying to get this feature finished before the end of the week instead of three days later? Ah yes, so that we meet our quarterly OKR, and the next quarter's plan that the EM and PM negotiated without me or our customers isn't disrupted and doesn't need adjustment. That would invite reprimand from the director, and the extra work would be terrible for them, I understand.

I'm reminded of this recent thread in which Heroku left the devs in charge and suddenly features that the author had requested for years got implemented: https://news.ycombinator.com/item?id=47669749

msteffen··on Meetings are forcing functions
My point being, in case it’s still unclear, that “I’ll create pressure on everyone and then progress will happen,” is IMO bad management.

Sometimes the problem is not enough motivation, though I think that if you hire well, that’s rare—the best engineers are intrinsically creative and motivated. Often, lack of progress is due to some other organizational problem—too much toil, unclear priorities, conflict, etc—and just adding pressure until progress happens is the manager equivalent of whining until your sister does your chores for you.

Even if it works, either

1. the team is working around the problem (which the manager doesn’t know about or understand, and isn’t dealing with it) and will eventually get fed up and leave, or

2. someone pushes extra hard and solves the problem for everybody else. Now, that person the de-facto leader, though they’re not recognized, and in fact are often penalized for getting distracted from the paper priorities, since the managers who do this are rarely interested in the mechanics of how their problem was solved. Respect for management is lost, because they don’t understand what’s happening. Eventually everyone gets fed up and leaves.

Managers can’t solve every problem themselves, of course, but the manager needs to understand what the problems are, explicitly set the priority of solving them, and understand and celebrate the solutions when they’re found.

msteffen··on Meetings are forcing functions
You know what, I read it again and I don't even disagree with the concrete advice in the post—weekly meeting, starting with open tasks from last week—which I would characterize as a basic, ubiquitous, almost anodyne organizational coordination tool. My problem is this part:

> Everyone has other obligations, fires to put out, and emails to answer. It’s easy for long-term strategic, high-impact work to sink to the bottom of everyone’s todo list...this creates pressure on everyone to make progress.

One experience among many: I spent a very painful six months as a new grad, in a particularly dysfunctional corner of a mildly dysfunctional organization, in hours of daily back-to-back arm-twisty status meetings with team after team who wanted something from me and were sure this would get it (after which I would stay up all night working, since that was the only time I had left for that).

You know how it ended? The tech lead on my team cornered me in a conference room to find out why nothing was getting done, and I fully lost it with the guy. Like just started shouting that the actual consequences of ignoring the things people wanted ignored were transparently not acceptable, and I was barely sleeping trying to hold everything together. He got very quiet, said "ok," and we started going to meetings together and saying no to stuff. The amount that was collectively being demanded from me/us exceeded what could be delivered, but no one was on triage duty.

I've learned quite a bit since then (including spending a few years in management), so I've gotten better at understanding what's happening and asking for what I need. I've just also decided that "it's not my role to figure it out" managers (and PMs) are like rocks in the bowels of an organization. They’re in the way, subtly, quietly making everything bloated and painful as long as they’re there.

msteffen··on Meetings are forcing functions
IMO this is such a manager-brained take. If your long-term strategic goals aren't being advanced, you have to figure out why. Talk to your team and figure out what the deal is. Talk to other teams too, while you're at it. You might accidentally solve a problem.

The number of managers who've successfully convinced themselves that knowing things and making decisions aren't part of their job, and just fill their days with arm-twisting and event-planning, is literally unbelievable to me. I've never met a founder with the attitude "yes I'll just put the stakeholders in an alignment meeting and my company will build itself," but somehow half the of the rest of leadership thinks that's a job.

msteffen··on Do I belong in tech anymore?
A lot of this is about knowledge debt if I’m reading it correctly (people not knowing things that they should know, or knowing the wrong things). In my last few jobs, I’ve maintained an Anki deck about facts relevant to my job (who certain people are, how certain systems work, details of the programming languages we use, etc.)

I’ve started kind of a funny rule, which is that when I make a change now, I can use Claude or not. But if I use Claude, some cards have to go into the deck. Both about how the implementation works, and also about anything within the implementation I didn’t know about. It does force you to double-check things before committing them to memory.

msteffen··on Over-editing refers to a model modifying code beyond what is necessary
I think about this a lot, though one paragraph from that article:

> Many assembly programmers were accustomed to having intimate control over memory and CPU instructions. Surrendering this control to a compiler felt risky. There was a sentiment of, if I don’t code it down to the metal, how can I trust what’s happening? In some cases, this was about efficiency. In other cases, it was about debuggability and understanding programming behavior. However, as compilers matured, they began providing diagnostic output and listings that actually improved understanding.

I would 100% use LLMs more and more aggressively if they were more transparent. All my reservations come from times when I prompt “change this one thing” and it rewrites my db schema for some reason, or adds a comment that is actively wrong in several ways. I also think I have a decent working understanding of the assembly my code compiles to, and do occasionally use https://godbolt.org/. Of course, I didn’t start out that way, but I also don’t really have any objections to teenagers vibe-coding games, I just think at some point you have to look under the hood if you’re serious.

msteffen··on Cal.diy: open-source community edition of cal.com
> Millions and possibly billions of dollars just assuming average SWE compensation rates

Yeah, and average kernel devs are not average SWEs

msteffen··on Show HN: Alien – Self-hosting with remote management (written in Rust)
IIUC this kind of thing is usually called “managed deployment.” Minio used to have a slick implementation of this, and I think databricks does as well. Usually it’s less “execute arbitrary commands on customer hosts,” and more “send metrics and logs to shared repository and send RPCs to customer deployment”
msteffen··on Dear Heroku: Uhh What's Going On?
Next week: “we are right-sizing the organization”
msteffen··on Dear Heroku: Uhh What's Going On?
Five bucks it’s this:

Management: “we’re going into maintenance mode”

Devs: “You mean we get to work on whatever we want?!”

msteffen··on Got kicked out of uni and had the cops called for a social media website I made
Very nice thread by the former CEO of Reddit about online behavior, moderation, etc: https://x.com/yishan/status/1586955288061452289

Per the thread, it’s possible this problem could’ve been solved by burying the site in affiliate links…

msteffen··on Shooting down ideas is not a skill
Honestly IMO this kind of thing just depends a lot on tone. “That won’t work because” tends to piss people off and they usually do the thing anyway. “Cool idea! What about …? We tried … years ago and failed because of that” works at least sometimes (and sometimes they have a good answer)

Edit: also, bluntly, sometimes objections have answers that can’t be said. “DevOps won't want to support another service.”…”that’s because our devops engineers all think you’re an overpaid jackass and are strongly inclined to reject your ideas out of the gate. My one other idea they liked, so they’ll probably take a chance on another one.” What’s hard but important to remember is that sometimes you’re the person that things can’t be said to.

msteffen··on Demand for autism care is soaring
Earlier this week, the NYT also published this (to me, very moving) account of a nonverbal autistic man going to graduate school and publishing a novel: https://www.nytimes.com/2026/03/30/books/review/woody-brown-...

It's amazing how much we continue to learn about these conditions.

msteffen··on In math, rigor is vital, but are digitized proofs taking it too far?
> what happens is that, as in software, certain ideas get ossified. That’s why, for example, every OS has a POSIX layer even though technically the process/namespace/security model could be radically reimagined possibly to create more easily engineered, correct software.

Total amateur here, but it strikes me that one important difference is that performance matters in software in a way that it doesn’t in mathematics—that is, all proofs are equally valid modulo elegance. That means that abstractions in software are leaky in a way that abstractions in mathematics aren’t.

In other words, in software, the same systems get reused in large part because they’ve been heavily refined, in terms of performance, unexpected corner-case behavior and performance pitfalls, documentation of the above, and general familiarity to and acceptance by the community. In math, if you lay new foundations, build some new abstraction, and prove that it’s at least as powerful to the old one, I’d think that you’d be “done” with replacing it. (Maybe downstream proofs would need some new import statements?)

Is this not the case? Where are people getting stuck that they shouldn’t be?

msteffen··on Slovenia becomes first EU country to introduce fuel rationing
Price increases tend to be regressive—the poor person who needs a little fuel to get to their job is hurt more than the large business that uses a lot more fuel but has much, much more money overall.

There are things you can do to try and even things out. Etherium has been considering “quadratic voting” to solve a similar problem (in this case, that would look like tracking consumption and increasing the unit price of fuel as you consume more fuel, so that cost goes up quadratically with consumption). That seems hard to enforce, though, and doesn’t help with foreign opportunists.

msteffen··on “Collaboration” is bullshit
> Collaboration isn't a process or a management technique -- it is a communication style. If you want collaboration, you can't take random people and use process to "make them collaborate" -- you need to build your team out of people who are collaborators.

Yes! I would add that IMO the communication style can be learned and there are great rewards for doing so.

I believe the rough statistic that 20% of people on a typical project are contributors. I don’t believe that it’s because the other 80% are losers. IME it’s because no serious effort has been made to include them, make sure they understand wtf is going on around them, and help them solve whatever is holding them back.

If you do this, a) it does work, and b) the need for small teams becomes apparent because the now-onboarded person can’t find anything that isn’t already being worked on, so they (with encouragement) start a new thing. And there are limits to people’s ability to understand what’s happening, especially if they’re inexperienced, and some people really don’t have the skills to contribute, but by and large, building bridges for people is still highly worth doing.

msteffen··on Some things just take time
I think “iterating more quickly” is good for the company doing the building. But if you’re the customer, having a new piece of shit foisted on you twice a day so that some garbage PM can “build user empathy” gets old really fast.

Before AI, I worked at a B2B open source startup, and our users were perpetually annoyed by how often we asked them to upgrade and were never on the latest version.

msteffen··on Having Kids (2019)
I mean, not judging other parents doesn’t come from thinking that all other parents are doing a great job, it comes from knowing that you’re doing a terrible job in your own, special ways.

Parenting children is impossible, therefore all parenting lies on a spectrum from terrible to catastrophic, and it’s hard to know how you did until they grow up (if ever) because there’s a lot of sensitivity and subtle emotional stuff, especially at very young ages, which are the most important and the ones you remember the least. I’m certain there are screen-free parents who are worse for their kids than a good chunk of tablet-hander-outers

msteffen··on Grief and the AI split
Yeah, I like this framing a lot. There comes a point, after working on a system for a while, when there are no details: every aspect of how the system works is understood to be in some way significant. If one of those details is changed, you understand what the implications of that change will be for the rest of the system, its users, etc. I worry that in a post-AI software world, that’ll never happen. The system will be so full of code you’ve barely looked at, understanding it all will be hopeless. If a change is proving impossible to make without introducing bugs, it will be more sensible to AI-build a new system than understand the problem.

I sometimes wonder if modularity will become even more important (as it has in physical construction, e.g. with the move from artisanal, temperamental plaster to cheap, efficient drywall), so that systems that AI is not able to reliably modify can easily be replaced.

msteffen··on Ape Coding [fiction]
I liked this a lot in retrospect.

I really like to understand the practice of software engineering by analogy to research mathematics (like, no one ever asks mathematicians to estimate how long it will take to prove something…).

Something I think software engineers can take from math right now: years of everyone’s math education is spent doing things that computers have always been able to do trivially—arithmetic, solving simple equations, writing proofs that would just be `simp` in Lean—and no one wrings their hands over it. It’s an accepted part of the learning process.

msteffen··on Show HN: Steerling-8B, a language model that can explain any token it generates
In the recent HN thread announcing the new Gemini coding agent (https://news.ycombinator.com/item?id=47074735), a lot of people complained about Gemini’s tendency to do unwanted refactors, not perform requested actions, etc.

It made me cautiously optimistic that all of Anthropic’s work on alignment, which they did for AI safety, is actually the cause of Claude code’s comparatively superior utility (and their present success). I wonder if future progress (maybe actual AGI?) lies in the direction of better and better alignment, so I think this is super cool and I’m suddenly really interested in experiments like this

msteffen··on Gemini 3.1 Pro
> it's almost impossible to get Gemini to not do "helpful" drive-by-refactors

Not like human programmers. I would never do this and have never struggled with it in the past, no...

msteffen··on Are we all plagiarists now?
I think IP kind of breaks a lot of engineers' brains (despite how much of it they create) because a lot of IP law is about intent, and their theory of mind is so bad that the idea of a body of law based on deduced intent, and the ways a court might deduce their intent if they used someone else's IP, are totally alien to them.
msteffen··on Log level 'error' should mean that something needs to be fixed
Okay, but…most programs are written in Python or Rust or something, where invoking library functions is a lot safer, more ergonomic, more performant, and more common than spawning a subprocess and executing a program in it. Like you can’t really ignore the human expectations and conventions that are brought to bear when your code is run (the accommodation of which is arguably most of the purpose of programming languages).

When you publish a library, people are going to use it more liberally and in a wider range of contexts (which are therefore harder to predict, including whether a given violation requires human intervention)

msteffen··on A quarter of US-trained scientists eventually leave
My understanding is that scientific research has a dual problem, where the number of students needed to carry out existing professors' research is much larger than the number of junior faculty positions generally available. The result being that most trained PhDs must leave (US) academia because there are no jobs for them. In fact, I've heard scientists complain that universities owe it to students to provide more help finding a job in industry after they graduate.

Given all that, where are professors supposed to find and hire students who don't want to stay in academia themselves? I think a lot of these students wind up being aspiring immigrants, and I'm not surprised that a lot of them would also have a hard time finding a place for themselves after graduating and that many of them would leave. Also, the abstract seems to argue that that US still benefits greatly from this arrangement: "though the US share of global patent citations to graduates' science drops from 70% to 50% after migrating, it remains five times larger than the destination country share."

msteffen··on Kids Rarely Read Whole Books Anymore. Even in English Class
This one? https://www.arrowsmith.ca/cip-arrowsmith-school
msteffen··on After my dad died, we found the love letters
Not to mention the partner who he made move to another country and then still wouldn’t tell anyone about. The more I think about this post the more insanely controlling the guy seems!
← PreviousPage 3 of 8Next →