8 min read

Thought-Provoking #1

I’m starting a new series to share the most thought-provoking ideas I’ve come across in recent weeks. They’re worth sharing, but usually not substantial enough to warrant a post of their own.

I won’t publish these on a fixed schedule. Good ideas aren’t easy to come by, and I don’t want to force them just to keep a routine.

I'm still experimenting with the format of this, and will adapt as I gather more feedback from readers. Reach out if you think I’ve missed out any crucial stuff (or want to contribute)!

Why we need Friction

This quote I heard from a YouTube video (don’t remember which one it was) stuck with me: “The effort of wrestling with an idea is largely what sharpens thought.” It encapsulates my thoughts on using AI for writing code or completing homework. When we use AI, we’re essentially removing all friction from the creation process - and depriving ourselves the chance to learn. What used to be 5 hours of head-banging for a Data Structures problem set can now be completed in 30 minutes with AI.

And I can feel its insidious effects. Back in 2020 I would crawl through countless stackoverflow forums, documentation, github code snippets just to find the solution. Right now, I just ask Claude Code or Codex to search the answer for me - or even “worse”, implement the fix for me. It saves time, at the expense of my understanding. When things come too easily, they’re also easy to forget.

A tool like Claude Code is great for mid-level developers and beyond, because they know how to actually design and build systems (without the use of AI). But it lulls junior developers into a false sense of self-capability, which is dangerous.

(I think) Taste is…

I’m not talking about the thing we sense with our tongue. I’m talking about our personal preferences & discernment. And I think there’s no right answer to this - I’m just sharing my perspectives.

Lately, a thought experiment popped in my head: What if you’re the last person on Earth - would you care whether you’re wearing designer clothes, driving flashy cars, or owning the nicest houses?

I think Taste is social. The selling point of luxury brands isn’t in the product itself, but what owning it makes others think of us. This is similar to a point made in the book “The Status Game”, where humans use symbols (the jewellery we wear, the cars we drive) to compare ourselves against others (i.e. how well am I doing vs other people?).

Which is also why even though luxury bags were “found” to be made in China last year, with x10-20 markups, people weren’t bothered much - because they are paying for the brand and social status it endows, as much as they think they’re paying for the craftsmanship and quality (which still matters).

Why Measurement is so important

Another quote I recently heard: "We cannot improve what we do not measure." If we don’t have metrics to tell us how well we’re doing, we might as well be shooting in the dark.

As someone who’s interested in the medical field, this couldn’t be more true. From my personal experiences, when patients undergo a new drug regime, it typically takes weeks to months for them to “calibrate” to the right dosage and combination. That’s because the blood tests they undergo to monitor their vitals only happen once every few weeks. And so this feedback loop is extremely slow - I take this drug, and only know two weeks later whether my vitals have improved (i.e. whether the drug is working). A solution boils down to having systems that monitor metrics 24/7, tightening this feedback loop.

The longevity space is focused on building accurate epigenetic clocks (predicts/measures biological age), precisely because that allows us to see whether anti-ageing treatments are actually working in real-time, rather than having to wait 20 years before we see “results”. So, a huge problem in the healthcare space is closing the gap between treatment (taking the drug) and knowing whether it actually works (measuring vitals).

This extends beyond the medical field. It applies to just about anything - whether it’s a startup trying to achieve product market fit, or a business trying to increase revenue. If there’s no metrics to measure, then there’s no point in doing anything at all, because you won’t know if it’s working.

This might be an interesting startup idea: Coming up with metrics that a company or project should monitor. Basically, to build this feedback loop… “feedback-loop-as-a-service.”

Vibecoding’s Bottleneck

Humans are a bottleneck in vibecoding. We can remove ourselves from writing prompts by designing loops that prompt our agents - hence the emergence of “Loop engineering.”

Sometimes, we just have to step back and challenge our assumptions. We might think that vibecoding has a context issue, or a capability issue - but could we also be part of the issue? We’re limited by our imagination, our ability to multitask (to monitor our countless Claude Code sessions running), and our existing biases. Why not remove humans from the coding equation and see how it goes? Set up the right harnesses, and it may very well work.

On Verification

"AI improves when it can verify." AI becomes more capable when it can test its own outputs, observe failure, and iterate.

This combines the two earlier points I wrote about: The importance of measurement, and humans being the bottleneck.

The early version of the cybersecurity product I was building in 2023 was inefficient largely because it lacked a verification layer. We were using LLMs to come up with cyber attack paths - but version 1 simply came up with a set of instructions, and required human red-teams to test it out. Humans were the verification layer.

The zero-to-one came when we started using specialized cyber-agents to run those exploits for us, and test whether it actually worked. In our case, this meant whether it could write a flag to a specific directory, hence indicating arbitrary code execution; or whether it got root when it did whoami, indicating successful privilege escalation.

The verification was now automatable. And when something can be automated, it can be scaled. This is what allowed us to test over 2k+ publicly available exploits overnight, to see if it worked for our specific IT environment. All because AI could now verify its own outputs.

