iforgotmypasswo
Joined 1 month ago
Joined 1 month ago
Engineering’s job has always been to deal with hard technical challenges and apply new technologies.
Writing code was never the point. Predictably creating specific outcomes was. Wrangling AI in a way that multiplies productivity is the new job.
I won’t lie, it kind of sucks to be young right now, learn about punch cards and assembly in school, and then graduate into a market that’s moved on to Fortran. Sorry, I meant high level languages and AI. To say otherwise might imply the industry has seen a similar shift in the past where engineers made the exact same complaints practically verbatim.
Regardless, the reality is that college teaches very little about 90% of real engineering work anyway, and we still need to hire smart people for this new type of work.
How do you organize a team where engineers can build much faster, without creating bottlenecks around decisions and reviews?
Our bet is to push more ownership to engineers. Rather than adding more layers of management, we want engineers to handle more of the planning, execution, and review themselves.”
My bet was to push more ownership to the PMs and designers.
Engineering’s job is now to make that process sustainable and tackle the items that aren’t directly visible but still matter.
I find it interesting that they’ve opened up PRs to the org, but didn’t land on using the review process to refine a system that guides AI toward writing better and better code. I’m a graybearded “wizard” who is highly technical, and that’s where I landed.
We’ve had a very similar arc, but I’m at the point where I would be more likely to hire an artist for a frontend design position than an engineer:
“Use AI to make the app beautiful. You report to product.”
Engineers are checking the code and fixing architectural and abstraction issues behind the scenes. We’re making tests that keep AI from making the same mistake twice. We’re also figuring out how to run tests at unprecedented scale without slowing these non-technical “devs” down. There are plenty of technical challenges scaling this path that need the traditional engineering brain and a deep knowledge of development. It’s not just 20x productivity, it’s a lot of fun. I’m buried in new and interesting technical challenges these days.
We gave our old Legos to the others, now we’re having fun with our new Legos.
I don’t want to pay someone to maintain a first rate classifier when I can buy a pretty good classifier as a service. I don’t want to pay someone to maintain and build server infrastructure when I can buy that as a service.
I feel like I’m being gaslit on HN when a solution seems obviously valuable to me because it eliminates or modifies constraints, and people dismiss that as if managing constraints wasn’t most of high level engineering work.
I tuned out of HN for a few years, came back in the middle of the AI renaissance, and I am constantly raising my eyebrows and hearing this Upton Sinclair quote in my head:
“It is difficult to get a man to understand something when his salary depends on his not understanding it.”
This is like having on demand access to a conversational partner at all times. But there is no embarrassment factor, patience, or concern about wasting an instructors time. Because the model is trained entirely on audio and not a voice to text add on, you can provide a human extremely high quality feedback and training.
And it’s cheap to run.
It doesn’t need to be smart the way a SOTA LLM is smart. There’s tons of value here already. You can tack it onto another system for deep intelligence.
For that reason I would avoid it these days. MVC helps coordinated teams of people move faster on small to medium sized projects. It does this at the price of heavily coupling your front and backend. I believe rails couples the DB as well, or can? (Showing my ignorance of the Ruby world here)
We’re all developing with AI now. When things are coupled, AI breaks them. More than this though, with AI you want a completely decoupled frontend that knows nothing about the structure of the backend for maximum iteration speed. You want formal DTOs and other isolation abstractions small teams hate because they provide the decoupling that only large teams (or AI) benefit from.
Fully decoupled, you can build your frontend out on fake (AI generated) data, reworking the whole UI 12 times without thinking about the backend and database at all.
Rails (I’m speculating) makes small talented teams more effective. One person can do more. But if the price is coupling, and you have unlimited AI labor that will never be intimately familiar with the code, then you still pay that price without getting the human oriented benefits.
I needed to make a highly parallel image processing pipeline which interleaved traditional techniques and VLM use, as well as allowing speculative execution and backtracking.
Using AI, I was able to create a really nice custom IDE for this, along with the simplest possible representation of the high level processing strategy in Python.
Despite the high level code reading very simply (for parallel image processing with speculative execution), AI is completely unable to reason between it and what it is accomplishing.
I was thinking that once I made the problem “pretty” AI was going to steal it from me, but I actually get to program something for the first time in a year! Hooray!
Could this idea of reasoning through fundamentally different (it sounds like?) models be used to link even more distant models or systems?
If you can make a small leap, then you can construct bigger leaps through a chain. What else can latent space link to?
Instead of tool use through text, tool use through analog signals?
Instead of language prompts, analog sensors?
I did not see answers to these important questions when reading the article.
In my case, “Factory” is hundreds of architectural tests built over thousands of application specific tests, and a couple MD files here or there. The MDs are mostly reference material and common patterns. The tests are what actually enforce feature/module isolation and proper architecture.
Lately, I’ve been getting overzealous with protobuffers and service discovery as well. I would never use these tools so frequently if I was designing for humans. With AI I’ll slap annoying boundaries in to enforce separation of concerns without thinking twice.
Making a new project is a pain at this stage, but you can just point to CI and the general structure in an existing project and AI will clone the important bits. I suspect high level architectural rules with programmatic enforcement will eventually be encoded into tools for easily starting new projects. Kind of like pnpm installing specific development practices and architectures.
I used to do a lot of work with reflection, compile hooks, and dynamic source generation before AI. You can do a lot to compensate for the architectural blind spots of AI if you get creative.
Claude refuses to help you build your own harness off a subscription, and OpenAI actively encourages it with Codex App Server. So you’re just in an AI IDE customized to your job and specific needs ALL THE TIME. You know that good feeling you got when your CI pipeline was finally working, back when that involved speed reading documentation and guessing, or staying at work until 10PM? You just get that all the time because life is constantly improving. And your tools are beautiful and riddled with Easter eggs you put in them. There’s so much more time to test and talk to stakeholders because you are able to distribute the thing you are actually good at -solving people’s difficult problems- while following best practices. You used to have to weigh those two every day and it was terrible. And everything was always late. You had to cut so many corners you were delivering circles.
Now life is fun and I’m over-delivering. Constantly. With super high code quality, better test coverage, easier audit prep, and I just explain what I want (technically) at a high level to AI. I still have to code review, and it sucks. Not because the AI needs it, but because auditors need it. I think I can make it faster and easier in the near future with another custom tool.
I actually have time to make architecture diagrams. I have never had enough time to build that level of documentation.
With Fable, I felt the promise of this coming. With Astra, I feel like we finally had the resources to fully professionalize and supply our software team.
We actually need to hire more people next quarter.
I am with the creator of Rails on this. It is a time of joy. Now is the time to become more ambitious.
$500/month for 40+ hours a week of Astra usage, with ultrafast mode available when you’re near the weekly reset has made our jobs so much easier. Our product has some sciencey bits as well, ands Astra kills it as a rubber duck in this area.
As a consumer whose 20x account got downgraded, I am a bit sad. I can’t justify $500 a month on personal AI spend. As an engineering manager, I could not be happier with OpenAI’s services. Also, Codex App Server is amazing.
We’re all running on Astra medium the whole week and loving it.
I’m curious what I missed.
You do still have to think, but you have to think about how to reorganize code in a way that allows AI to succeed.
This is not a great way to showcase the capabilities of this technology.
You’re thinking: Should I put a protobuf here and build a separate service? Which side should own the protocol? How do I ensure the AI never couples concerns A and B? Can we prove this works with smarter automated testing, or do we need additional manual QA in this critical area before release?
Port my whole legacy codebase to another language with no guidance is a novelty problem. It is not comparable to what professionally managed AI driven development actually looks like.
I’ll be watching to see if the next generation of AI improves in this area. Once this is the case, the system described in the article could lead to some wild capabilities.
Until then, I suspect it will result in a “delusion spiral”, where the AI’s self improvement is untethered to reality and produces worse results in practice.
Edit: I could be lacking in creativity and background knowledge though. You could use this in isolation, with AI surrounded by experts, and only use training runs where AI was highly successful.