Edwin Ong

High Agency Engineering

As artists adapt to generative AI, software engineering has to evolve too. This is the path I am adopting.

Plenty of engineers are struggling with their identity in this new age. Anxiety shows up even among the best of us, and anger isn’t far behind.

Andrej Karpathy on AI coding
Rob Pike on AI coding

I know both emotions. I pride myself on being a software craftsman, yet I am also the co-founder and CTO of an AI startup that keeps getting run over by paradigm shifts and better-funded startups (story for another day). While I now know better the paths to stay out of, what matters more is knowing how to pick myself up and go again in this new age.

To get out of that spiral, I had to change what I think my value is.

Values

First, our value is not in writing more code.

This isn’t new, and good engineers have been saying it for a long time:

Jeff Atwood on code

Code is a liability, not an asset. Every line is a future maintenance burden. Every new feature expands the surface area for bugs.

In today’s environment, more code also means more AI context, which leads to degraded performance.

Our value lies elsewhere, and John Carmack said it clearly:

John Carmack on coding

So do not be afraid to throw code away. Your discipline and problem-solving skills stay with you. I have thrown away more code in the last few years than I ever imagined.

I am obsessed with user value. The ability to write great code is necessary but not sufficient for delivering that. What enabled me to deliver in my previous endeavours is figuring out how to navigate everything around the code: the people, the politics, the alignment, and the ambiguity.

I’ve seen smart engineers win technical arguments but lose the room, and therefore the project, and double down on a bad decision made during uncertainty because it is tied to their identity.

The goal is to create value for others, and very little of that is pure intelligence.

Intelligence is Overrated

If intelligence were everything, the world would be run by people with 250 IQ. It is not.

AI has a narrow kind of intelligence. It works well only when the problem looks like this, as Demis Hassabis notes in his Nobel Lecture:

  1. Massive combinatorial search space
  2. Clear objective function (metric) to optimise against
  3. Either lots of data and/or an accurate and efficient simulator

But real work is messy and unique:

When those three conditions aren’t true, AI looks smart but still fails at basic, real-world decision-making. Anthropic’s vending-machine experiment shows how much still depends on experience, intuition, and real-world constraints.

To elegantly solve a problem, you have to understand it deeply and let the solution emerge. It involves talking to users, watching them struggle, and digging deeper but asking the right questions. That feedback cycle is crucial.

Linus Torvalds has the same sentiment about intelligence:

And don’t EVER make the mistake that you can design something better than what you get from ruthless massively parallel trial-and-error with a feedback cycle. That’s giving your intelligence much too much credit.

Ruthless feedback beats raw intelligence. Action begets more insight. That is the core of high agency.

High agency is the way to go

Agency is the ability to iterate without permission. The fastest path to user value is the one with the least time to contact reality. High agency enables that not only for you but for your team and the AI.

Observe the people around you, figure out what they hate doing, learn to do it, and take it off their plate through software. In the long run, the highest net value creator wins. Not all problems can be solved with technology; sometimes it is misalignment and has to be solved with empathy.

If it is a problem well-suited for AI, build data pipelines or design a simulator for it. Let them take care of it and move on to higher value problems.

AI gives us, especially software engineers, the ability to make our ideas a reality again and again, generating better ones over time.

Be prepared to throw away a lot of code, because the loop—observe, decide, ship, learn—is the value. We’re just getting started.

#Core #AI