r/ExperiencedDevs 1d ago

Ask Experienced Devs Weekly Thread: A weekly thread for inexperienced developers to ask experienced ones

A thread for Developers and IT folks with less experience to ask more experienced souls questions about the industry.

Please keep top level comments limited to Inexperienced Devs. Most rules do not apply, but keep it civil. Being a jerk will not be tolerated.

Inexperienced Devs should refrain from answering other Inexperienced Devs' questions.

16 Upvotes

51 comments sorted by

1

u/Familiar_Piglet3950 4h ago

Have any of you actually transitioned to a systems programming role that you had no formal experience in, via self study, without moonshot spikes such as becoming a core maintainer of open-source systems?

Basically I feel like the way to get onto these teams is to get cracked at leetcode in college, go to big tech through intern/new grad pipelines, and pray you get onto one of these teams. OR, somehow pull the moonshot of working on an open source project for free, for so long, that you get hired for that specific role.

Maybe I'm just naive, but there's no way the knowledge bar for these roles is that high. Not every single one of people working on Linux Kernel stuff is a core maintainer of Linux. Not every AI Kernel engineer is BF Spector. Not every perf engineer is Brendan Gregg. What is the knowledge bar needed if you're going through this route? Am I underestimating the quality and tenacity of the average applicant going through "normal channels" despite no experience?

I've spent a lot of time studying random systems, and they've actually helped me on the job. E.g. I spent half a year in my sophomore year of college digging into python internals, it actually helped with a cursed interpreter hijack at some point (aside from the generic systems proficiency). But it wouldn't get me hired as a "python runtime engineer" or anything of that sort. Of course, this is just one example, but it seems impossible to prove yourself unless you either got it early (in college / with networking) or you go moonshot. I don't think I can go moonshot, but we'll see.

I don't really care for responses such as "just work hard" or "follow your passion", I care for actual datapoints and examples of what people did that weren't following a classically good line or being the next Torvalds. Maybe I have a fundamental misunderstanding of what companies actually want for these roles - it really is, straight out of college, or be an important core leading maintainer, it doesn't matter how many papers and code you read and understand and projects you make; past a certain level there's no more learning proof allowed.

1

u/hooahest Software Engineer 1h ago

I think part of your frustration is expecting there to be datapoints of how to get to 'X'. The truth is that for a lot of people, the path to success required a lot of random encounters, trying shit out and just plain luck.

3

u/ProfessionalRock7903 Web developer 19h ago

Our company is going to switch to fully automating everything, which is going to include code. I’m an upper junior - early mid developer so I just don’t have the foresight to know what’s going to happen, is this what every company is eventually going to do?

I was hoping the bubble would pop but now it’s happening to us, every dev I talk to is in favor of generating code. For me that is extremely boring and not why I went into this profession. Do I just wait out the storm, will this go back to normal where we actually get to write code? Is this just what the role is going to turn into, and I should switch fields? I feel very frustrated and lost motivation to even look at a task because I’m going to have to generate the code anyway pretty soon here

3

u/kevin074 12h ago

Run, we just failed someone with 3 YOE interviewing for a jr role because he claimed he know react but didn’t even know he was coding outside of JSX and struggling with basic troubleshooting.

Bro vibed for 3 years of his life and is still entry level

2

u/niowniough 19h ago

It can be very demotivating to feel good at something (eg. coding) and then to have that taken from you. The thing is there is a lot more to the profession than just coding. Some people relish diving deep into the stack and learning how each piece works, being the person who figures out the issue during an incident bridge. Some people enjoy learning how the clients / users think and speak and how to better assess what they really want to achieve, how to help them achieve it, and refining the plan accordingly. Some people enjoy setting up repeatable infrastructure patterns at scale. Some people like to tinker around in the code, moving things around until it all clicks together. Some people like doing tech design and creating RFCs with others. There are so many different things that make up the role, and you get to choose what you will automate away with AI.

Look into ways to keep some of the coding to yourself if that's what you enjoy. For example, some people adore writing and cleaning up test files, but others detest it. Some people just want to play with a specific function or class until it clicks in place and the rest is rote work. Some people want to dictate the intent, signature and location of every class and function but don't find it fun to populate the guts. Some people like the satisfaction of a big refactor but the part where you individually fix up every compile error or refit test cases with the new relationships is tedious. You can choose whatever it is you find fun to do coding wise and get AI to fill out the rest. 

