For me, the big shift has been qualitative, not quantitative. I find myself thinking of making things that I would never have made before. Not because they were impossible, but because the result didn't justify the effort. I'm not just making more things, I'm making _different_ things.
Exactly! It changes the equation. Things that for years I've wanted to make but then I imagine the drudgery of coding up yet another data spec and endless routes and fighting with layouts and I think "yeah not worth it". But now? Hmm, saves me a few minutes of data entry per day or frees up my memory to think about other things or helps me do or find something more fulfilling or improve myself, times that by a few hundred days before the code breaks because of some package changes (lol)... I can code this up in a few hours... let's go!
Very similar experience here - thanks for sharing. It's been remarkable to see what I can cook up in a day that I wouldn't otherwise amidst the chaos of doing a start-up. There's a curious side effect that's been happening as well, which is that as I transition some general-purpose multi-user SaaS applications to custom-coded and self-hosted variants, I am seeing a remarkable increase in performance. One workflow that I transitioned off of Notion to something that works exactly the way I wanted not only increased the functionality but saw a (literal!) 1000x performance speed-up of queries.
It made me wonder: how much of the overhead of the modern SaaS ecosystem has to do with the fact that the systems have to manage, route, segment, performance optimize millions of users? What would a world look like if each person had a custom server for their applications, and the only routing/data segmentation that had to happen is the DNS lookup and authentication to get your phone or desktop to talk to your server?
Maybe there's a version of the future where this is the norm, especially as these agents get to the point where an every day consumer can say "I want an app that does X" and can iteratively tell their agent whatever tiny little feature modification they want to make, and it makes the changes live on their own custom server and application stack. I know Base 44 and some others are advertising themselves as such but I don't think it's quite what I'm imagining, because ultimately these are still SaaS companies that have to deal with the complexity of many users on their servers and have guardrails about what is allowed, so they will always be playing catch-up with technology as it comes out.
I don’t think the performance problems come from the apps having lots of users. I think they’re more likely to come from the apps having lots of features. You can have a more performant app if you only build the features you need.
Yeah, I agree - I probably overemphasized routing itself. Feature breadth and the abstractions needed to support it impose significant performance costs.
I do think the number of users matters indirectly, because it constrains what kinds of optimizations we can do. In a large multi-user system you're often optimizing not for one workflow, but for many different use cases. That's partly what I had in mind. In highly engineered systems, more features don't necessarily hurt performance much for the main use case. Meta is a good example - they have an enormous number of features across the ecosystem but we can load our feed in milliseconds!
So it's not just many users by itself but the constraints (and feature demands) that come with serving many users and use cases at once.
A bit of irony here: I did one of the earliest PhDs in the area of neural networks (1992!) and worked in machine learning and NLP for many years. I am now retired and still thoroughly enjoy programming but I don't use _any_ AI tools. I have even disabled auto-complete in VS Code. I have the time to think about problems deeply and working my way through my mistakes. For me the whole point of programming is to become better by learning new skills. I'm extremely glad I retired before the era of agent assisted programming.
Yes, if your goal is to hone your skills, coding by hand makes sense. Other skills you could hone include gardening, knitting, or horseback riding, all of which people still do for fun and recreation. I imagine that some people will always code by hand in the future, for the same reason.
For me, the big shift has been qualitative, not quantitative. I find myself thinking of making things that I would never have made before. Not because they were impossible, but because the result didn't justify the effort. I'm not just making more things, I'm making _different_ things.
Exactly! It changes the equation. Things that for years I've wanted to make but then I imagine the drudgery of coding up yet another data spec and endless routes and fighting with layouts and I think "yeah not worth it". But now? Hmm, saves me a few minutes of data entry per day or frees up my memory to think about other things or helps me do or find something more fulfilling or improve myself, times that by a few hundred days before the code breaks because of some package changes (lol)... I can code this up in a few hours... let's go!
Yup. Radical movement on this chart https://xkcd.com/1205/
Very similar experience here - thanks for sharing. It's been remarkable to see what I can cook up in a day that I wouldn't otherwise amidst the chaos of doing a start-up. There's a curious side effect that's been happening as well, which is that as I transition some general-purpose multi-user SaaS applications to custom-coded and self-hosted variants, I am seeing a remarkable increase in performance. One workflow that I transitioned off of Notion to something that works exactly the way I wanted not only increased the functionality but saw a (literal!) 1000x performance speed-up of queries.
It made me wonder: how much of the overhead of the modern SaaS ecosystem has to do with the fact that the systems have to manage, route, segment, performance optimize millions of users? What would a world look like if each person had a custom server for their applications, and the only routing/data segmentation that had to happen is the DNS lookup and authentication to get your phone or desktop to talk to your server?
Maybe there's a version of the future where this is the norm, especially as these agents get to the point where an every day consumer can say "I want an app that does X" and can iteratively tell their agent whatever tiny little feature modification they want to make, and it makes the changes live on their own custom server and application stack. I know Base 44 and some others are advertising themselves as such but I don't think it's quite what I'm imagining, because ultimately these are still SaaS companies that have to deal with the complexity of many users on their servers and have guardrails about what is allowed, so they will always be playing catch-up with technology as it comes out.
I don’t think the performance problems come from the apps having lots of users. I think they’re more likely to come from the apps having lots of features. You can have a more performant app if you only build the features you need.
Yeah, I agree - I probably overemphasized routing itself. Feature breadth and the abstractions needed to support it impose significant performance costs.
I do think the number of users matters indirectly, because it constrains what kinds of optimizations we can do. In a large multi-user system you're often optimizing not for one workflow, but for many different use cases. That's partly what I had in mind. In highly engineered systems, more features don't necessarily hurt performance much for the main use case. Meta is a good example - they have an enormous number of features across the ecosystem but we can load our feed in milliseconds!
So it's not just many users by itself but the constraints (and feature demands) that come with serving many users and use cases at once.
I'm behind you on the journey. https://substack.com/@ted1306494/p-185656492
This has been almost exactly my experience and thought process as well. Thanks for sharing, Jason!
Not everyone…
A bit of irony here: I did one of the earliest PhDs in the area of neural networks (1992!) and worked in machine learning and NLP for many years. I am now retired and still thoroughly enjoy programming but I don't use _any_ AI tools. I have even disabled auto-complete in VS Code. I have the time to think about problems deeply and working my way through my mistakes. For me the whole point of programming is to become better by learning new skills. I'm extremely glad I retired before the era of agent assisted programming.
Yes, if your goal is to hone your skills, coding by hand makes sense. Other skills you could hone include gardening, knitting, or horseback riding, all of which people still do for fun and recreation. I imagine that some people will always code by hand in the future, for the same reason.