I spent multiple 5-hour sessions spec-ing my climbing app with AI, clarifying interactions, algorithm, workflow etc. It ended up a frankenstein that I didn't recognise or know how each part interact with each other. Command line were a mess, different commands doing the same thing, with similar but redundant arguments. Everything looks kind of doing what I intended but overly convoluted and nothing really works. Real progress was made when I actually dig into the documentation of colmap/OpenMVS (essential tools, which I had never used before, in my workflow).
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.
It's very difficult to keep AI focused, when it barfs out 3 pages of reply in response to a one-sentence prompt. It's sort of its nature for some reason, it's very impressive if you've never seen it but it's exhausting to use for very long. It's like a very eager assistant who doesn't have enough experience to understand scope.
I think the mistake there was the 5 hour session specing the app. It's so hard to know what you want before you see it, so optimize towards seeing it as soon as possible. That's what I thought the article was going to be about based off the title.
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.
It sounds great for prototyping. Once you do a month's experimentation in a day and generate some shit app that barely works, but looks functional, you have a definite goal to recreate that design but working properly.
I find the more structure that the AI can be given to follow the better. I recently tried building a side project with Elixir, Phoenix & LiveView but on the recommendation of somebody I decided to have it use the Ash framework within it.
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.
> And I think that’s the biggest danger of AI. You convince yourself that you are doing something useful when you are not.
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.
I agree with your overall sentiment, although maybe the article and this sentiment more generally are going a little bit overboard with the skepticism/negativity.
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.
It’s a nice quote.
But what about the notion that we’re always believing in something, and sometimes those beliefs tune closer to something objective but if we keep tuning past that into something else, then that reality becomes hard to conceive of and really does seem like it’s gone 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 :)
I have found that it gets some of the "cruft" out of the work, freeing me to do more work.
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.
Yeah I have found that AI in general has a procrastination nullifying effect.
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.
"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 opposites.
> "Having the courage to go on when nobody believes in you"
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.
Not if you're perfectly able to differentiate which things will eventually succeed rather than will always fail! The best strategy for "winning in the age of AI" is "be able to predict the future with perfect accuracy", which at least anecdotally quite a lot of people lately seem to think they are able to do lately.
Probably not so different from past hype cycles, except maybe this time it will be different!
No, they're actually the same thing: making an honest assessment of reality. In the first case you're doing so to prevent self-delusion. In the second you're doing so to prevent others from clouding your judgment.
> Who can punch themselves in the face with reality the most? This is who will win in the age of AI.
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.
Such a great synopsis. The things that are easy to signal (landing page, presentation deck, logo, etc) have never been the make-or-break aspect. The part that's always been hard, that remains hard, is that a business must solve a problem for people. Even B2B is solving business problems for specific people. And people are a difficult, difficult problem to solve.
My previous business failed. Everything we built was useless. 2.5 yrs.
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.
Is it really? Most startups don't seem to solve anything for anyone, not really, but they do enough to get investor money, using pitch decks and logos and landing pages, and the founder gets paid from investor money while the product collapses, which seems like a success for the founders to me.
> If all you know is how to build, and you just use AI as an excuse to keep building more and more and more, you are just procrastinating and avoiding reality.
I’ve had this sense about AI for a while now and this articulates that feeling far better than I’ve been able to.
Nobody. We're just here. Mentally healthy human adults have ways to avoid thinking about the terrifying reality of infinite potential being restricted by a finite lifespan of decay, but not everyone is mentally healthy all the time.
> I have seen way too many startup founders delude themselves into building more and more for months without a single conversation with a real user
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.
No this isn't punching yourself in the face. Not for swes.
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^^
I spent multiple 5-hour sessions spec-ing my climbing app with AI, clarifying interactions, algorithm, workflow etc. It ended up a frankenstein that I didn't recognise or know how each part interact with each other. Command line were a mess, different commands doing the same thing, with similar but redundant arguments. Everything looks kind of doing what I intended but overly convoluted and nothing really works. Real progress was made when I actually dig into the documentation of colmap/OpenMVS (essential tools, which I had never used before, in my workflow).
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.
It's very difficult to keep AI focused, when it barfs out 3 pages of reply in response to a one-sentence prompt. It's sort of its nature for some reason, it's very impressive if you've never seen it but it's exhausting to use for very long. It's like a very eager assistant who doesn't have enough experience to understand scope.
I think the mistake there was the 5 hour session specing the app. It's so hard to know what you want before you see it, so optimize towards seeing it as soon as possible. That's what I thought the article was going to be about based off the title.
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.
It sounds great for prototyping. Once you do a month's experimentation in a day and generate some shit app that barely works, but looks functional, you have a definite goal to recreate that design but working properly.
I find the more structure that the AI can be given to follow the better. I recently tried building a side project with Elixir, Phoenix & LiveView but on the recommendation of somebody I decided to have it use the Ash framework within it.
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.
> And I think that’s the biggest danger of AI. You convince yourself that you are doing something useful when you are not.
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.
I agree with your overall sentiment, although maybe the article and this sentiment more generally are going a little bit overboard with the skepticism/negativity.
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.
This quote from Philip K Dick seems relevant:
Reality is that which, when you stop believing in it, doesn't go away.
It’s a nice quote. But what about the notion that we’re always believing in something, and sometimes those beliefs tune closer to something objective but if we keep tuning past that into something else, then that reality becomes hard to conceive of and really does seem like it’s gone away.
Love it.
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 :)
I have found that it gets some of the "cruft" out of the work, freeing me to do more work.
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.
Yeah I have found that AI in general has a procrastination nullifying effect.
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.
"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 opposites.
> "Having the courage to go on when nobody believes in you"
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.
Not if you're perfectly able to differentiate which things will eventually succeed rather than will always fail! The best strategy for "winning in the age of AI" is "be able to predict the future with perfect accuracy", which at least anecdotally quite a lot of people lately seem to think they are able to do lately.
Probably not so different from past hype cycles, except maybe this time it will be different!
There's a difference.
The first is getting market feedback.
The second is just getting opinions.
Not quite. Optimism about where you are going doesn't conflict with being able to accurately assess where you currently are.
It does require you to think carefully about what constitutes validation or invalidation of your ideas, though.
No, they're actually the same thing: making an honest assessment of reality. In the first case you're doing so to prevent self-delusion. In the second you're doing so to prevent others from clouding your judgment.
Not really. You can be honest about something working and others can disagree with your assessment.
> Who can punch themselves in the face with reality the most? This is who will win in the age of AI.
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.
Pain is a powerful teacher. I have grown the most when I hurt.
If 90% of tech startups failed in the past, AI pushes that that rate to over 99%.
Cloud was like this too. You spent all this money as a startup with AWS regardless of whether you made a dollar or not.
Such a great synopsis. The things that are easy to signal (landing page, presentation deck, logo, etc) have never been the make-or-break aspect. The part that's always been hard, that remains hard, is that a business must solve a problem for people. Even B2B is solving business problems for specific people. And people are a difficult, difficult problem to solve.
My previous business failed. Everything we built was useless. 2.5 yrs.
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.
Is it really? Most startups don't seem to solve anything for anyone, not really, but they do enough to get investor money, using pitch decks and logos and landing pages, and the founder gets paid from investor money while the product collapses, which seems like a success for the founders to me.
> If all you know is how to build, and you just use AI as an excuse to keep building more and more and more, you are just procrastinating and avoiding reality.
I’ve had this sense about AI for a while now and this articulates that feeling far better than I’ve been able to.
>Figure out why you were put on this earth.
Who is responsible for this mess? ;)
Nobody. We're just here. Mentally healthy human adults have ways to avoid thinking about the terrifying reality of infinite potential being restricted by a finite lifespan of decay, but not everyone is mentally healthy all the time.
I feel bruised
Same
> I have seen way too many startup founders delude themselves into building more and more for months without a single conversation with a real user
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.
Hence marketing in making people want 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....
Reminds me of the part in "Silicon Valley" where they launched and couldn't figure out why no-one (except engineers) became real users.
No this isn't punching yourself in the face. Not for swes.
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^^
> We don't code by hand anymore
/usr/bin/vim on my machine begs to differ.
"Nature cannot be fooled"
Click biat. Sorry.