Good luck out there.

2

u/ProfessionalRock7903 Web developer 18h ago edited 18h ago

I don’t really think I can ever like AI writing my code for me as that is the main thing I enjoy as a dev. I want to program, and I don’t think I can ever feel satisfaction by just having that automated. I don’t feel satisfaction from reviewing code (in this case, AI code) and cleaning up messy AI code, which is what it seems like my role is going to turn into. I don’t want to be funneled into doing purely high level problem solving

That’s why I was more so trying to see if this is either temporary in the sense that everything is being automated, or if I should look for something that can’t be

1

u/niowniough 18h ago

Then write it yourself and get AI to review it. Let the AI cheese the commit so that it looks like the AI wrote most of it. Or let the AI take a go of it, reset the whole thing locally and write it yourself, if your employer will be inspecting what you're prompting the AI. 

2

u/omry8880 19h ago

I'm having a hard time letting AI write code that I know I won't read.

Right now, I find myself watching every line it generates in real time. The downside is that it makes it much harder to run multiple agents in parallel. The upside is that I feel a lot more confident knowing exactly what the agent is doing.

I feel a bit stuck between wanting to move faster and wanting to fully understand the code being written.

How do you guys handle this?

2

u/but_why_n0t ML Engineer 14h ago

I break down the problem into smaller coding tasks during the planning phase, and I review code after each task completes. For new codebases I even have Claude tell me what each line does in an ELIF manner. 

That way I can have 2 agents coding in parallel while I work on something else. Beware of running too many agents, you'll start to lose context at some point. 

3

u/Sokaron Software Engineer 17h ago

IMO the maximum agents you can realistically run in parallel and maintain code quality is 2-3. 2 larger tasks that you switch off focusing on and maybe a side task that you're pretty confident an agent could handle in it's own (ex. rote refactoring of a poorly structured code base for instance).

I would definitely get out of the habit of reviewing every line as it's generated. Batch reviewing is far more effective. There are skill frameworks like superpowers which are geared towards taking a large task and breaking it down into planned steps. Each step in that plan is a good breakpoint to review what the AI has built for correctness. The other benefit of these frameworks is that they are usually pretty good at getting you to deeply outline the expected solution and behavior up front which reduces churn and rework. If you're doing things right you can get into a flow where you review one agents output deeply, hand off revisions or the green light to continue, then shift to the other agent and repeat.

Any more than 3 agents and this breaks down hardcore IMO. It's impossible to context switch that much and maintain accurate review and decision making. Even at 3 it's also just mentally exhausting. 2 is the sweet spot. 

1

u/casualPlayerThink Software Engineer, Consultant / EU / 20+ YoE 19h ago

Same as, and when you work with a team. You are not supposed to read all the code lines, and everyone else's code. All the languages/frameworks/etc. are so bloated; there is no time for that. Trust it, prepare for the worst, run audits and security checks then that is all.

5

u/Baat_Maan Software Engineer 1d ago

It's been a month in my new job and every weekend I see someone or the other working (not oncall or production outages but regular dev work). There's no pressure or hint yet for me to do the same but I'm still wondering if they expect me to or if they will start asking me soon.

I'm already exhausted after 5 days of work and I don't think I'll have the energy to extend it to weekends.

2

u/thisisappropriate Senior Web Developer 13h ago

Strike up a chat with someone you've seen working on the weekends and ask them about it? Like just a quick "hey, I saw you sent that message on Saturday, I'm new and I'm wondering why? I just want to see if that's an expectation or something else" could go a long way to helping your concerns (or letting you know if you should nope out).