I think verification is a big reason why the math models by OpenAI and DeepMind succeeded. Formal proof systems played an important role. Lean is a programming language and proof assistant in which a mathematical statement and its proof are expressed precisely enough for a small trusted checker to verify them. By feeding these model-generated proofs to Lean, we get a reliable, automated feedback signal which is used to further improve those models.

So, by automating verification, improvement becomes scalable. We are no longer bottlenecked by the speed at which mathematicians can manually inspect and verify the correctness of AI-generated proofs. We become bottlenecked by compute, which is much more computationally superior than any human. DeepMind’s 2024 AlphaProof used this kind of Lean-based loop, proving or disproving millions of formal problems and using verified proofs to reinforce the model.

This also applies to concepts like self-healing software, where AI can autonomously detect errors, attempt to fix it, and verify whether that fix actually worked via testcases.

Review is a Crucial Skill

I recently discovered Addy Osmani’s blog, and I found many of his articles to be insightful and interesting.

Quoted from one of his posts, “The hard part of engineering moved from writing code to deciding whether to trust it, which makes review the most leveraged skill in software right now.”

We can draw parallels to social media: when it’s so easy for people to disseminate news, the onus lies on us to fact check and determine whether to trust it. Discernment - choosing what to believe - becomes the crucial skill.

Faros AI tracked 22,000 developers and found that PRs merged with zero reviews lies at 31.3%. Why the increase? Human reviewers simply can’t keep pace with the sheer amount of code that AI generates. What’s worse, AI writes about 4x more code, but only offers a 12% of productivity gain.

So, we’re bottlenecked by the speed of human review. Which again ties to verification - how do we know if the code is good or not? And similar principles apply - if we can automate this verification, find an accurate way to automate this code review process - we can tighten the feedback loop and accelerate development cycles.

Having plugins like chrome-devtools accelerates the development cycle because AI can now navigate websites and test if its AI generated code works or not (e.g. is the website rendering, are the buttons clickable, etc.). So the next challenge isn’t whether the code works, but whether the code is maintainable and of high quality.

Comprehension & Intent Debt

These are terms I encountered in another blog post of Osmani’s.

Comprehension debt is “the gap between how much code exists and how much any human understands.” And it accurately summarizes a huge issue in vibe-coding: comprehension debt is piling up. When AI can generate an entire codebase in minutes, we simply can’t keep up with the pace of outputs.

Tools that help us visualize the system architecture and code dependencies will be useful. It can be as simple as asking AI to generate a mermaid diagram to visualize your codebase, or using more specialized tools like Sourcegraph or DataDog’s Service Map.

Intent debt is the “absence of externalized rationale that explains why the system is the way it is.” In other words, if we don’t formalize and write down why we designed things in certain ways, the system eventually drifts from what we want it to do - because the AI or other developers that build after us don’t know how we think or what we want.

Think of your senior developer changing jobs and spending his last week writing documentation - that’s basically clearing intent debt - to capture his intentions and rationale when he was building the system, so whoever is continuing on can stay aligned.

On this idea of “intent,” I think one of the core skills of vibe-coding is crafting and reviewing good Product Requirements Documents (PRD; what to build and why) and Product Specs (how to build). This is essentially how we capture intent; accurately translate what we want and have AI work on it. The thing is, a big reason why AI doesn’t produce the output we want is because we ourselves don’t know what we what - or how to convey in words.

To deal with this, the community has created some skills that now interview users (to elicit what they truly want) or come up with spec sheets… like agent-skills, which has skills like /interview-me and spec-driven-development which runs a developer through the process of refining ideas and writing PRDs.

AI Product Companies

https://stratechery.com/2026/anthropics-safety-superpower/

Models are increasingly useful in creating their successors - whether it’s generating training data, reasoning trajectories, or distillation. So, even if today’s models aren’t powerful enough, the ones after that will be.

There are many frontier models out there - GPT, Claude, Gemini, and increasingly open-weight ones like GLM or Kimi. When these models are interchangeable (we can easily swap out models using openrouter, etc.), they become commodities - competing on quality, price, speed, and availability.

So, the most valuable place to be in the value chain is owning the user touchpoint. The frontier labs have an economic imperative to move closer to users, which means they’re competing with software companies themselves. Think Microsoft Copilot vs Claude Cowork.

Ben calls OpenAI an “accidental consumer tech company”. It was a research company that became a product company because ChatGPT allowed them to capture demand and data directly from customers.

Away from compute, what models really need is more data. And not just data, but better data - real world use data. This is one reason why OpenAI and Anthropic offers heavily subsidized subscription plans. SemiAnalysis recently estimated a $200 plan gets you $8000 worth of Claude tokens and $14,000 worth of Codex tokens. Both are fighting for user and developer mindshare, but they’re also fighting to have access to actual usage data to make their models better.

And those cheap LLM APIs we see on those Chinese sites? Like getting Claude APIs for $1? They can probably charge cheaper because either a) they don’t actually work, b) they’re not actually routing to the models they’ve advertised, but to cheaper, smaller models, or c) you are the product - they want to capture your usage data and monetize that.