Previously I considered my superpower to be able to keep the whole app architecture in my head while I'm building it; now it shifted to keeping mindmap of all the places where it can potentially go wrong and watch after them
Posted by UnderstandingDry1256@reddit | ExperiencedDevs | View on Reddit | 30 comments
So it is becoming even more intense and mentally demanding. Like being a fleet commander rather than a pilot.
Anyone feeling the same?
BadgeCatcher@reddit
Do you mean it's shifted after the increase in AI generated code?
UnderstandingDry1256@reddit (OP)
Well, with gen ai it is just becoming more sharp
More code delivered, much more places where things may go wrong.
AvailableFalconn@reddit
It’s Sunday, so who’s to say ;)
twistedlogic79@reddit
Fleet commander is a GREAT analogy! The work's flipped from "how do I build this" to "what breaks when I build this here." Way more mental overhead. Nowadays, we are building faster than we can map the downstream effects in our heads.
Working with a company now, and they have started offloading as much of that to automated architecture mapping. Tools that index the codebase and keep a living map of how things connect. It's not perfect (yet) but it beats being the single point of failure for institutional knowledge.
NeedleworkerMean2096@reddit
This is the natural evolution. You're thinking in systems now, not just code. I map out failure points visually on miro or lucidchart bc my brain can't hold it all.
Dramatic_Turnover936@reddit
this shift happens quietly. you don't notice you've stopped thinking about 'what does this system do' and started thinking 'what's the weirdest way this could fail at 3am' until someone junior asks you a question and you realize your answer is a 20-minute war story.
tankerdudeucsc@reddit
It’s always been this. Always hard telemetry hooked up to guide you. Have repair scripts handy in case shit goes south.
Can’t have the full map of everything all the time, on every service. Only way is systematic telemetry to save your hide.
goatanuss@reddit
Yeah I’ve worked in pretty mature organizations before that plan operational readiness and don’t ship anything without metrics dashboards and alarms and run books. I don’t need to remember much aside from what’s there and in our backlog. You’re doing everyone a disservice if you make your own memory a SPOF
Gooeyy@reddit
By repair scripts are you referring to handy helper scripts that let you conveniently directly update records, restart services, things like that? If not could you elaborate?
tankerdudeucsc@reddit
Let’s say there are errors APIs and some systems aren’t functioning appropriately. You will need a toolkit to help you backfill correctly, etc. and clean your data.
You plan for failure and know what to do when it fails.
CandidateNo2580@reddit
So I agree with your sentiment generally, but if I know how something is going to fail... I write code to handle the failure. I don't put it in a script, the error handling ships to production and the error I know about isn't an issue.
ReamusLQ@reddit
I’m in FinTech, so we test our core platform from every possible angle we can think of. Any code that touches real money can’t have mistakes. If there might even be the TINIEST possibility of an exception in a spot, we’ll code for it.
And even then, we have fall-back scripts that scan for issues and will alert us if anything went wrong, and will attempt to fix it.
I’ve had enough times putting out fires in production, having to write scripts on the spot and hoping something doesn’t blow up (yaaaaay badly-run start-up life!). I’d much rather code for the worst and have tools I might need in case of an API apocalypse.
Ghi102@reddit
Do you have some automated tests? A large part of why I can deploy safely is because we have a good suite of tests. Dedicate the "watching" to good tests.
lordnacho666@reddit
Hierarchy.
The only way to build a system that is so big it doesn't fit in your mind, and that's pretty much every system that matters.
The meta is building it in such a way that when you're in a place that isn't in your brain cache, you can still orient yourself.
CheetosTorciditos@reddit
could you elaborate?
And what about legacy systems?
lordnacho666@reddit
Hierarchy, meaning a tree-like way of thinking about the system. A few large components, and inside of each component, a few... components.
The interface between components is small, with only a few kinds of data flowing.
This keeps things simple and easy to abstract.
hippydipster@reddit
Yeah, this is how unmaintainable systems get made. The problem is the analogous to the issue with code comments being a bad thing to rely on for code comprehensibility. They go out of sync with the thing that actually matters - the code.
If you're dependent on keeping a load of shit in your head for your system to be workable, then it's not a maintainable system. The current maintainability of it is dependent on an ephemeral and separate thing that won't last. Once that separate ephemeral thing goes away (the knowledge in your head), then it's just a system that is too difficult to work with efficiently.
The best way to look at is that it is already a system that is too difficult to work with efficiently. The knowledge that you are trying to juggle in your head has to be somehow made concrete and part of the system. That's how maintainable things look.
nkondratyk93@reddit
tbh those are the same skill at a higher zoom level - the fleet commander still needs to know every ship's specs
tanepiper@reddit
I'm the only employee on my team, the rest are external contractors and we maintain a platform that several other team use.
Yes, this sentiment is very familiar
Pleasant-Memory-6530@reddit
Thanks now my ptsd is triggered
OAKI-io@reddit
that's a real shift and honestly the more mature one. holding the happy path in your head is junior energy. knowing exactly where the wheels come off and why is what separates the people who get paged at 2am from the people who already fixed the thing before it could page anyone.
justUseAnSvm@reddit
Yea, that's generally how it goes as you scale up in "complexity", and start working with projects you have less control over.
sethkills@reddit
Do you feel like you’re the only one keeping most of these things in mind?
jtonl@reddit
Good thing there's a guy who always think the worst case scenario and wouldn't shut up in calls and it makes me look like a logical person.
igharios@reddit
lol, or the guy that keep things in mind and keeps surprising the team. driving them all crazy
jtonl@reddit
Dude. We just had a platform deployed to production and the architecture rework surprised the enterprise security and qa team when they tested it. I drove them crazy alright! But what made me even prouder is that our principal swe didn't say a word meaning it's all good. I like those situations. I don't need more praise I just need things to go smooth sailing as I move on to the next thing.
gibbocool@reddit
Based on some of the PRs I see from my team, yes.
snakebitin22@reddit
This sounds off to me. Whenever I’m building or designing something, I’m constantly thinking about things like attack surfaces, single points of failure, and garden variety user dumbassery.
That just comes with experience.
ub3rh4x0rz@reddit
You said it more kindly than I was going to, have an internet point.
chikamakaleyley@reddit
Magnussen, I can barely remember my 4 digit pin when i have to call credit card services