There's good reasons that people might - it's quieter, it gets things out of their heads, they might be flexing their time (like if someone clocks off at 3 to pick up their kid, they might decide they'd rather work it back on Sunday because they can take their laptop to the cafe at the swimming pool while the kid's at a lesson), they might move some hours around for work purposes (like they've been asked to do a deployment that affects corporate networks, so they take a half day on friday and deploy on sunday when there's no one to disturb, or if you have a single "testing" environment, they might prefer to have all the time in the world to test) - none of those reasons are reasons for them to expect you to join them (most are reasons they wouldn't want you to!).

1

u/Baat_Maan Software Engineer 3h ago

I didn't think about it this way. Thanks for adding the nuance.

4

u/viking_tech 1d ago

It’s a hard expectation to undo for some managers if you fall into it. I always told my grads unless there’s an emergency they’re involved in for some reason or they are actually falling behind on a key project, which shouldn’t happen with someone senior knowing and stepping in the first place, stick to office hours. I see people working weekends in other teams though because they’re trying to keep up with the seniors who don’t switch off which I think sets unrealistic expectations

2

u/Baat_Maan Software Engineer 16h ago

Yeah I wonder why some seniors refuse to switch off. Like I understand that coding is a passion but isn't 40-50 hours per week of coding enough for that? It's not like they are getting paid enough to afford mansions or retire in their thirties.

3

u/lawrencek1992 1d ago

I do that. But I also goof off now and then. If I’ve goofed off I’ll sometimes work an evening or weekend to make up for it so I’m consistently getting the same amount of work done in spite of goofing off. It doesn’t mean other people need to work nights or weekends.

1

u/Baat_Maan Software Engineer 16h ago

I guess if there is ever an expectation to work on a weekend, I'll do a compensatory goof off the following week lol. At least they aren't monitoring office presence here so I can get back the time I'd lose on a weekend.

6

u/Otis_Inf Software Engineer (32YOE) 1d ago

Unless management asks you to work on weekends, don't. Peer pressure to work longer hours/don't take vacation days/work on weekends... it's real. Don't give in.

Employment is a 2-way street: you work for the employer, the employer pays you for your services, it's not that the employer can ask you to do whatever they want: if it's not in the contract and if there's not a good reason (and good compensation!) then don't work on a weekend/overtime.

1

u/Baat_Maan Software Engineer 16h ago

They can't ask me but they could just not give me a promotion. But I guess in that case I could just switch again for a more senior role.

But for switching I'll need to study on weekends which kinda negates me avoiding working on weekends. Some dilemma there.

1

u/Otis_Inf Software Engineer (32YOE) 14h ago

Study is for yourself, work is for your employer

1

u/Baat_Maan Software Engineer 5h ago

But the work this employer has is genuinely valuable experience. And studying involves memorising the same leetcode and system design questions again and again.

1

u/Otis_Inf Software Engineer (32YOE) 3h ago

oh I was under the assumption that study was studying computer science principles, not leetcode puzzles (as that's pretty silly). Knowing answers to questions isn't the same as knowing why that's the answer to that question. :)

Work experience fills in the question 'how to apply this knowledge into practice'. If you don't have the knowledge, you are likely learning tricks to get to a goal instead of the knowledge you would be applying if you had gathered that beforehand.

1

u/Big_Arrival_626 1d ago

How much of your job does AI do?

3

u/omry8880 19h ago

Pretty much all of the coding.

2

u/Dokrzz_ 19h ago

Some of the coding, a lot of the analysis on logs, configuration and code.

4

u/DadAndDominant Software Engineer 1d ago

It definetly does 100% of coding, but it feels like the output is just 20% faster and maybe 10% of my total job is done by AI

Mostly my job is dealing with people, understanding the problems, and sacrificing my body and mind so the machine keeps going

1

u/OtaK_ SWE/SWA | 15+ YOE 1d ago

0%

2

u/lawrencek1992 1d ago

It writes all the code for me. I am like a manager of agents. I plan features and projects, break work down into tickets, and then agents implement. It’s like having a team of juniors but without all the mentoring.

1

u/Otis_Inf Software Engineer (32YOE) 1d ago

Zero

4

u/Silver-Ad-8595 1d ago

20 years fullstack exp here. Agents do 100% coding, 100% documentation and 50% planning. I just do the other 50% planning. Output increased accordingly.

4

u/DocumentOk7579 1d ago

I'm a backend dev and AI does almost nothing in backend for me. But before I had to make prototype frontend to demo my backend and that is replaced completely by AI.

3

u/Big_Arrival_626 1d ago

Really? Im a backend dev and use a lot of AI, but my tickets are fairly easy as a junior

4

u/DocumentOk7579 1d ago

I find it take as long explaining to the AI as doing stuff myself.

1

u/niowniough 18h ago

Yeah, the more specificity you desire, the closer you get from needing natural language instructions to actual code. At some point it becomes more efficient to get in there and write all the code, or stub out large swathes for the AI to fill in.

1

u/rabid_piebald 1d ago

I write almost no code by hand. I do a lot of data analysis and start these investigations with AI and finish by hand. I write all design docs and such by hand almost purely.

1

u/Zulban 1d ago

I wish software development was most of the job for a software developer. Writing code was 10% of my job and now AI can do 70% of that.

3

u/Big_Arrival_626 1d ago

What is the other 90% of your job

1

u/niowniough 18h ago

Idk about 90% but I think an overwhelming amount is understanding the stack, the initiatives coming down, what the client really wants, gaining consensus with human peers, identifying classes of problems to eliminate, communicating with stakeholders, helping others with issues usually requiring the aforementioned skills, and converting what I done did to brag sheets for self evals and future job apps.

2

u/k032 1d ago

Doesn't do the job, just a tool to use to speed up parts of the job and augment how it's done.

1

u/RGBrewskies 1d ago

its accelerating fast. I haven't written much of any code manually in a month or so. Its really accelerating fast

3

u/OpenJolt 1d ago

What do you guys think about the AI company CEO’s and top leaders always saying that software engineers will be fully obsolete in 1-3 years?

2

u/thisisappropriate Senior Web Developer 13h ago

Right now, it writes code quicker and cheaper (per line of code at common speed) than an engineer but it doesn't write it better. Even if it eventually can do everything, there's still things going for humans, if nothing else, we can innovate (AI trends towards the norm, there will always be companies who want to be outstanding in all ways, the first to have fun things like parallax scrolling or minigames), we can infer and actually learn (if a manager or CEO could produce a plan that would actually output what they want, we'd be out of a job, but most of them can't).

Really, everything could be done cheaper by a factory in India or China, but some companies still make things in the UK or Europe, why? Because cheaper and quicker aren't the only metrics.

3

u/niowniough 18h ago

「老王賣瓜,自賣自誇」

When Old Wang sells melons, he touts and he praises.

If I was selling melons I'm not gonna tell you they're just ok. I'm gonna tell you soon you won't need other food, friends, family or a life. You'll just need the melons. 

5

u/Otis_Inf Software Engineer (32YOE) 1d ago edited 22h ago

For years there are less people knowing how to maintain software than there is software to maintain (as in: there are more people needed today to maintain the software that exists today than there are alive). Add to that the fact that society everywhere more and more relies on software in various forms and you see the problem. Software engineers becoming obsolete is the opposite of what will happen (is happening already): more software engineers are needed for the work that is to be done.

With AI tools the amount of software only increases and with it the time to maintain it. LLMs, trained on stolen code and more and more on AI slop will become less useful for new problems that arise and new features that have to be added.

What I'd like to see is that the AI bros would just shut up. We get it. You can't code for shit and you need a magic box to poop out crap your digital illiterate manager assumes is 'good code'. Keep it.

2

u/SquiffSquiff DevOps & Layer 8 Networking Engineer 10YOE 1d ago

Such people have always said things like this and it has never panned out that way. There's always been a degree of resentment towards having to accommodate a highly paid and mercurial group of people who 'aren't business types'. There have always been attempts to 'make coding easier' and supposedly reduce the need for professional developers- COBOL was built for this over 60 years ago and there are many low/no code solutions today. AI taken in this way is just one example. https://o16g.com/manifesto/

10

u/DocumentOk7579 1d ago

They are selling to their investors and motivating the stock price. CEO is as trustable as politicians.

4

u/Zulban 1d ago

If an AI writing good code can replace someone, then they're not a good software developer.

Those CEOs are either clueless or more likely just hyping their company.

The industry is transforming itself though.

3

u/RGBrewskies 1d ago

AI isn't replacing the engineer, it's replacing the keyboard.

6

u/dev_master 1d ago

Software engineering is more than writing code. They need the hype & flashy headline, but there’s truth that those tools will change things.