We should be more ambitious with the software we build
danluu.com366 points by ltratt 11 hours ago
366 points by ltratt 11 hours ago
Would love to see the author actually go deeper into details: what did they eval with models implementing zstd?
Many such cases are benign in the sense they in practice are simply the model basically "git clone"-ing the code they need to complete the implementation.
The amount of recall and synthetic data slop makes it imho very hard to actually get the models to really do something more novel (where they fall apart more often)
Agreed. I started writing a desktop GUI harness in Rust using native desktop GUI APIs.
Claude, Codex, Opencode, everything is Electron. With agents and solid engineering fundamentals, I set out to prove that we don't need to take that shortcut any more and we can, in fact, ship high quality/performance applications.
It's still early days - but I got something basic working. I've embedded the Goose harness as a back end and am using the UI framework used by the Zed editor.
https://github.com/alshlabs/quill
I'm keeping the source closed for a little while. Also if anyone from the major labs is hiring, hihi, I make quality things.
Also I'm aware that this is a rip off of vscode's design. I like their UI, lends itself well to projects and so on. In a different life I might have ported vscode to Rust - but no one uses IDEs any more haha
Our processes around software should come first.
A lot of the AI discussion seems to be focused on what these tools mean for an individual developer, but in a team setting any gains are at risk due to coordination tax and ideological friction. In my experience the ideological friction is most of it right now.
Figuring out a way to accelerate the process in light of the code writing bottleneck being removed is essential. I've observed a development team regress back to fully manual development because their daily PR/code review process is too slow. It doesn't matter how fast you write code if you can't actually merge it and ship it to the customer faster too. PR stacks can only take you so far before the conflict monster gets too big to fight.
I don't think AI can fix the process, ideology or people issues. I've seen how long an average PR review actually takes. If these employees were simply doing their jobs at all we'd be 10x better off regardless of AI. A truly skilled developer who makes a genuine attempt should be expected to solve 99% of their tasks within the same business day as of October 2026.
Burning down the backlog to zero doesn't mean the development team will be subsequently laid off. Quite the contrary. It will create a vacuum that the business will fill with new work that may incidentally increase the developers' compensation packages. No one is laying off the development team that just chewed through 50 items per day for 3 straight weeks. Who would support all the potential bugs they just created? That's right. They might hire even more developers. This is called a "win-win" scenario. Not every game must be zero sum, but I understand rejection of this possibility to be part of the aforementioned ideological issues.
>I've seen how long an average PR review actually takes
This was a problem well before AI, but it doesn't get talked about enough because so many developers are hooked on the power trip they get from making people waste time on crap that has no relevance to the user.
> power trip they get from making people waste time on crap that has no relevance to the user.
In my experience, this has been senior engineering leaders and project managers more than anything.
More than ambitious, I can now build things I had no time for but had the idea and architecture in place since long. A cool side project for me recently has been to allow reading more than books on my Kobo reader. I built an SDK and apps that allows e-ink apps with sandboxing and permissions model, auto-updates, shared capabilities etc. to be built for Kobo https://github.com/BandarLabs/Cobalt
I think it's worth remembering that outside of our bubble the quality of software is pretty bad. I had a Hitachi heat pump (not recommended) installed earlier this year, and the software is pretty disappointing. It mostly works, but there are so many undocumented features and hard coded values that should be a configuration option but are not.
For example when the heat pump reaches the target temperature it shuts off, then after 3 minutes switches on again. To prevent short cycling, I'd like to decrease the time between runs (so increase the 3 minutes) but that can't be changed. Somebody decided that 3 minutes is the correct value for everybody and that's it.
I bought a €400 interface box (basically just a serial to IP interface, I guess $20 of hardware tops) to try and improve it. The €8000 heat pump doesn't come with WiFi or ethernet out of the box, you need to buy an accessory for that. It's not made by Hitachi, but it's an officially recommended accessory. One of what feature I wanted it for - which is advertised in their marketing materials - doesn't work.
I emailed them, and they said it's probably because the display I have is a newer revision and doesn't allow access to the setting I need to turn on. And without turning that setting on I can't use the feature as advertised. They said I should email Hitachi and talk to them instead as it's not their part that's the issue.
I look forward to the world where all software is either open source, or at least reverse engineerable to the point where you no longer have nonsense like this.
Technically AI makes it much easier to reverse-engineer software, so long as the guardrails don't randomly kick in.
Should’ve bought a Panasonic. Everyone knows Hitachi sucks for programmability hardware is good though.
We should be more diverse with the software we build.
Any prompt jockey can make a faster ripgrep. The spec is "faster ripgrep".
What is the one thing that only you can specify, where your competitive advantage is maximized? Find that thing and pursue it with all your energy!
With every new model I've been attempting to build something that takes at least 1 month and really pushes the model. So far I've done:
- Python interpreter in Rust (fail): https://github.com/BlueBlazin/pyrs
- Low-poly Google Earth like engine (success): https://github.com/BlueBlazin/lowpolyearth
- Codebase -> 2d infinite-zoom visualization (success): https://github.com/BlueBlazin/blockviz
I have never understood or liked all the obsession with one-shot builds.
I’ve built a retro operating system and programming environment for ESP32 microcontrollers called BASIC32.
I took it to 39% complete, as a language, over 8-weeks. Then, I spent just 50 minutes describing all the missing parts and it finished the language in 1-shot. I didn’t think it would work. It did.
I used Opus 5.5 on a $20 plan and I didn’t even hit my limits.
I have a feeling that the 39% served as a good framework for the LLM to work on the remaining part while keeping it consistent with the existing structure and style. So, in a sense, your 8 weeks are a big part of why it succeeded.
Yeah I've experienced that at work. I see a lot of comments on here saying you can't one shot features in real world software, but we do, and yes we still have a human review the code with a high bar.
But we've also spend a lot of effort over the past year and a half to make the codebase and tooling more approachable to LLMs so they know how we like to do things and follow our standards.
I used Fable 5.1 and Opus 5.5 to build a Python interpreter in Rust. Appears to pass all the 3.12 code I throw at it.
To get a toy version that can run most things takes under 2 hrs. Half of that time is collecting the tests you want to pass, how it should evaluate the code, what your criteria are, etc.
I wouldn't be surprised if "re-write Python" is in the training set.
You can also consider that open source version of RustPython existed 6 years ago and probably in all LLMs dataset
This sort of ‘it’s probably in the dataset’ thinking is a bit of a relic from the ‘stochastic parrot’ era of LLM critique.
Reinforcement learning doesn’t work by training an LLM on a series of inputs like ‘rewrite python in befunge’ paired with a prepared model implementation. It doesn’t matter if an open source implementation was in the dataset that trained the language model. All it got from that was an appreciation for syntax and language idiom; when it is generating code it’s doing so according to the approaches and patterns that it’s been reinforced into following in the context of a coding prompt - regurgitating existing codebases is undesirable so it is a behavior it will have been reinforced against.
CPython is in the training data, but this was a tree walking interpreter, so it wasn't just regurgitating cpython. I capped it as 1000 lines for the first 20% of the project, it is currently 13.3kloc and 575k in a single file.
The 'blockviz' is same kind-of project i tried to create as well (c4 level model zoomable etc.) so i was surprised to see same kind-of project popup - but this is I think also an 'issue' with these model-created-software.. when you reach'your' vision its already done: for example I clicked on the github link, expected a clear About Install Faq kind of README.md but all I get is the model-created explaination :) can't just download some app and use it without friction. I see this a lot.
I’ve also been exploring a visual way to understand a code base and have explored turning it into a virtual city.
https://app.preview.craftspec.com/app/city/
This whole thing is just a proof of concept, and needs a mouse to interact with.
It’s incredible what AI has made possible with experimental projects that would require months of coding.
That's a really cool concept! I hit a bug where there were two things labeled "processing" and then it jumped to the wrong one when I clicked it.
yeah, one-shot (medium-large) builds just don't seem to give me good results yet. I use them now for small examples though, e.g. for visualizing a process. Most recently I used it to visualize neural networks, and how convolution works. That might not be something most people need, but it really helped me.
Hah, found someone else also using it for visualizations of algos! I've used it to show me how quad-trees[0] work and I'm impressed with the results. One-shotted too so I agree one-shots are best for this kind of very specific scenario.
> I've been attempting to build something that ... pushes the model ... never understood ... one-shot builds
Same, and I have found some of the failure modes in the realm of eyes free coding and limited auditing. I often see it more as pushing the process than the model, as I tend to bounce around models for the benefits diversity provides.
Have you also found there is a point where they hit code complexity and start churning without progress? (at which point you have to step in to help the bot step back and think big picture, which usually takes a few sessions)
Yes! I absolutely have! And I've been thinking a lot lately about how to prevent them from collapsing into this state. It is getting better with newer and better models though. But yes, there comes a point when the codebase size and complexity crosses a threshold and we enter a churn state with very little progress.
I was motivated to make the codebase visualizer linked above to help me understand how the various pieces of the system that is being vibe coded connect with each other.
Now I'm thinking about how I can build something similar for agents. How can we teach "systems thinking" to a model?
Have you seen this with Opus 5.5?
I've been mostly working on very large modeling projects (think detailed architeture over 1000 acres) or animation because this really was the "new" capability area that Opus 5.5 "unlocked".
I have been surprised how well it has worked at scale with many sub-agents. However the code base is limited to the rendering engine mostly.
Certainly in the older models they hit a complexity limit, but I haven't really hit it with Opus 5.5. I have had it make data flow designs that I didn't like because they were more complicated than it should have been or the perenial problem of trying to make everything backwards compatible when working on greenfield refactors, but I haven't seen it choke on a code base yet.
Yes, I've also hit it with Opus 5.5, but on way fewer projects. My long standing projects that I marked as failed/to-soon with 4.8 have entered the grey area of slow-progress-with-handholding like smaller projects did in the past.
To my experience, it's a simple complexity curve where the first bits go fast and the speed goes down very fast once you reach a certain level of complexity. Size doesn't matter as much as complexity: with the right foundations, it keeps zooming through it. Now I do wonder how much my inexperience in the complicated project is a brake on progress vs. it just being a hard to tackle problem.
My sense is the limit is more tied to the problem than the code base size. I work in some very large code bases, but it's not an issue because the nature of the problem (think what a standard SaaS would need).
On the other hand, I have a TS only project core is sub-20k LoC (NES harness), where it is struggling (for now, see other comments)
I just have it constantly update real-world analogues for keeping track of everything. I have it create guides, note cards, flowcharts, running to-do lists, etc. with every change.
It helps us keep track of things, why not AI, too?
> How can we teach "systems thinking" to a model?
I've been working on process more than model. Similar to having a PR review team, you need multiple teams or processes that run over the code, markdown, assumptions. I still don't think this is enough.
I'm working on an NES harness, and the agent was churning with detecting certain state changes like dialogs, menu navigation, screen change. The bot and I got churning and I put it down for a while. A few days later it occured to me to ask the bot "Does the emulator and game state change with frames? Can we just get the state each frame rather than trying to be clever about it?"
It said yes, but added some nonsense about being performance hindered... (flash model). I haven't worked on it again yet, but my intention was to next have it build a small recorder based on this so it can get frame accurate game state change.
This is just a long way of saying, sometimes you have to step back and help them help themselves. They have a really hard time with recognizing ambiguity or how to determine lack of context that could be filled.
This statement stood out to me.
> I have a similar thought about "there's no reason for software to be slow" BTW; in many cases, if you use AI to speed up some flow, you will add a bunch of messy code that will be overfit for the use case you tested on and will neither generalize, perf-wise, for all the use cases you should care about, nor will be maintainable upon future changes.
LLMs have hardened hundreds of apps where I work.
Maybe it's a language-specific thing. Most of the time, in Java, LLMs take into consideration tradeoffs (especially if they are part of the initial prompt) and actively explains them. It generally won't make messy workarounds, without a lot of extra prompting forcing it to do so.
Ofc, if you have:
- Functional tests - you'll be able to see it in the execution times of specific APIs
- Stress testing - performance profiling is the most important output artifact
> Maybe it's a language-specific thing. Most of the time, in Java, LLMs take into consideration tradeoffs (especially if they are part of the initial prompt) and actively explains them. It generally won't make messy workarounds, without a lot of extra prompting forcing it to do so.
Claude in its current Opus 5.5 form has made some wild reaches in response to reasonable-seeming prompts. For instance: "this error is getting swallowed, make sure the real termination message exposes the root cause" -> discovering that the issue is actually in a third party library that isn't exposing the original error except so through logs, so doing some hackery to inject a log-capturer that gets the stdout, buffers it, and looks for the message in order to re-throw based on that...
And it can demonstrate that working, but it's added some fragile and/or unintended consequences like (a) string matching on a particular WARN log message of a particular version of the lib, and (b) buffering those logs such that there were now cases where they would never make it to the actual output stream before the program terminating.
It's certainly capable of being used smarter than that, but it's also really easy to end up with messy fragile stuff if you get lazy about reviewing the output.
> "this error is getting swallowed, make sure the real termination message exposes the root cause"
Without judgement, I think this illustrates a fundamental objection the anti-AI crowd raises.
The example prompt requires no understanding of what's happening, before suggesting action. Where I work, process requires that a PR review for a solution, has to have a corresponding explanation of why, or it's marked needs work
I don't disagree.
I think there's some nuance here though between "fully anti-AI" and "be careful with that power saw."
That example I mentioned didn't make it to production. It got noticed and fixed more properly by the person who submitted the first prompt before it even went to PR.
But a lot of times things in that same vein can be solved sufficiently with a "dumb" prompt like that, so a one-line prompt to get a PR drafted in the background for the dumb stuff can be a pretty good time saver.
The art is not skimping on your attention to the bigger or more important stuff so much that all the time you save on first getting code written is lost by cleaning up stuff like that...
I used Opus 5.5 to figure out that a language model we were serving at work for internal use (we don't really serve models, we only use this internally because it processes sensitive data that we can't send to external endpoints) was being bottlenecked by CPU contention on tokenization, by having Opus run in an autoresearch style loop.
Opus's first proposal for a fix was to spawn multiple Python processes and build a load balancer between them in Python. At first I asked it why it wasn't using haproxy and it said that haproxy would be an added dependency and that the overhead for this kind of thing in Python would be negligible. I knew this was idiotic but wanted to test this out, so had Opus run two experiments in parallel. Sure enough an haproxy load balancer was much, much better on HTTP load balancing than Python code was.
This is the kind of thing that if you're unfamiliar with how networking code works, the models can autopilot into bad decisions that are verifiably correct (higher throughput than the original CPU-bottlenecked implementation) but much short of best practice.
Surely I'm not alone in finding it disturbing how little regard people seem to have for the use of energy.
I don't think you can conclude that nobody cares about it just because they don't constantly mention it.
In any case, I don't think the lack of caring about CO2 emissions is unique to AI. How many people care about Trump's war on green energy? Not many it seems.
LLMs are great for being nerdsniped. I started work on walshadow (reading pg wal into clickhouse) to demonstrate the project's infeasibility, but pieces started coming together into something reasonable & order of magnitude faster
The project would've been impossible for me without LLMs. & even with them there's an argument that this project is pushing complexity limits too far. But at least with ETL there's a clear feedback loop to build on
Thank you for introducing me to the word "nerd-sniping"[1].
This is, as you say, exactly the paradox of having ourselves assisted by LLMs. We are no different from our cats. Except imagine the cats start making the laser lights for themselves.
Yup.
I am currently throwing a lot of tokens exploring various theories of speeding up matrix multiplication on Metal.
If you won't be ambitious why do you assume somebody else will?
We should be more ambitious, but we need to learn how we can be ambitious with AI, and what value we can create.
AI can take us from 0 to MVP in a prompt. It can fill in gaps of knowledge and allows someone who knows half of the stack to build the whole thing nearly seamlessly. These are superpowers but don't by themselves lead to new products.
What AI cannot do is remove the world of complications that happen after the MVP - product feature tradeoffs and choices, how to handle integrations and customizations, how to serve multiple types of users, how to communicate and market the app, how to handle security and data storage, how to deal with customers and bugs, etc. All of these need to be considered and acted on by a human in some fashion. AI can help with each concern but can't solve them without understanding the concern and determining how to frame it in a prompt.
This is why we have a glut of amazing demos that go nowhere while we figure out how to build software differently. This will take some time and I imagine the result will be software heavily-structured with a bit of AI reasoning woven throughout, not an army of agents and sub-agents burning infinite tokens.
Right, but this is the most hopeful imaginable prediction: AI accelerates everything, but everything good is still mediated through taste and expertise, so being a (say) skilled systems engineer is important and rewarding, just with all the tedium distilled out of it.
There's a less hopeful outcome, where no skill is needed at all, because every conceivable thing is one-shot-able from a SOTA model. But then, at that point, you're saying something pretty profound about computer science (roughly: that there was no meaningfully more sophisticated and complex place to go from where we are today).
My wife is not a developer at all but is highly analytical. I find her a better software architect than most developers I met.
I suspect there are a lot of people really good at “systems” - there are a lot of really clever folks out there - that did not go through the proper CS rituals and are thus shunned but in fact can take over your job in no time especially with AI.
My wife regularly gets pushed away by “IT” at her work and unlike others she pushes back, but they don’t like her. They start talking about db clustering details etc as if that has any bearing on anything. I am a dev, I know she doesn’t know what logical replication is, but I do know she can replace their team. She just needs one technical person to keep an eye on things.
I suspect we will end up with just a handful of building blocks like “this is how data is siloed, secured etc”, “this is how dashboards are made here”, “this is how email is handled”, etc and employees with AI just develop their own stuff on top of these. The “devs” just oversee the building blocks and the overall soundness of the flow. Don’t know how many you need once that is standardized..
That’s something that I have been thinking about for a while now. Even prior to LLMs, many large companies have essentially been iterating on the same half a dozen ideas over and over again and there doesn’t seem to be much new coming out even post LLMs.
The most recent new things that LLMs have unlocked (regarding software dev) for us is reverse engineering and combining old games, unearthing decade old vulnerabilities, and helping root and debloat consumer hardware. Which are all cool and useful, but none of it being a “next great thing”.
Perhaps LLMs are really doing is highlighting how the software industry was already nearing its economic maturity and this just shifted the timeline from 2040 back to 2027-2030.
Don’t forget we don’t live in a pacifist utopia. Companies don’t work on the same ideas just because they think they can make it better.
Companies work on the same ideas because they want to own IP, data etc. and then charge money.
The other way around they work on the same ideas not to be charged by others and control their business.
“software industry” is not some big happy hippie family. Patent wars, browser wars, OS wars - well we get a lot of open source for free but that’s not the norm.
I have yet to see LLMs do well “autonomously” on anything that doesn’t fall into any of these 3 buckets:
1. well specified
2. well tested (which is a form of spec)
3. represented in the training set (i.e. not built on a corpus of human developed examples)
For example, a lot of the compiler porting efforts fall into all 3 buckets: compilers are well specified (there is a set of valid inputs and an expected behavior), they are typically well tested, and as a bonus, in a way that is implementation agnostic thanks to the clean interface (think: integration vs unit tests), and are very well represented in the training set.
and yet some OSS (projects not really known for 1 and 2) multiplied change velocity the last year, implementing features via what is essentially vibecoding.
If you look at that, this approach is producing a pile of slop, where one LLM implements a feature, two weeks later another LLM spots an edge case and without much human review just crams in the code to fix that. Even at 1-2 months of that, those repos have significant changes and the commit messages get weird. I wonder what happens if the LLM won't spit out a fix anymore?
Will the human maintainers who started this process because noone thanked them and noone wanted to work with them on their bright new ideas just reset to the last commit they understand? Will they drop the project? The sunk cost for them is enormous. The time-effort required to fix the mess is gargantuan already. To me it increasingly seems that after the LLM industry robbed most humans of their collective labour output it will now rob them of labour aka time as well. Some people (like you and me) seem to notice that but most just go on and essentially spend away their life on machines now. I guess the problem is that most of these people have been severely cut off from using their own agency.
You can "solve" 1 and 2 by N-version programming. Have the same code implemented twice, or more times, you get free error testing by fuzzing or running replicas in shadow mode. In order to make replicas maximally different choose a different language, framework, agent harness and LLM.
There remain some nitty details related to tracking randomness and choosing what interfaces to log. But even having your code testable by replicas would help organize it better and expose different assumptions made by the language or library stack.
When you get different outputs from replicas it can be 1. one of them has a bug, or 2. the spec is unclear -> fix the bug or the spec. So this method catches both sides. It also might be faster than traditional code based testing, you can build replicas in parallel. A replica is an open ended test, unlike coded tests it can be tried on open ended input values.
The core idea is that it is easier to implement twice than to imagine bugs. We already solved implementation, but bug finding means running code in your head, it touches the halting problem issues - can we really imagine behavior from code? I don't think we can do it well. That is why we should just make replicas instead, tokens are getting cheaper and cheaper by the month.
I had an LLM tell me that I mattered once, which I know for objective fact is not represented in the training data.
Honestly I think you're on to something, as by far the most novel and interesting use cases I've seen for LLMs in general are mostly around reverse engineering things, especially if you can hit it with Ghidra, but honestly anything that can feed some sort of data and control back to a model.
> the software industry was already nearing its economic maturity
What I'm sensing is something I might describe as the Oligarchy reaching the point of significant societal pushback, like the labor rights movements that ended 80 work weeks, unsafe conditions, and child labor in factories (i.e. The Jungle).
My hope is that we can use this moment in human history to break the user tracking and targeted advertising industry. It's been so harmful to humans, but in doing so, we will likely break a major revenue source that supports our well above average salaries. I still think it should be done.
What indications do you see of significant and effective societal pushback?
I would love to believe this but I don't see it yet. I see a lot of anger in some circles, but I also see the machine marching on as normal.
What would be funny with LLMs, having been purposefully trained to be the best software creating things on earth, wind up inadvertently making software virtually valueless (because it can be made and copied so easily) and undermining the value of the companies that proliferated their use in the first place.
> What would be funny with LLMs, having been purposefully trained to be the best software creating things on earth, wind up inadvertently making software virtually valueless
This is the world the accelerationists are trying to create, is it not? Fully automated luxury space communism through AI solving all earthly problems.
We're just unlucky that software is one of the first moats to fall (alongside the humanities), because it doesn't require developing novel ways for the AI to interact with the real world...
We'll have to separate the hardware providers from the software providers, which I'm growing more fond of. The US Ai stack is largely a vertically integrated cartel.
> but everything good is still mediated through taste and expertise
I'm reminded of https://archive.ph/a9Cli (ns;nt)
I haven't yet seen any significant products made with AI that are at least used long-term. All these browser demos, from the Adobe killers to Star Citizen, are just bells and whistles that I close after 30 seconds of use.
I enjoy this quote from Antoine de Saint-Exupéry:
"Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away."
And I feel that sums up my feelings on AI this and that. Just as the wood and clay contain the sculpture within and it's the artist's duty and privilege to reveal that. So, is elegant software exposed from the conceptual mass, rather than built up.
The AI zeitgeist currently is 'how many features can I add' because we've tied self worth to work output instead of some other more personal or human rubric. AI will happily pile more and more and more code on your plate because it's a buffet. It's gone through reinforcement cycles guiding it to add whatever feature you ask. There is no training for elegance or careful considered design. Nobody is teaching this generation of LLM restraint.
The safest code is that which never runs. The most elegant feature is that which is not necessary.
"The safest code is that which never runs. The most elegant feature is that which is not necessary."
I assume you run GNU Hurd as your OS? ...
In general I very much agree to the quote of the Little Prince's creator, but I am not sure if we mean the same by it, because you seem to value code elegance more than adding useful features?
Now "useful" does the heavy lifting here, but my point is a useful feature is useful, even if it is achieved by the most ugly unmaintainable code. And what counts as a useful feature will depend on who you ask, but in general you should ask some users. (They don't care how the code looks)
And sure, they do not enjoy a pile of garbage of new features that only work sometimes, but managed to destroy their existing flow. But "Nobody is teaching this generation of LLM restraint" this is hyperbole and up to each developer. There is no need to let the AI run on auto for hours, this is only one way how to use that tool. The other way is, you make the design yourself - and let the AI implement it.
> The safest code is that which never runs. The most elegant feature is that which is not necessary.
Yes, but the most useless software is that which doesn't exist.
At some point, you actually do have to write some code and add some features, or else the most satisfied client is the one who hired your competitor.
Agreed. Been experiencing this firsthand with an app I've been building myself. Vibecoded a working prototype ridiculously fast but then came the optimization issues. Since mine is very hardware dependent every different brand, oem stack, processor, video card, and every little thing changes how my app functions and a lot of it isnt even documented properly. Now AI is still very useful here, but you actually need to know what even to ask and fix in the first place
There have been a few vibecoded projects I've considered hosting on my home server, but it seems as if each of them doesn't understand when to stop adding new features.
They keep adding features that are outside the scope of the original project, without refining or polishing the original concept.
My interpretation of "be more ambitious" is not only give it harder problems, but be more creative about what you ask. The problem is that most of the MVPs that people ask for a boring and lame. AI can help us make things that blow your mind, things that we would never build because they don't make sense, but the cost models for code generation have changed.
> AI can take us from 0 to MVP in a prompt.
If you're being ambitious enough, you shouldn't be able to there in one prompt. Ambitious work with AI is done 24/7 for months and guiding it continuously, because it's not good enough to work autonomously for that long without going off the rails.
I think there are many of us working on projects with LLMs that'll take months more to reach full production. These will feel very out of left field and we'll have another paradigm shift. I think the real momentum will hit when more of us leave the dull products we're working on, start our own companies, and build the products we're actually excited about.
I encourage everyone else to at least build a privacy first version of a product you actually like.
I don't think the centralized internet will survive this change. We can build something much better.
I think you underestimate how saturated the market is for both content and software.
I think there’s a lot of markets which have been very underserved for a long time which will benefit. One example is embroidery machine software. The proprietary options cost hundreds to thousands of dollars and are slow and ugly. The open source option (bless the people who have worked on it for free) is suboptimal.
With AI we could build top quality free open source tools for every niche.
In the retro gaming handheld space, we are seeing brand new highly custom “distros” show up to suit the plethora of hand held consoles in different shapes and sizes coming out. This is all enabled by AI, a human developer could have built this, but it would have taken ages and we wouldn't have so many options being build.
Yup. Know people with 100m+ exits and I can't even find 10k in funding
All of a sudden nobody is interested in actually using the web now that it's so easy only for doom scrolling exclusively
I get what the author is saying, but his examples like "a ripgrep fork that ... is faster for my codex ripgrep workloads" don't strike me as particularly ambitious.
Perhaps we should be more ambitious in the types of problems we try to solve, and the types of value we try to provide with the software we build.
Amen to that. I was surprised to see yours seems to be the only comment with this sentiment. This post was kind of depressing to read. Like if AI is so amazing and can one-shot so much astounding stuff, why is anyone wasting their time on pointless "projects" like making ripgrep faster?
Because it can cut their total time by double digit percentages?
Both your comments there seem to latch on to a detail and miss the context totally. Ambition scales with the number of "small" things you can get done too.
you don't like the ads, gambling apps, and similar? /s
What might help is non-software-first companies valuing developers and engineers more, enough that we could earn a reasonable living which building actually cool things. Not sure how the economics works out on the other side. Can these companies make enough money to support this vision?
One major obstacle is developers have either encountered or created entire ecosystems of problems they can't solve that get inherited whenever and wherever software is introduced. Proposing to add evergreen issues around security, data entry and retention, connectivity, vendor lock-in, and update cycles is frequently a shitty trade for whatever notional (often fictional) productivity improvement is being proposed by injecting software into a workflow.
The best software is no software at all.
My building recently added ButterflyMX and boy does no software sound so much better. This is tech company that tracks people as the move across real world properties and sells your data to the ad industry.
Do you mean something like "smart" appliances?
I mean they're an excellent example, but this is just as true for the overwhelming majority of B2B productivity suites I've encountered. Hell, digital cameras didn't improve photography, they just killed three industries and saddled just about everyone with data retention and migration problems and that's without even getting into the social effects of ubiquitous cameras combined with social media or the surveillance state they've made possible.
Digital cameras made photography more accessible to people though, even if they didn't improve it (in an artistic sense) directly.
Being able to take pictures at effectively zero marginal cost, and being able to see them instantly, both make it much easier to get into the hobby.
Holy non-sequitur...
I'm all about ending user tracking, targeted advertising, and gambling. We'll need to find new things to work on that do not use big data to take advantage of our fellow humans.
The note taking genre of opensource apps is saturated with many options but most of them are electron based.
I was hoping that someone with enough motivation and money for tokens would come up with a non-electron option that is similar to onenote, with free form note placement and handwritten notes.
Basically I wish there is an opensource app having good feature parity with OneNote. Thats a good benchmark to have.
A few years ago I was wishing the same, but I was wishing it for someone knowledgeable enough.
Today I wish the same, but for someone with enough motivation and tokens instead.
Don't get the wrong idea: I would be glad for a OneNote/Obsidian alternative that's performant. I just lament the days where I'd stare in awe thinking about the levels of wizardry one must get to in order to build something that I admire. Now the first thing that comes to mind is "I wonder how many tokens did this took them to make".
So by "more ambitious", people really mean "waste more tokens"?
Agreed.
I've been seeing too much "I've been coding for decades and what I've always done has be reduced to telling AI to do it for me."
and not nearly enough "I've been coding for decades and recently worked hard for months with AI's help to make something I would have never considered possible before."
Much easier to complain that you are bored than to step back up to high-effort with your new fancy tools.
Those were exactly my thoughts when deciding to write a new JS engine [1] written from scratch.
Having been a product and UX-focused dev for my entire career, I knew only the basics about parsers and compilers, but have enough experience to grasp where each piece of the puzzle fits, and how to evaluate them. At the beginning it was just a fun test, but it got progressively more serious; it now implements 100% of the latest spec, beats QuickJS in performance, and surpasses V8/JSC in test262.
It took me four months, and I imagine it would take me a single month to do it again - I’ve learned a lot. Someone who already knew what they were doing, and with the right orchestration, could achieve this in weeks at minimal cost.
I really think we are in for a cambrian explosion of software, enabling things that were just always a little out of reach before (like why can’t most of your devices really talk to each other, in 2026).
> from scratch
Beg to differ.
Please explain what you mean by that.
whichever LLM GP is using, there's undoubtedly mutliple JS engines' source code in the training data, making it not really "from scratch".
In the spirit of the latter, here's mine!
https://blog.stuartspence.ca/introducing-asteria.html
https://store.steampowered.com/app/5482440/Asteria_4X/?beta=...
To be clear, I've made large software and game projects over the years, but no way I'd have found the time to do a remake/enhancement of a game I loved as a kid from 1995 that has zero business case. Not without AI.
>In the spirit of the latter, here's mine!
To pile on, here's mine: https://github.com/linsomniac/apt-cacher-ultra
It is a robust, reliable cache of apt packages, with the additional goal of still being able to serve packages from the cache even when the upstream is down. This was started shortly after that DDoS of Canonical this past year. We've run apt-cacher-ng and apt-cacher over the last dozen years, but (a) it requires hand-holding about once a month and (b) it did absolutely nothing for us when Canonical was under DDoS.
I've put well over 100 hours of my time into it. Still running into a lot of people knee-jerk calling it "slop", but I've had 200-ish machines pulling from it for 6 months and it has worked way better than apt-cacher-ng.
I'm not really sure what to do with people who dismiss AI-assisted projects, while dehumanizing the 100 hours of my time I've put into it. I fear we're running the very real risk of both sides losing: the people trying to thoughtfully create with AI losing because of the AI, and the people avoiding AI losing because they can't keep pace.
To play devil's advocate, that sounds like the sort of uncomplicated thing that you could've manually vibecoded in 2020 without an LLM. What changed is that the LLM doesn't let you get analysis paralysis.
>manually vibecoded
What the fuck does this even mean?
You just write the code, don't stop to think. You only have to implement the very small set of requests that an apt client can make to an apt server. Probably "get package index" and "get package file".
Like za_creature said you can use a language more towards the YOLO end of the spectrum - more Go or Python or JavaScript than assembly or Rust.
Your commit history shows you had an issue of high background CPU use. You probably wouldn't have it in a manually coded implementation.
> you can use a language more towards the YOLO end of the spectrum - more Go or Python or JavaScript than assembly or Rust
You might want to change the way you phrase this idea. I think you meant that Go/Python/JS are more "YOLO-friendly languages" (you'll get into far less trouble if you write slop in them). My initial reading was the opposite. It sounded like you were saying the languages themselves are the slapped together garbage.
Assembly is most certainly not "YOLO-friendly", but is more YOLO.
It means that you use an interpreted language without checked types and have a `test` command that prints out "lol"
Building a procedural open world at the scale of a flight sim in UE5, in a month wrote 5k prompts, spent 40B tokens and will likely take at least a trillion more over the next year of full time dev work.
Big solo projects exist, they're just not coming out as frequently because of, uh, how time works
> "I've been coding for decades and recently worked hard for months with AI's help to make something I would have never considered possible before."
I think we'll see a lot less people willing to share if the end result is just to feed the machine no matter how they arrived at it.
Also, "ok, and now I've cloned your hard work overnight, no need for any decisions on my part, I just had my agent use yours and reverse engineered it and/or used it as an oracle. Why the frown? I thought you were in this for intellectual curiosity and exercising your creativity, not just stroking own ego, right?"
I think we'll see a lot less people willing to share if the end result is just to feed the machine no matter how they arrived at it.
I don't see why I should care about this any more than I cared about "somebody I don't like could read my code and learn from it" in the past. The frontier labs can generate or buy all the training data they need; not releasing your app isn't going to hurt them in the slightest.
I get not wanting to contribute to closed, commercial models. We need to hurry up and get Folding-at-Home style distributed community model training going. At that point, I’d be pretty happy if my projects contributed to improving community models. Even if commercial models benefited too.
It makes me feel actually sick that so many people can't separate their positive feelings about AI from people's misery (it must simply be "complaining"), and vice versa. As if both things can't exist, for some reason. It's a common tribalism problem, but it's been kicked up a hundredfold by AI.
Exactly. I feel both feelings simultaneously.
AI has essentially stolen my career from me. I _liked_ having to solve complicated problems with software, I enjoyed having to get into the nitty gritty to get things done. I never really cared that much about the actual business problems I was solving, so moving up a layer of abstraction to be some sort of bastardized product manager/architect does not scratch the same itch.
OTOH, for solving problems I care about, AI has been a god send. I can achieve things that I would have never had the time for.
Precisely. I have both feelings simulataneously. I am impressed by what it can do and horrified because I realize what it will do to the job market and society in general. Meanwhile everybody seems to believe that AI will cure cancer and therefore we should let it do all the damage it will do without realizing that people will die because of AI as well (in fact have already died because of AI).
Hyperbole much? If you are serious, then what cohort of people are dying more per million, than before 2025?
Girls attending school in Iran.
Give it some time and you'll be adding to that list.
If anything, AI could have prevented this strike by invalidating stale targeting data. The school building had originally been part of an IRGC military installation, then was physically separated about ten years ago. Satellite data would have made it abundantly clear that it was functioning as a school. A human in the loop could have prevented this tragedy by looking at the satellite data, but so could an AI system.
That's the problem when you're vibe bombing you take that human out of the loop. Humans take time and cost money, this is so much more efficient. /s
I don't think that's true, Gaza residents die at much higher rates. Give it another 30 years for all the truth to come out and we'll probably learn that 98% of them were already dead as of the time of this comment.
Yes, what is happening in Gaza is disgusting, but the context was people dying on account of AI and this was the most concrete example that came to mind.
if youre complaining then youre part of the problem buddy. get out of my way while i work on the future^TM /s
The distinction you're making between "people's misery" and "complaining" is just emotive pandering. You're complaining that people aren't understanding the depths of your misery. That certainly annoys me; everybody has problems.
The amount of sympathy programmers are expecting others to feel about their problems has been kicked up a hundredfold now that its their jobs that have been threatened by AI. Their tribe feels pain more deeply than others, I guess.
My positive feelings about AI are marginal; my feelings about its performance and the power of the people who scheme to control it are very mixed. My negative feelings about the whining of the most coddled profession on the planet outside of finance are intense.
The problem is that making CRUD apps is not creative, and even if AI plateaus at mediocre, it will still replace a Rails monkey. If you are creative, AI has opened up a world of possibility and productivity, and you painfully feel the limitations and the stupidity of the current level of LLMs; but if you're a mechanic, it's over - I'm pretty sure that was the keynote at the last Rails con. Sorry. Hope you didn't spend all of your massive incomes on toys and rent.
> The amount of sympathy programmers are expecting others to feel about their problems has been kicked up a hundredfold now that its their jobs that have been threatened by AI. Their tribe feels pain more deeply than others, I guess.
Well, just wait then, lots of other professions will soon get to realize the same sort of pain, so you'll be able to be similarly dismissive and condescending to them, too.
A lot of people don't realize that the frontier AI companies are so focused on automating software development first because they are all racing to be the first to get to RSI. I don't know if RSI will actually happen, but many, many other professions will soon be in the same boat. Mathematicians have already felt the pain, and those mathematicians who aren't the few who have tenured professorships are certainly not (generally) some of the most coddled professionals.
But lots of folks low on the salary totem pole (copywriters, paralegals, etc.) are already being hit hard by AI and that blast radius will continue to grow.
Plenty of other professions were hit by computing. Part of why programmers are so emotive about this concept (other than the fact that emoting online loudly seems to be much more accepted in software than other professions) is that programming has never been threatened in the same way as other professions have been until now.
My parents-in-law started their careers as management consultants. The job in their time was much higher prestige and much higher value than it was when I started my career; free flow of information over the internet and commodification of spreadsheets changed all of it. From my parents' generation, I know practical effects folks who became unemployable once movies went to digital effects; engineers who found their draftsmanship skills obsolete. Folks with near-photographic memories whose entire superpower was destroyed by computing. I personally grew up in a blue collar community that was income depressed because its labor became commodified, though that was due to mechanization.
FWIW, I agree with pretty much everything you've said. But I don't think it's unique to any profession or individual that they tend to care the most deeply when it hits them directly.
The only thing I don't really agree with is where you say "My parents-in-law started their careers as management consultants. The job in their time was much higher prestige and much higher value than it was when I started my career." I still think of management consultants as some of the highest paid careers around, and getting a partnership track job at one of the Big 3 is one of the most desirable jobs (for MBA types anyway) there is, so I just don't know what you're talking about with this one.
> you'll be able to be similarly dismissive and condescending to them, too
And? Who are these people that need all this sympathy from internet strangers? Grow the fuck up and go solve your own damn problems. I can’t stand these “I need internet strangers to tell me that my life is, in fact, hard” people.
if the complaints can be properly pointed at the actual problem - the corporate culture the complainers are actively upholding or the capitalist system at large, id be much more sympathetic
its a tribalism problem, but one of trying to uphold the current tribe system while theres a pretty obvious new tribe system replacing it
I'm not trying to uphold any tribe I just want to feel secure in my job. :/
AI has taken that security away from me
The whole "needing a job" thing is already part of a tribe though. It's a tribe that says (and enforces) that everyone needs to work for money or else.
I don’t think bluefirebrand is in the tribe of “everyone must have a job or die” so much as they’re in the tribe of “everyone says I must have a job or die”. Like yeah if I was forced at gunpoint to possess something or be ostracized from society then I too would be a little perturbed if someone made an automatic “take away the thing” device.
Yeah, correct, but I think it's also necessary to apportion blame correctly. Tribalism is a big part of the problem here. When people propose solutions to this problem they're often met with purely tribalist counter-screaming.
You're spot on
My lifestyle isn't super expensive, but I can't afford to retire or anything. I have a mortgage that I still owe money on
Well you’re not alone, I’m a little more stubbornly optimistic perhaps, but I feel your stress.
My comforting thoughts are, who is this all for, and what would happen if AI actually makes human labor redundant? Labs control the AI sure, but so much stuff is built around humans that it almost becomes comical to think it would be a bad outcome for a the average person.
Farms and land don’t cease to exist, houses/apartments don’t go up in flames instantly, people aren’t reduced to functionless sludge creatures as soon as they’re done being economic drivers. What’s the real plan? All the normal people die and a thousand or so chosen few sit around and watch AI videos and eat grapes until the heat death of the universe?
Nah, we’ll figure it out, perhaps it will be harder temporarily, and perhaps SWEs lose status before everyone else, but it will probably be okay overall.
But the incentives are not aligned, we are slaves to Moloch, the god of path dependence as described in Slate Star Codex.
Imagine what happens if landlords decided one day to collectively demand more money than actually exists in the total monthly income of workers. What would happen?
You can point out that if everyone just stopped paying rent, their houses and apartments would still exist, and they could live rent-free as their landlords would have no money to spend on enforcement. Technically, this is not untrue. But it's not what would actually happen, is it? One person would be the first to default on their rent, and their landlord would use the money collected from all their other tenants to seize back that tenant's formerly rented property. No individual tenant would dare to be the first to stop paying rent, so they all continue paying rent, selling their stuff, taking out loans until there's physically no way for them to keep paying, and only then do they default.
I might feel more optimistic if I hadn't been laid off and weren't struggling to find work in this new madhouse of an industry
I am strongly feeling I'm already redundant
‘Having to work for money’ beats ‘having to hunt and farm for food’ and it’s technically a small step away.
‘Not having to work and being warm and fed’ is called being a pet. Some cats and dogs enjoy this life greatly. I’ve been thinking about this a lot recently.
To be fair, many of us working outside of software engineering sadly never had that job security, even before AI.
I'm sorry for your loss, but welcome also to the real world. You had it better than most for a long while.
What are you doing to adapt to the new reality?
What makes you think everybody will be able to adapt to 'the new reality'? That's pretty cruel.
I know plenty of people in their late 40's 50's and 60's that were doing fine and who now have to compete with junior and Claude.
And sometimes just Claude.
Obviously they had no inherent right to income but still, people have obligations that need to be met and if they stop spending the economy is not going to be happy. Especially cruel because we have been telling everybody for decades that a career in software is stable and that there will always be a need for more people.
I suspect that when all this is over 1929 will look pretty good.
> What makes you think everybody will be able to adapt to 'the new reality'? That's pretty cruel.
I don’t, necessarily; but I do know that if you’re not even trying, then you’re putting yourself at greater risk. This isn’t one of those developments that people can just stubbornly dig their heels in about.
Life throws obstacles at everyone. Learning how to dodge and weave is essential to survival.
> I suspect that when all this is over 1929 will look pretty good.
Oh come on. Let’s not be so dramatic, shall we?
> I don’t, necessarily; but I do know that if you’re not even trying, then you’re putting yourself at greater risk.
We could also all put our gifts toward preventing the "new reality" you see as inevitable, and put you at greater risk.
The future isn't written yet. Your ability to predict it is an illusion. In aggregate, people whose job it is to predict large-scale economic events are worse than chance in their predictions.
> In aggregate, people whose job it is to predict large-scale economic events are worse than chance in their predictions.
Sounds good, but isn't supported by data. Tetlock did not establish that all experts are worse than chance.
> The average expert was slightly better than chance.
-Tetlock
> Life throws obstacles at everyone.
This is sensible and pragmatic, but I think you're talking past the other commenter.
Obstacles presented by, for example, your boss, or your company's competitors, or your political system, are not the same as obstacles like heartbreak, natural disasters, emotions, illnesses we cannot yet cure.
> Learning how to dodge and weave is essential to survival.
A lot of people perceive that elites are throwing dodgeballs at them in order to increase their own profits. Saying "them's the breaks, it's just the way it is" appears to be deflecting criticism from those elites and that system.
It probably depends on whether you think we could actually feed everyone, today, if we chose to, or if you think e.g. human nature prevents that from being possible.
> Oh come on. Let’s not be so dramatic, shall we?
You'd have said the same thing in 1928...
Seriously: this is a massive problem that we are creating and given that the tools that make the problem require better tools to solve them I really am not all that happy about how this is going.
> You'd have said the same thing in 1928...
Hindsight is 20/20. Besides, what good is panicking? It won’t help with the inevitable; better to adapt and save for it.
> the tools that make the problem require better tools to solve them
You’ve found the opening :-)