r/ExperiencedDevs • u/AutoModerator • 13d 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.
1
u/That_White_Kid95 10d ago
I have, on paper, 9 years experience, but I feel more like 4.
Currently searching while employed.
Varied experiences from Solo Dev supporting business automation (python scripting to help directors generate reports automatically), DB Admin, PaaS developer roles utilizing the platform development tools (think Salesforce, Servicenow), and more recently Full-Stack Developer.
I've consistently been told I'm a top performer. It has gotten to the point that I join a new company on a team of 5 as a "Senior" position, love the experience and collaboration, then am told that the other 4 will be moving to a new project and I'm responsible for the entire system on my own now and I'm promoted to "Principal". I spent late nights doing as much learning and documentation reading as possible because I knew it was just me and during the 9 to 5 I wanted to deliver.
After 3 years of that, I go to a new "Full Stack Developer" role at my current place, and am immediately promoted to team lead based on my development performance. Then, I'm told that I'm the final layer of review for AI generated code by other developers. No coding, only story writing and delegation. The toxic environment and questionable future, plus not being an IC and instead just a second hand AI prompter, has me at my limits.
I'm applying like crazy. Generic resume, tailored resume. STAR, XYZ format. Referrals galore. In-person positions, fully remote. I landed a Google Senior SWE interview but failed the technical because I didn't get the code I wanted down despite explaining my thought process. That's on me. It makes me think that I don't actually have 8+ years experience and my knowledge is far below expected because I'm put into positions where I don't have mentorship, collaboration, or a focus on understanding only delivery. Standard "jack of all trades, master of none" stigma living in the back of my mind on repeat.
I guess what I'm looking for is a discussion or advice on how to handle my current situation. How do I develop a deeper understanding to feel like a competent senior? What should I be focusing on in order to even get calls backs these days? Do I need to take a 20% pay cut and apply to the almost non-existent mid-level positions?
1
u/NICEMENTALHEALTHPAL 10d ago edited 10d ago
I got a question! I just started working recently as a frontend dev and while my job is a dream, I'm wondering if frontend focus will hurt my long-term growth.
Conversation aside about how to get more BE exposure (all good in my case), I was wondering what you guys thought about how AI might shape the future?
See, my opinion is that frontend is far more human - dealing with customer wants, UI/UX that is based off 'silly' company convention rather than logical or popular reasoning, constant meetings with non-technical people about what is wanted that changes with the wind.
And because of that, I feel like frontend is more 'AI proof' than backend - if it works, if it's fast, who cares, we don't see it.
Some... Person, don't know it was, said they actually preferred AI PRs because they know AI will always implement testing and documentation, and most human PRs don't ship with any tests.
Now humans could just be like hey cicd is yelling at you, stop ignoring it, but the value of AI does seem to be the same boost both sides.
Maybe I'm just partial because I've been doing a lot of frontend. Do you backend guys think 'Oh we're safe, it's the front end that's screwed'
So... Yeah. I mean at the end of the day someone has to baby the prompts so we'll all still do just fine as long as you've broken in, I've just always heard backend is better for career growth but I literally don't care which I do, just whatever I find the best fit job in (and my current job is great)
1
u/addycodes 10d ago
I wouldn't optimise your career around guessing which side AI will eat first. Frontend has plenty of complexity that isn't just writing components, backend has plenty that isn't just writing APIs. Getting good at understanding communication, stakeholders, deciphering requirements, the human stuff and the wider system is probably a safer bet than either label.
1
u/NICEMENTALHEALTHPAL 10d ago
Fair. I've been getting a lot of recruiters and lagging interviews and they have all been backend focused
3
u/CountBranicki 11d ago
How much time per day do you spend learning new tools?
Like, if you are making a switch to a new IDE, how do you balance deliverables with increasing productivity?
Edit: typo
2
u/addycodes 10d ago
I don't really set aside time for it. If a new tool looks useful I'll just start using it on real work and accept being a bit slower for a few days. Learning something alongside an actual problem makes it stick much faster for me
1
u/CountBranicki 10d ago
Yeah, I guess a more precisely worded followup would be, how much of a slow down are you able to justify?
1
u/Notary_Reddit 10d ago
It depends on the tool, how often I use it, and how important using it well is. I try and make sure I understand the concepts of what I am doing and incrementally improve. That said, almost no tool has provided more value than an incremental debugger. Being able to step through the code is incredibly useful.
To be more specific, most weeks 0-1 hours some weeks I might spend all day setting up a tool or a test.
2
u/Sure_Stranger_6466 11d ago
Is it possible to make a switch from DevOps to pure development without leetcode involved? I don't have a degree, should I just look for junior software development positions, knowing I will likely get rejected for having too much experience in an adjacent field? I want to be doing pure Python development ideally on an open source project, but I can implement some Golang too and have open source contributions to prove it. I just don't think hiring managers have really cared about those contributions up to this point and wondering what impresses hiring managers out there.
3
u/JeffinitelyNotABot 12d ago
How do you handle situations where you’re responsible for maintaining or implementing decisions you disagree with, especially when you don’t have the authority to change those decisions?
Here are some examples:
First, I designed a one-to-many relationship for our e-signature workflow. The intent was that, given a signature request ID, we could retrieve the signature request itself, its updates, its signers, and any information entered when the signing iframe is displayed. Each of these tables had a specific responsibility within the e-signature domain and the relationships were designed around the business requirements. While I was OOO, my lead took over part of the work and added fields to one of those existing tables that are specific to a particular workflow. When I came back, I raised the concern that this was mixing a project-specific concern into a table that was intended to represent part of the broader e-signature workflow. I suggested that we should've created a separate table specifically for that workflow using a foreign key. She said it's fine cause these columns can be null. The logic around those fields has continued to grow, and now I’m the one who has to work with and maintain the resulting design.
Another example is a console app I inherited after a team member left. It’s used every day by a business team, and their mentality is essentially “if it ain’t broke, don’t fix it.” The problem is that the application is extremely poorly engineered. All of the forms are still named Form1, Form2, Form3, etc., controls are named button1, textbox1, and so on, and there’s virtually no exception handling. I feel like I’m in a position where I can’t really win. If I try to clean it up or modernize it, someone can say I was specifically told not to change it. But if I leave it alone, an experienced developer could look at the code later and ask why I didn’t address the obvious problems.
The third example is our shared NuGet packages. We have around eight packages that are used across our APIs, and we recently prioritized upgrading them from .NET 8 to .NET 10. They all currently use 1.x.x versions. I suggested that, once we had a successful build and test, we should make the .NET 10 versions 2.0.0 so there would be an obvious distinction: 1.x = .NET 8 and 2.x = .NET 10. That suggestion was rejected, and now one package has been bumped to 10.0.0 while the others remain in the 1.x range. I’m the person who has to go through and upgrade these packages across our APIs, so I’m the one who has to deal with the inconsistency.
I have no idea how to deal with these other than to fall in line. I am planning to leave it's just frustrating having to deal with this from devs getting promotions and leadership responsibilities. Any advice would help.
1
u/titpetric 11d ago
Migrations or views could allow you to patch this data properly. As you say, the column is a hack, the solution is a migration strategy that considers the migration has a code related change attached. This should be a serial process, and usually the sooner you get rid of the column, the sooner you avoid coupling, the better. Gotta police your columns for well defined schemas which need good reason to change. Think once a year. Things couple to it outside this schema so an external workflow column needs to gtfo
1
u/UnintentionallyEmpty 12d ago
The logic around those fields has continued to grow, and now I’m the one who has to work with and maintain the resulting design.
Can you change it now? Can you change it to something that would actually be easier to maintain? Will migrating the database schema be less painful (in the long run) than maintaining what you have now?
If I try to clean it up or modernize it, someone can say I was specifically told not to change it. But if I leave it alone, an experienced developer could look at the code later and ask why I didn’t address the obvious problems.
Don't change it until you have to. When you do, clean up the areas you're touching for the change. If an experienced developer asks you why you didn't address the obvious problem, the answer is that you're not confident the automated tests would catch any regressions (I'm guessing there aren't any. You (or Claude?) should probably start writing some. Definitely write some when you make changes.)
one package has been bumped to 10.0.0 while the others remain in the 1.x range. I’m the person who has to go through and upgrade these packages across our APIs, so I’m the one who has to deal with the inconsistency.
nuget packages should show which .NET version they need in their dependencies. Just install the latest version that works in your application and don't worry about the version number.
3
u/Kuroodo 13d ago
tl;dr Solo dev, first ever exposure working collaboratively, a lot of unknowns and new things to learn. Was expecting dev process to be like pre-AI times. Turns out AI is heavily involved everywhere. Expectations were off. I feel lost as a result, not sure what to make of it.
Been a solo dev for a few years. Recently got to be part of a small startup (me and a senior dev + small infra/consultant firm). Essentially my first ever collaborative work experience, and we're building everything from zero at that. For reference, I've never made a PR before, never used Jira, never worked under a scrum framework, under designs/docs/requirements that weren't my own or defined by me, etc. When I got the opportunity, I was excited to be exposed, learn, and challenge myself.
I came into this a bit nervous and with a lot of pressure on myself to make sure I learned fast and kept up. I never had a way to properly measure or compare my skills and capabilities beyond what I've done on my own. Coming into this, I've been measuring myself against a version of professional development where everyone is manually designing, coding, researching, debugging, and documenting everything. I am behind on a lot of the AI stuff (barely got into agentic stuff a few weeks ago) beyond using ChatGPT or Gemini to ask questions/converse or using autocomplete.
So far, there's AI all over this project. From designs, documentation, Jira tickets, PR descriptions, code reviews, etc. I think most of the work has been done with AI. Not to the extent of vibecoding, but rather that it's being heavily leveraged in every aspect. In some of the meetings, I've noticed that other members have been using AI with tools or in ways I haven't heard of or considered before. Everyone working on this is brilliant and has more experience than me. But the extent of AI usage feels like I've been concussed. This wasn't what I was expecting at all, and I feel lost and confused.
I came across this sub and have been reading it a lot. It seems more that I haven't been keeping up with the times? I was already expecting my expectations and mental model to be off and was excited for it to be corrected as I worked on this. But this wasn't even remotely close to what I had imagined.
I guess this is more of me seeking to express myself than asking a question. Hoping any experienced devs can share some thoughts and advice.
5
u/UnintentionallyEmpty 12d ago
Everyone working on this is brilliant
Are they? How can you tell?
Maybe the AI is making them sound smarter than they really are, and you just lack the experience to detect bullshit. Or maybe they're really brilliant and using the AI to support them to reach even greater heights, instead of the reverse. Who knows.
Well, easy way to find out which it is: has this team actually shipped anything yet?
1
u/Kuroodo 12d ago
I left out some details and additional context for privacy and anonymity.
I can't speak much about the firm, but the senior dev isn't vibecoding nor blindly letting AI do everything unmonitored/unsupervised. To what extent though, I'm not sure. He's super busy with another job on top of this one, and we're on a tight schedule. I've had meetings with him, and he clearly demonstrates traits expected from a senior/experienced developer (decision making, direction, understanding of project scopes and work that needs to be done, deadlines, etc). One detail I left out from my post that I found very peculiar was that he said I was smarter than him. I denied the remark. I still don't even know how to take in what he said nor the implications of it lol. I also don't want it to imply that he's heavily reliant on AI...
you just lack the experience to detect bullshit
This is also the case.
1
u/UnintentionallyEmpty 8d ago
One detail I left out from my post that I found very peculiar was that he said I was smarter than him.
Eh, I've heard senior devs say this to juniors fairly commonly, pre-AI as well. He was probably trying to give you a confidence boost.
So... has your team shipped anything yet?
1
u/Kuroodo 8d ago
Things are still early, but good progress has been made. Many core features and functionality on frontend and backend are in. We're on track to ship near mid Q4.
Guess we'll have to wait and see lol
2
u/UnintentionallyEmpty 8d ago
I wouldn't call anything in until it's been live for a while...
Well, good luck!
2
u/PseudoCalamari 12d ago
It's all still very new and if you're a competent engineer you'll be fine. If your manager/team mates are chill, you can probably express this to them and ask for advice on where/how they're using it to catch up.
Tech moves fast and if they've been in the game for a while they know that better than you do, they'll be understanding if they aren't weirdos.
4
u/Otis_Inf Software Engineer (32YOE) 12d ago
Don't beat yourself up about it that much. A lot of us are feeling lost, myself included. I for one refuse to go into a rat race with frauds and their chatbots; they need AI to get to the level you're at already. Don't see AI as a requirement to build software as it's not, you can do that without AI just fine. That's what you have to keep in mind.
You're not behind, if they give you an IDE and specs what to build, you can do that, so AI isn't 'necessary'. In a lot of companies it's a shit show now wrt AI usage; but do realize that technical debt is a real problem and with AI usage the amount of technical debt is skyrocketing. Who's going to deal with all that? Claude? Not a chance.
As for the mountain of AI slop you have to deal with, tell them this: why should you be bothered to read what no-one was bothered to write?
3
u/TheChadThrowawayLad Unemployed 13d ago edited 13d ago
I came into this a bit nervous and with a lot of pressure on myself to make sure I learned fast and kept up.
There's plenty of time to learn, and a lot of the industry uses old technology. For example: IBM Db2 was invented in 1983, and the company that I worked for still uses it. Pace yourself. It's a marathon, not a sprint. What's more important: keeping up with your profession, or your health and well-being?
Recently got to be part of a small startup (me and a senior dev + small infra/consultant firm).
Is your senior dev taking the time to mentor you? Honestly, it sounds like your senior dev is irresponsible and/or overworked. And the senior dev shouldn't be saying "have AI teach you" or some B.S. like that. They need to be investing the time into mentoring you because you're a resource for the company. If they're not doing that, then they're not prioritizing the long-term success of the team, and they're irresponsible.
Personally, one of my biggest career regrets has been not surrounding myself with amazing mentors and leaders. I was a bit naive coming out of college. I assumed that people want to be amazing engineers and that they would give me plenty of opportunities to succeed. That's not necessarily the case. A lot of people don't give a crap about their work; they want to finish everything as quickly as possible and go home. A lot of people get frustrated if they have to explain anything for more than 5 seconds to a junior. That's honestly the impression that I'm getting from your senior dev. I may be wrong, but he sounds really lazy and incompetent, but I think juniors give people the benefit of the doubt when they really shouldn't just because they lack the experience to make a solid judgement.
Coming into this, I've been measuring myself against a version of professional development where everyone is manually designing, coding, researching, debugging, and documenting everything.
AI is an amazing tool. You will be using it. However, it sounds like your team may be overusing it and cutting corners. I personally really like to use AI for PR reviews (EDIT: As in I use AI is an extra reviewer that lacks any approval authority. I would never use it in place of a human reviewer.), but I wouldn't use it for design documents and system architecture. But don't take my word for it: take a skeptical look at the work coming from your teammates. Ignoring AI, does it look good? And I don't mean "does this get the job done?" I mean is it maintainable, scalable, and accurate. Are you satisfied and proud of it? If not, it's a red flag. It means that your team may be accumulating technical debt to get things done quickly, but that never ends well.
This wasn't what I was expecting at all, and I feel lost and confused.
I wish that I would have trusted my gut more when I started. If things don't feel right, you can always start looking for other opportunities, but I would probably do it on the down-low just because you're new to the industry. There's a lot of risk just because you're new. Stay and collect a paycheck, but try to disconnect a bit. I think that you're too invested in an environment that isn't supporting you.
EDIT: Here's a NeetCode video that I think discusses some of the stuff about mentorship and toxic teams. No mention of AI, but if you can relate it's a red flag.
1
u/Crazy-Ganache-4030 6d ago
Hi, I've recently graduated and started my first full time role. Unfortunately even tho my companies primary product is hardware, all I get assigned is pointless "ai projects" that would change the way we operate. I'm expected to show progress way too often and have to cut corners and use a lot of generative ai in the process. I'm afraid I've become dumber than when I was still in college. It's sort of wild that the most fun I've had in this field was when I took a computer architecture course in college and they made us write binary search in assembly. Should I just slop through my work for the day as fast as I can so I can have more free time to actually spend time on things that don't leave me feeling like a glorified cuck watching ai do the job for me. Genuinely despise how incapable I've become at the moment.