ammmir
Joined 16 years ago
Joined 16 years ago
It's been amazing to participate in a hobby-turned-profession for the last two decades or so. But did we get into it because it was easy? No. Technology, computers, Internet, was a new world, full of excitement, mystery, and exploration. There may have been no immediate ROI in learning how to set up a Geocities site, but it was the gateway to HTML, programming, and eventually led to, what I hope has been, a rewarding career.
The industry isn't being "destroyed" by AI, that started happening with PE and MBAs long before, or maybe it was fucked from the get-go, and we've been very lucky to have had well-paying jobs for typing strange things into a computer. But now that it's easy for the non-tech commoner to do it, we're upset? Fishy NIMBYism something something.
I went through a similar disillusionment phase for a few months as I tried to apply my old thinking to this new era. I had to just let the AI agents own the line-level, function-level, and even class-level responsibilities, while I focused on the file names and writing good prompts. Naming is everything in computer science, as they say.
On personal projects, I'm executing on things that were out of reach before (or required extensive research), like (re)learning hardware, writing RTOS firmware, PCB design, etc. It's my learning PHP3/VB phase, and I love it. What matters now, more than ever, is to have good taste.
Give it time for the mindset shift to happen. Take a break, if you can. You won't miss anything anyway, a few new models, harnesses, and workflows will have appeared, and they take about 5 minutes to understand. So the differentiating factors between you and the next pleb are your fundamentals, good taste, and creativity.
Be like water, etc.
It used to be a teenager’s rite of passage to build your kernel config, figure out LILO (remember that, pre-grub!), ipchains.. talk about feeling old!
This new cat and mouse game is perhaps a sign of the times...
lovely.
hidekarma: hide accounts below certain karma threshold
hideage: hide accounts newer than 1 week/1 month/6 months
these should be opt-in. people that care can turn them on.
Why do you need things to do?
Meditate on this. Everything else is noise.
How much context is eaten up by skills that rehash what a SOTA model should already know?
Maybe token-wise, it's a wash: Elixir/OTP does a lot without third-party libs, which would require massive npm dependencies to achieve the same thing.
AI has made it possible for me to build several one-off personal tools in the matter of a couple of hours and has improved my non-tech life as a result. Before, I wouldn't even have considered such small projects because of the effort needed. It's been relieving not to have to even look at code, assuming you can describe your needs in a good prompt. On the other hand, I've seen vibe coded codebases with excessive layers of abstraction and performance issues that came from a possibly lax engineering culture of not doing enough design work upfront before jumping into implementation. It's a classic mistake, that is amplified by AI.
Yes, average code itself has become cheap, but good code still costs, and amazing code, well, you might still have an edge there for now, but eventually, accept that you will have to move up the abstraction stack to remain valuable when pitted against an AI.
What does this mean? Focus on core software engineering principles, design patterns, and understanding what computer is doing at a low level. Just because you're writing TypeScript doesn't mean you shouldn't know what's happening at the CPU level.
I predict the rise in AI slop cleanup consultancies, but they'll be competing with smarter AIs who will clean up after themselves.
While the microVM route is more secure, it's more complicated and ops are tricky, but you can do some cool things to optimize startup time like when I was working on a function as a service platform, and to reduce TTFB, I trapped the `listen()` call, sent a VSOCK message to the VMM to trigger a freeze, snapshot the VM and save it as a "template". Then for every request, the snapshot was cloned (with some file system tricks like CoW) and resumed to handle the request. It "just" worked, but the orchestration was kludgy.
In the second incarnation of this, I decided to use Linux containers with the gVisor sandbox. You can take a look at my project https://github.com/ammmir/sandboxer which uses Podman and gVisor underneath; it's good enough for a prototype. Later on, you can swap it out with Firecracker microVM, if necessary. In fact, I'm thinking of adding microVM support to sandboxer itself. If you wanted to do it yourself, swap out ContainerEngine() with a new implementation based on calling out to Firecracker. You'll need some way to do disk volume management (grow, clone, shared, cross-machine? good luck!), snapshots, etc.
available for hire.
email: [email protected]
web: https://amirmalik.net / https://www.pilvy.com