Punch yourself in the face with reality
adi.bio
adi.bio
The AI gave me unprecedented turn around time in experimentation. The same experiments would easily take me over a month in the past. Now it was a few days. But still, real progress is made only when my understanding catch up with reality.
The revelation to me was that I used to code what I know, now I could code what I don’t know. The common path is that when I face something I don’t know, which is quite often, to move forward I have to level up my understanding.
If you're not convinced - sign up and pay by the token of a high or highest level model. Anthropic or Grok for example. The vendor isn't the concern. The quality of what can be done. Then, find an agentic 'harness' that is written in a language you can read. There are several (pi, opencode, crush, etc) and then clone that repo or one of yours you don't mind having exposed and then point your agent to that repo.
Now ask questions: what api calls are made by this repo? Where are secrets stored and sourced from? Do an adversarial investigation and list the bugs. Then fix the bugs.
Then review the work and determine the value and how to wield this new tool. It replaces reading, writing, and editing - not thinking.
If that wasn't a hyphen I'd be sure this line was AI-written.
I cannot stand the style of Opus 4.7 and 4.8.
Clear goal, share context, delegate but verify. Running a team of engineers also inevitably generates pages and pages of material, design spec, code, test, review. Just that we now do that with agents and agents are way less trust worthy
The only difference is that agents don't deal well with ambiguity in processes. If your build process is 15 steps, a human will just endure because "that's how it's always been" - an agent will keep stumbling until you either optimise the process or document it.
And now it's better for humans too, they either got a simplified process or better documentation.
It's not different than when coding by hand, often we take shortcuts by hand that we then have to pay for later. It really just becomes a judgement call on when to stop prompting new features and start service what you have.
I think with AI and vibecoding its tempting to assume the output is good and chase the dopamine hits of more features, more features, more features, but eventually you get stuck.
That being said AI is also a great tool at paying down tech debt. It's great at helping you read a codebase and can be great at making the mechanical changes you want. And I think there is some truth to the story that newer models will be able to pay down debt (fix the slop) of older models. But its all shades of grey, newer models are better than older ones, but can I emit slop with 5.6 faster than 5.7 will be able to fix it in the future? Nobody knows.
It's not like human projects are devoid of bad code, its all tradeoffs and shades of gray. But to be honest I haven't written a line of code by hand in a while.
I've known some people who can never stop talking. Maybe they are overly represented in the training set.
Usage is metered/billed by the token. This suggests a few possible hypotheses for why they might tend to be verbose.
Once you have something concrete you can iterate on the prototype until it's a mess. But, hopefully, in that time you got closer to figuring out what you want. And even if the code for the prototype is a mess the "idea" of it should be cleaner. I like to have an LLM make a new spec at that point, and start fresh with it. You can clean up the abstractions and the UX there.
When writing code is cheap figuring out what you want to write is the hard part. It always was, but the barrier of getting the code written and working made that less obvious.
Same story as building a house. There’s so many unknowns.
I've been very pleasantly surprised. The combination of the compiler improvements in Elixir 1.20 and the structural guardrails from Ash seems to have led to very consistent, organized and readable code.
Does anyone want one?
The article says to stop building and go outside!
And actually, talking about climbing apps with fellow climbers is a great way to be outside.
> talking about climbing apps with fellow climbers is a great way to be outside.
Indeed. The climbers I met are very supportive. They helped me scan the gym, shared their own climbing footage, which is what I'm trying to do, visualize climbing in a 3D scene.
The 'spec' frameworks are documentation as well, but can become contradictory as decisions about the app change over time.
The best mode of work for me was gradually sculpting the prototype into a product by providing feedback and moving to version 2 (from scratch but often with v1 accessible as inspiration) if I felt like it's becoming overbloated.
Building technology to overcome relatable hardships and frictions is a worthy challenge full of meaning.
Using someone else's technology to erase frictions and hardships from your life can erode meaning.
On my worst days I am convinced programming and technological optimism is a theft of meaning; personal satisfaction at solving a human problem awkwardly mapped to technology, at the expense of users dating, socializing, or consuming with discomfort and therefore the possibility of growth and meaning.
It is a little alarming the way people treat AI as another human relationship, yes.
But AI is also a pretty useful research partner and rubber duck for ideas so long as you know going into it that it’s going to have a bias toward agreeing with you.
This situation reminds me of Calvin and Hobbes comics that mock the idea of Calvin’s dad’s idea of building character.
For example, I was debating ECC memory and cheap used business workstation hardware for a homelab recently with an AI. It helped me pick a system out of some eBay listings and verified whether the model and Xeon processor SKU supported ECC.
When I went to buy the RAM, it actually caught a mistake where I thought a listing was for UDIMM when it was actually RDIMM.
It’s not going to build my character or build my growth and meaning to buy the wrong thing from an online store.
dealing with the consequences of my mistakes sounds like growth to me
I think it’s possible that this concept that AI is an easy shortcut is a form of gatekeeping.
We had the same reactions to StackOverflow and web search when those technologies came around. And there’s certainly partial truth to it. Maybe reading a full book really does make you more well-rounded than googling your answer, but sometimes blowing a lot of time searching an index in a physical book hoping to find the piece of knowledge you need is just spending time for sake of spending time.
Maybe you never learn to check your own details. Maybe that's ok.
The number of mistakes you can make is infinite in comparison to the number of correct choices you can make. Since you don't have infinite lives and time there must be some manner of problem space reduction to ensure you get anything done.
Luckily for us humans evolution has spend quadrillions of hours doing just that for us. Modern technology has made it so you don't spend your entire life trying to get something to eat every waking moment of the day. This leads to some problems of your ideology of hardships lead to growth. Which hardships? Which growth? Should you go back to living in a cave like a mammal to get the full experience?
Magnitude pedantery incoming: 1 billion years is "only" about 10 trillion hours.
Think of combined manpower. If you have 2 people working an 8 hour shift you've spent 16 hours.
/Pedantry crisis averted.
Fun math!
[0]Crockford et al. (2023) estimate about 10^30 cells exist today, and between 10^39 and 10^40 cells have ever existed on Earth.
Saying, "Experiencing some friction is good for building character" is not equivalent to saying "We should demolish all technology and force babies to survive on their own in the woods."
That the extreme position is wrong does not strictly imply that the moderate position is too.
This is the particular problem with deciding a position, it's all shades of grey.
200 years ago a good number of humans thought that owning other humans was a-ok. Today that's mostly not true. In 200 years it's likely the vast majority of humanity will look at eating meat and owning pets at the same level of horror. Which is the extreme position? Which is the moderate?
"I should run my purchase decisions past an AI in the future."
Reality is that which, when you stop believing in it, doesn't go away.
And something I wish the current crop of AI startups learn as well, just making XYZ agentic maybe isn't the answer to everything.
Same folks that said crypto will destroy traditional finance are now saying stuff like, AI will "destroy" all jobs and create a permanent underclass. Almost feels like every few years a new cult gets created with messaging perfectly designed to trigger the Gen-Z(/current college generation) into a frenzy and drinking the kool-aid.
Can't wait for it to be over (and then to do it all over again with something else). Being in my 30s helps. I care less :)
Maybe "things going bad suddenly in the near future" is just such a captivating idea to the human mind that those narratives will always find a way to dominate vs "everything will continue to slowly get better".
The year 2000 problem is a good example of this. The year 2000 problem was not a problem. Not because it wasn't a problem, but because a shitload of people did a lot of work to make sure it wasn't a problem. If we didn't have news saying 'oh no, this is a problem' before Jan 1 2000, would it have been taken so seriously?
In February 2021 Texas was so incredibly close to losing the grid that it should strike terror into the hearts of anyone that lives there (see Practical Engineering episode on black starts). Simply put this would have been a massive humanitarian disaster in the 3rd largest state in the US of a size the US has not seen in the modern era. Thousands would have died from the extreme cold that was occuring. Thousands more from a lack of medicine. Fuel would have been trapped in the ground, and ran out quickly anyway. The loss of refining capabilities on the coast would have crippled the entire US. Because of the stupid design of the Texas grid it would have taken weeks or months to get everything back online.
The modern world has become very fragile due to long supply lines of necessary supplies. Covid did a good job of showing some of these weaknesses. I don't think the "did bad thing happen or not" is the way we should be looking at this. It's "How can we reduced the impact of bad things happening". And we're doing a terrible fucking job at it by consolidating companies and industries even further.
Maybe we should actually be worried about a billion+ death event in the near future because of our stupid decisions at a global scale. Maybe we should turn that fear into doing something into preventing it.
Of course, this is silly!
The rich people will do this, using AI at least as an excuse.
As much as you would have aspirations to be a pro soccer player, badly enough broken leg can prevent you from ever being good enough.
Your imagination of being pro player does go away when in reality you’re not fit for the purpose.
Pain is part of reality. Suffering comes from wishing reality was different to how it is.
Not to say that knowing this difference has no merit, just saying that it has limits to how much it can do. After all, reality can also hit the brain, when it gets flooded by hormones and neurotransmitters that take away your rational thinking.
The problem with objective reality is 1. it changes. 2. it can be different for different people in different places.
If I live in rural India, there is probably not a tiger behind the bush. If I live in downtown Chicago there is almost certainly not a tiger behind the bush. This leads to the hard problem of probabilistic thinking which requires a lot more energy than black and white thinking.
Lastly, humans are real, and even incorrect belief systems create a reality you have to live in. God, for example, is almost certainly not real. Saying that in a forum will have some percentage of people downvote you and try to reply with a relatively poor argument. Saying it in the wrong place and time outside of the internet can most certainly get you killed. So just because something isn't real doesn't mean you should open your mouth at an inopportune time and learn the reality it created.
You are overthinking this. Reality exists in a point in time and space, same point where you are. That is the only problem you face.
Better approximations usually score you more points, which is why our perception usually evolves closer to reality.
Bad scoring systems exist.
For example, let's say if an extremely privileged person – a favorite son|daughter of a billionaire – takes random chances and people around him|her always agree and accommodate for them to win (because they want a favor from a parent), than this person will most likely have a very warped sense of reality through no fault of their own. Basically their only approximation could only be "Do whatever, just don't touch fire with bare hands and don't make daddy angry"
On the other hand, the suffering child from "The Ones Who Walk Away from Omelas" would also have warped sense of reality, because they lose no matter what action they take. The only reality approximation they can know is "everything feels bad"
Sidenote: in my philosophy, the continuous warping of reality happens mostly to people in overprivileged and underprivileged positions. Which is why I believe that a good equality index makes for a healthier society. But thats my pov, I'm not trying to sell it or anything :)
Note that I wrote "continuous warping". While sometimes bad approximations got rewarded more than good ones, reality is probabilistic. Since it can't be comprehended by people, we basically define reality as "something that is more likely".
And that's the answer to your question. If you tune past the reality, you start scoring worse again, and turn back. It's a distance thing, and the goal is to get as close to zero as you can, doesn't matter from which direction.
Since starting to use LLMs, I have actually been spending more time, at the console, than before.
One reason is that I like to ship (as opposed to "code"). That means a lot of tedious, boring stuff. The kind of thing that I want to "take a break before tackling," so I may take 30 minutes, and watch something on TV for a while, before rolling up my sleeves.
Now, the LLM can take care of a lot of this stuff, so I am not motivated to "take a break," so much, anymore.
It doesn't actually feel bad, but I now have to schedule "downtime." I never used to have to do that, before. My work always involved a lot of "context switch" points; naturally set up for taking breaks.
Before dealing with anything that might put me off. I can just ask the agent to do it for me. And then, do something else, take that break, but regardless in a few minutes I will have something to jump on instead of the same blank terminal with the same blinking cursor judging me. It really makes taking the first step, much easier and then the ball just gets rolling.
I see what his point is to be honest though, it's easy to say just one more week of polish, just 5 more features, etc.
For some people (most?) it's really hardhard, almost impossible, to fill the page with text, but when you have a page of text - even if it's shit - suddenly it's easy to critique it and interate to make it better.
AI lets me poop out an MVP out of any idea or spec with very little effort on my part, then I can go in and start improving it.
I guess a lot of folks are having better luck than I am, in getting ship-quality results from LLMs.
In my case, I find that the first iteration is almost never suitable for shipping. In fact, the more intricate the functionality, the more likely it is, to contain some real showstopper bugs.
In my experience, iteration really requires that I know my shit. I have to know what to look for, and how to form effective prompts. Testing is absolutely vital. I can’t ever “just assume” that the code is fundamentally sound; even for extremely basic stuff.
That lack of trust in my output is something I haven’t had, in decades. It can be a bit stressful.
For example, I write a lot of mobile software, so resource usage is a big deal. I had gotten used to not testing for battery usage, leaks, or out-of-control allocations, over the years of using Swift. I am now back to routinely running Instruments.
In a couple of instances, I was just unable to get anything useful from the LLM, had to toss all its output, and rewrite by hand.
That’s why I can’t even imagine directly shipping anything the LLM gives me.
That said, I have generally had extremely positive experiences with LLMs. It’s now a basic component of my workflow.
Do you spend weeks running benchmarks and optimising your code without asking/observing a single actual user whether they care if that bit is fast or not?
Or would it be more efficient to ship something, gather data and iterate where relevant?
Because if you're not doing that, I can guarantee other people are. Sadly being the first and moving fast (adding features as users request them) is in many cases better in the mobile market than having the snappiest app with zero memory leaks and excellent battery efficiency.
The whole Turkish mobile gaming industry works on this principle, they ship like crazy and iterate quickly to see what sticks.
The mistake many people make, is casting what’s good for the goose, onto the gander.
I Serve a demographic that can suffer great harm, from half-baked crap. Also, there’s no money to be made, so what’s the hurry? If someone else comes up with something better, that’s actually a good thing.
I have been shipping software for my entire career. It’s quite possible to ship good stuff.
It’s just more work, and less financially rewarding, so fewer people do it. It just gets my goat, to hear people say that it’s not possible.
Our discipline has swung way too far in this direction. The useful insight of "watch your users use your product -- you will always be surprised about something" has turned into "you cannot possibly have any vision or produce a useful product without constantly probing your users".
A/B testing, design by committee -- it reeks of cowardice and produces garbage. It reminds me of an SNL skit where politicians in a debate were able to see real-time social media responses to their talking points, and they immediately started playing a sort of "hotter/colder" game, changing their politics to try to get the graph to go up.
I promise you it's possible to just have an actual vision yourself. Yes, talking to users will surprise you, and it's important. But the idea that you cannot possibly iterate without shipping code is way, way too extreme.
I think we have a culture, where people genuinely believe that we have some “right” to a risk-free fortune.
Training users to pay for unripe garbage, is probably one of modern Marketing’s biggest coups. It affords the “MVP model,” that everyone uses.
The other big coup, is “The Company is the Product, the User is the Resource, and the Investor is the Customer” model.
Steve Jobs famously, made many errors, in his career. Probably most of his ideas were duds, but the ones that scored, scored big.
He was also, famously, a world-class prick; but he wasn’t a misanthropic prick. He actually liked people (certain ones, more than others, I guess), and had a way of understanding them. That figured prominently, in his product ideas. Many folks are misanthropes, and refuse to understand people, so they have difficulty coming up with ideas that people might like.
Taking risks, and "putting our money where our mouth is," is the “old-fashioned” way of doing it.
Yet not only do software developers do the timid design-by-focus-group all the time, they confidently tell you you're doing it wrong if you don't do it this way.
The first is getting market feedback.
The second is just getting opinions.
It does require you to think carefully about what constitutes validation or invalidation of your ideas, though.
Probably not so different from past hype cycles, except maybe this time it will be different!
If you're doing something that isn't like how people are used to things being done, is novel, or is contra to common beliefs, there's a good chance that nobody will believe in you. And in such situations, their lack of belief is not a reliable indicator of whether what you're doing is valid or correct. Most people's negative responses in such cases are emotional responses, not rational ones.
In such situations, "Being honest with themselves about whether what they are doing is actually working or not" and "Having the courage to go on when nobody believes in you" are not opposites.
Posts like this one always made me feel like I was a coward. Like there was.. unvirtuousness.. in not killing one’s darlings, not validating ideas, not quitting things in time, not looking for product-market fit.
I can report that looking for product-market fit, and everything else from the list above, became easier once I started taking antidepressants and adhd meds.
For example, it turns out deciding to punch yourself in the face with reality is much easier when you don’t feel, for example, like abandoning a project would be a giant betrayal and a thing one might in theory do but you must never do ever under any circumstances.
- - -
There are likely many people who have more capacity for self control, and who are genuinely helped by hearing moderately harsh truths because they can (1) take a look at their behavior, (2) realize it hurts them and their chances of success, (3) realize where they’ve been blind to reality, and (4) change.
I suspect that such people assume — maybe correctly in most cases — that if someone hasn’t done (4), it’s because they haven’t done enough (1-3), and this is the appropriate lever to push.
I don’t know how to finish this comment.
The only thing that changed is the scale.
My current business is profitable. Almost everything we built was still useless. Since 4 yrs ago.
The amount of effort that went into that "almost" Is something that I don't think AI moved any needle for even though half of our journey was after AI coding took off.
Speed of coding was never the problem, still isn't even if AI allegedly 10x-ed it.
People who solve problems while being profitable do not take investment money unless they want to expand or sell.
"What is the exit?" that is the question for every startup.
Reminds me of a politician in India who would ask elders in his family to slap him hard before he starts out on the election campaigns. He says that the slaps are meant to keep him alert and honest.
This has been a problem since the beginning of tech startups. I worked in a dot-com in the late 1990s. Lots of investor money. New offices. Hundreds of employees. The product was well thought out, fairly well built, and it worked. But they had no customers. It's even in the same market niche as products that today have millions of users, but those folks weren't ready for it in 1999, at least not enough of them and quickly enough to matter.
Building something quickly is only a small part of what it takes to have a successful startup. You must solve a problem for people who are ready for your solution and willing to pay for it.
So you have two options, be good at making people want to spend money on something. This is pretty hard and a rare capability.
The other is to watch trends and catch what people want now, and be ready to deliver a product that does that....
What's written above is self confirmation that you are better than AI and that you will always have a job because you are better because AI can't build something that works. That stuff about convincing yourself you're building something useful is actually the easy question.
Punching yourself in the face involves telling truths that are incredibly hard to stomach. That you don't matter, that all your years of coding and your identity is about to be consumed by a machine that is superior. The fact that you still hold a rank as a software engineer right now is only because that machine is slightly worse than you. But as it improves, your role becomes meaningless. The life you built your skills around becomes meaningless. It is less about what AI is now and more about the trajectory of AI and what the current AI says about the AI of the near tomorrow. We don't code by hand anymore and this came about in less than 5 years since the popular rise of LLMs. Think about what the next 5 years will bring.
That is punching yourself in the face with reality^^
/usr/bin/vim on my machine begs to differ.
So when I say we don't code by hand anymore. I'm obviously not referring to you.
This doesn't even match with reality. I got laid off in January because of "ai" (scare quotes because it was really about the salaries of the US based teams being more expensive than the overseas teams, I think). I got hired at a new job with better pay within two months, and my team is still hiring software engineers, and we work on cutting edge stuff. And yes we use AI (tastefully), but nobody here expects it to replace them. Hacker News and twitter are a fricking echo chamber of the most obnoxious people trying to be "thought leaders", but it doesn't match my reality at all.
^ read what I wrote. I'm telling you the future, but you're talking about your current job. So there's no contradiction here. Your current situation FITS what I said. And my prediction of the future is the most likely out come.
>What even motivates you to write something like this
Because it's the most likely truth? It's the most probably reality. The god awful truth is like the sun. It permeates everything, it's rays touch everything and it's a very obvious flaming fireball in the sky, yet nobody can stare directly at it. No one can fully face the sun.
I ask you, What motivates you to lie to yourself? To deny the obvious trajectory of AI? Does preserving your livelihood involve denying reality?
Also, what would even be your motivation for telling me my life is meaningless? Like, what's your expectation here, that I lie down on the ground and go "welp, why even bother".
My opinion is that the only people proposing a narrative like this have a direct financial incentive from the AI companies. I see no other value to promoting this narrative.
What's bizarre is that you attributed "inevitable" to what I said. I never used that term. Most probably and most likely is the more accurate term. The best possible odds according to the information we have and that is the trendline progression of AI for the last decade is that it will become better than us.
>Most people HATE what's being proposed. Why wouldn't you fight against something this shitty?
I'm not fighting anything right now. I'm just communicating. With truth. Whether I'm against AI or for AI or whether I want to fight AI is orthogonal to OBJECTIVE reality. I am simply communicating truth.
>Also, what would even be your motivation for telling me my life is meaningless? Like, what's your expectation here, that I lie down on the ground and go "welp, why even bother".
Because it's true. Whether you lie down after hearing the truth or attempt to lie to yourself is your prerogative.
>My opinion is that the only people proposing a narrative like this have a direct financial incentive from the AI companies. I see no other value to promoting this narrative.
I have no financial incentive. In fact I stand to lose everything just like you. The difference between you and I is that I have the ability to stare at the sun.
You must have a different definition of most of the words you used than I do.
I’ve had this sense about AI for a while now and this articulates that feeling far better than I’ve been able to.
Who is responsible for this mess? ;)
Cloud was like this too. You spent all this money as a startup with AWS regardless of whether you made a dollar or not.
I mean, this is true of literally every thought I have.
How many pointless imaginary arguments have you won? Maybe it had some benefit, but it was probably mostly unproductive thought. Time spent, calories burned, that would have been better spent elsewhere.
How many random side experiments or "Guess I'll just try" moments ended up defining your career, or life? People meet their spouses this way, and land their first real job.
It's all just flowing out of darkness... Nobody knows where it comes from. Nobody knows where it goes. Nobody knows what works. Nobody knows what fails.
But I'm not so naive to brush off tangibilities that unfold before my very eyes.
That's where some of us draw the line. You have to know the difference between reality and "unreality", or myth. That goes both ways