arcboii92
Joined 7 years ago
Joined 7 years ago
To me, the difficult parts of software engineering are in the design. That's where you're defining the problem you're trying to solve, picking what technology to build upon, what kind of architecture you're planning on implementing, ruling out what does/doesn't make sense, taking input from stakeholders, and finding the balance between price and performance. Once all that is covered I generally have a good high-level mental map of a system's structure, and actually writing the code to bring those ideas to life truly is the easier part.
That being said, I still believe writing good code is a skill that is only learned through experience/the practice of actually writing code. And that experience is necessary for reviewing code - regardless of whether the code you're reviewing was written by humans or AI.
Kind of like baking. Putting it in the oven was always the easy part. But combining the right ingredients in the right ratios is necessary, and much more difficult than the putting-it-in-the-oven part. And even then, it takes experience to know when something needs to be pulled early or left in longer. Because ovens are non-deterministic.
It's getting hard to keep up with trying to teach new devs what bad code looks like. And I swear sometimes they just copy my PR comments into their AI tool to fix the mistakes without any of the learning.
I was offered 6 figures as a counter offer for the first time in my career, which I turned down.
That was last week. New Zealand (where I'm from) hasn't shut down yet, but everything is so bleak, and I'm regretting turning down the offer. I start working from home tomorrow for my final 2 weeks here, and I can't help but feel regret. Being in the office was the one thing I hated, and now we don't have to do that.
Whats worse is I emailed the new job asking if we're still going ahead with me starting, and there was no reply.
EDIT: props for getting rid of limits and disconnects though. NZ providers are just saying we'll be able to cope with everyone working from home because we have a fancy network.
Link to the scene: https://www.youtube.com/watch?v=3P4_E3GhUv8
First, they made CI/CD pipelines to automate the builds and deployment - and I said nothing because I didn't want to watch the scripts run. It's only running my code anyway, and more automation is good. Less for me to do!
Then, they integrated AI into our IDE - and I said nothing because the guardrails kept it in check. It's only writing code following my instructions, and more automation is good. Less for me to do!
Then, they requested source control access so the business owners could skip all the feature planning back-and-forth and just chat with an AI agent until the feature looks how they want it - and I said nothing because they're not merging into master. I'm still in charge of reviewing code, and I have an AI agent helping me review code using some rules and invariants I've handed it, and more automation is good. Less for me to do!
Now, they are requesting an always-on AI agent reviews and merges their code into master with 0 human interaction because their PRs which contain 300K lines changed each have started to pile up over the last 3 days. And I have to just do it because boss man pays my bills. But hey, more automation is good. Less for me to do.... until everything breaks and I have 1 hour to find why the million lines of code merged this week don't work anymore.
----
The story makes it sound like I didn't push back. I did. But after being forced to ignore a full career's worth of red flags and best practices I'm now just whoring my skills out to see how deep this AI-fully-replacing-devs rabbit hole goes. Besides, when else am I going to have crazy money to just throw at a new server and set it up to replace the SDLC end-to-end with a rich man's AI? And there's still the fun technical challenge of "can I make this system secure enough that even when I automate myself out of a job I couldn't revenge hack it?"