Skip Navigation

Should I quit engineering?

I could use some honest advice from experienced programmers and engineers.

I'm almost at the two year mark as a developer. On paper I might look like a passable Junior Dev, but if you sat me down and asked me about algorithms or anything else I did to get my job in the first place I would be clueless. I can solve problems and always get my work done, but I don't even know the language/framework I use daily well enough to explain what's going on, I can just do things. I don't think I have imposter syndrome, I think I really might have let any skill I had atrophy.

I used to enjoy programming as a hobby in my spare time, but in two years I've opened the IDE on my personal machine no more than twice. People talk about all the side projects they have, but I have none. I feel too stressed out from the job to do any programming outside of work, even though I love it. I feel like I can't level up from a Junior to Senior because I either don't have the headspace or the will to do so. It doesn't help that the job I've had has taught me very little and my dev team has been a shitshow from the beginning.

At the moment I have an offer on the table to do a job that isn't engineering (but still tech) and it surprisingly pays more. Part of me thinks I should take that job, rediscover my passion in my spare time and build my skills, but I fear I might go down this route and never be able to come back to engineering. Not that I'm sure I want to.

It might sound defeatist but I don't think I'll ever be a top 5% or even 25% engineer. I could be average with a lot of work, but not great. I could potentially be great in the new field I'm being recruited for, but that's also hard to say without being in the job.

I know that some people just aren't cut out for being engineers. Maybe I have the aptitude but not the mentality to do this for 30+ years. I want to know if that's what it sounds like to people who've seen that before. If you were in my position, would you walk away and just be a hobbyist programmer or stick it out and hope to be a mediocre engineer one day?

56 comments
  • I could use some honest advice from experienced programmers and engineers.

    Old person programmer checking in.

    if you sat me down and asked me about algorithms or anything else I did to get my job in the first place I would be clueless.

    Don't sweat it. No one knows how the fuck computers work.

    Anyone who thinks they actually know, isnt educated enough to understand about the bits they don't understand.

    I can solve problems and always get my work done, but I don't even know the language/framework I use daily well enough to explain what's going on, I can just do things.

    Nice. You've got the important part. Ride that until the end.

    I don't think I have imposter syndrome, I think I really might have let any skill I had atrophy.

    It's not impostor syndrome when you're only 2 years into your career.

    If you feel like you don't know jack shit compared to what I know, after decades... that's because you don't know jack shit compared to what I know. There's nothing wrong with that. Someday I'll be pissing myself in a nursing home run by automation you maintain. We all get our turn.

    I'm the meantime, lucky for you, I can't be arsed to work more than 40 hours in a week, so there's plenty of work left to do while you learn.

    And I'll retire soon, and I'l promise I'll do you a solid and leave decades of my own mistakes and missteps out there for you to earn $$$$ cleaning up after. You're welcome... I guess.

    I used to enjoy programming as a hobby in my spare time, but in two years I've opened the IDE on my personal machine no more than twice.

    This is very normal. Welcome to the big leagues. If you do something you love for your job, eventually it's still just a job.

    People talk about all the side projects they have, but I have none. I feel too stressed out from the job to do any programming outside of work, even though I love it.

    This is very normal for your current stage of your career.

    If you stick with it, it gets better when you get to someday become a self-important slob like me who only works on really interesting problems.

    And how do I only work on really interesting problems? I make my boss hire a few junior developers and I delegate all the boring stuff to them.

    It's a pretty sweet deal for at least one of us. (Who for, varies by the day, really.)

    I feel like I can't level up from a Junior to Senior because I either don't have the headspace or the will to do so.

    I guarantee that you've learned way more than you think. If you stick with it, you'll have a random moment sometime soon when someone else just can't wrap their head around a concept you take for granted.

    It doesn't help that the job I've had has taught me very little and my dev team has been a shitshow from the beginning.

    That sucks, sorry. There are more shitty developer teams than good ones. If you stick with it, and do some strategic job hopping, you can find the good ones.

    This is a tough time to switch jobs in tech, I wouldn't blame you for not wanting to mess with it.

    At the moment I have an offer on the table to do a job that isn't engineering (but still tech) and it surprisingly pays more.

    Hell yes! Fuck your current employer for underpaying you!

    And you already admitted your current team is shit.

    Go take that money!

    but I fear I might go down this route and never be able to come back to engineering. Not that I'm sure I want to.

    Your developer skills won't vanish. Trust your future self.

    If someone asks why you spent time as a non-developer "those assholes weren't paying a fair wage" is a fine answer.

    It might sound defeatist but I don't think I'll ever be a top 5% or even 25% engineer.

    As a top 5% engineer (with a trophy for humility), it's not all they promised.

    It turns out there's still plenty I don't know, and I spend much more of my time confused and frustrated than I did before. The cool part is that I'm now confused and frustrated by really interesting problems.

    I could be average with a lot of work, but not great.

    I pay top dollar for average programmers. I'm not hiring right now, but let's stay in touch.

    There's a lot of coders out there without the self awareness to realize what they don't know. Those programmers never get any better, and never reach average.

    (Contrasted with myself, who, as I said, have several awards for excessive humility in spite of my undeniable genius. /s)

    I could potentially be great in the new field I'm being recruited for, but that's also hard to say without being in the job.

    Go find out!

    Beware though, when they find out you can code, they will find a way to add that to your job duties.

    I know that some people just aren't cut out for being engineers.

    True. Some people's ego or laziness blinds them to what they need to learn.

    I have a huge ego, and I am deeply lazy, but I occasionally put both in check for just long enough to learn.

    Maybe I have the aptitude but not the mentality to do this for 30+ years.

    Take it a year at a time. Once in awhile, take out some cash and spread it on the ground and sort of roll in it.

    Hopefully you've noticed, but while this job is usually a pain in the ass, it also pays really fucking well.

    I want to know if that's what it sounds like to people who've seen that before.

    I've had this conversation with all of my very top people, if that's any consolation.

    If you were in my position, would you walk away and just be a hobbyist programmer or stick it out and hope to be a mediocre engineer one day?

    If you told my younger self how much money I could make as a mediocre engineer, I would be all over that deal.

    I would've agonized about the trade-off if I knew I would stop loving my hobby, but taken comfort that I would later love it again.

    Everything happens in seasons. Some seasons I code for fun. Some I don't.

    A cool side effect of being paid to code is that when I do find the mind space to hobby code, I am a fucking badass hobby coder.

    I think you should take this job because your current employer is running a shitty team, and underpaying you. Then take another programming job later when the next opportunity arrives (and it will..it really will.)

  • You have imposter syndrome so bad you don't even think you're a real imposter!

    • Oof. Imposter syndrome is real and it's debilitating. If a person does their job to the best of their ability and stops giving a fuck about what others might think, it becomes easier to overcome.

      OP needs to realize that engineering is not about memorizing algorithms or being in the top 5%. It's about doing whatever work you are paid to do efficiently and quickly. Quite honestly, most "engineers" I know don't even do that much.

      Monday through Friday/8-5, engineering is about solving stupid problems and getting a paid for it. That's it. (Maybe you have to go to meetings too.)

      Some engineers can memorize formulas and rattle off 200 ways to do a thing. Some engineers are constantly in some kind of dick-swinging contest with their peers. Some are constantly chasing the "new shiny" and won't shut the fuck up about it. The most annoying ones blast out "helpful code segments" on LinkedIn to make themselves look smarter.

      Fuck all that noise. It's annoying, a distraction and it'll cause a person to get burned out of the field super quick.

      Sorry if that was a bit of a rant, but I have seen too many bright eyed Jr. engineers get crushed by the bullshit that can go on.

  • Gonna be the 100th person to chime in:

    Hobby dev with a different main profession for 20 yrs here. Its the same everywhere, in any profession. I know, I‘ve had a couple.

    In a bad environment, you‘ll never flourish. You wont even know your actual strengths. Please quit, try something else. Not necessarily a different profession but definitely a different team/company.

    Most of what you mentioned tells me that you‘re currently in a bad place. If the team is bad, everything else gets spoiled. Sadly, you need experience to tell the difference. It might be great for someone else even, just not for you.

    What you could use is some hard evidence to your strengths, your passions and your specific personality. Most likely this is achieved by taking a break. Either a long nice vacation or moving on. But time off is very important. Reflection is the key and it needs time and space.

    All the best and dont worry about not being enough or doing badly. You‘re doing allright.

  • I am called a srnior developer and I haven't done a project in my spare time in many years. Not because I don't want to, but because I do enough of that at work and I lack the energy. Most people I know are in the same boat.

  • I've been a developer for about 15 years.

    Nothing you've said makes me feel like you should quit.
    Wanting more money is a perfectly respectable reason to want to quit, and if you think it would make you happier, go for it. Get paid.

    It's not better to be an engineer or anything. No one will mind or hold it against you if you come back and say that you were a jr dev, took a position as otherntech job, but it wasn't for you so now your back with a new perspective and set of experiences.

    Programming was once my passion. I got a lot of joy from it. I still do, and I would say that it still is a passion. But I've stopped really doing side projects unless it's particularly interesting. There's more to life than career development, and that's okay.

    Without seeing your code, I can't know how good you actually are. Like most people, you're probably average. Don't beat yourself up over not knowing algorithms. No one knows those, they know the keywords and how to describe a problem and then how to pick the right one or tweak something to make it right.

    The road from jr to senior is also less about technical proficiency than you would expect.
    Technical competency is a must, but you'll go further as a competent technical leader who can breakdown work, describe it, and help their teammates than as a lone high performer.

  • In my opinion you should take the opportunity and check if you will like this new job. And mind you in a lot of jobs there is room for some programming to automate some processes internally in the company if you feel like it.

    But it is great that you acknowledge your weaknesses and accept them. I am also leading a team of sw devs and have a couple of juniors in my team and I try to dedicate enough time to them to explain to them more complex topics, give them recommendations on how to write better and more maintainable code, etc. And I have the feeling your lead isn't doing much or showing interest in your work, which is a pity and very demotivating because I have been in your shoes before and know exactly the feeling.

    And a bit of perspective, I have a guy in my team who is pretty smart and overall a great Dev, the problem is that it is extremely difficult to work with him, he doesn't have a high working culture, thinks that others are stupid and doesn't do his job well. I know how much he can but it is really a pain to work with him. Believe me I tried a lot of different approaches with him to make it work and so far with mixed results.

    On the other hand I have a junior in my team who isn't the best programmer and I believe he will never be, but he is very positive, works hard, really tries and in general has a very high work culture and it is so much more enjoyable to work with him, so you realise that skills and brain capacity aren't everything and that sometimes work attitude is way more important.

    I wish you all the best in your new endeavour and I hope you feel happier soon.

  • Over the 16 years since graduating, I learned that defining yourself by your career is often a trap. At least it doesn’t sound like you’re getting deep satisfaction from your work.

    I burnt myself pretty bad going into the field thinking I was perusing a passion career and just kept getting kicked down for 5 years chasing a passion career until I found a work environment that paid decent and valued work/home life balance. In school I thought I’d never sell my soul, but now I’ve been working with the same people for a decade now and pretty happy about it, even with if the actual work is utterly boring.

    Unless you’re a fortunate few that are truly passionate, driven, and lucky enough to land a career that fills your entire bucket, look for a job you can tolerate BUT with group of people that support you and your growth. In the end 2 years in is a drop in the bucket and you’ll see your career change directions over and over. You can always learn new skills or relearn them, so if this new job is something different to get you out of a slump, I say go for it. No one can answer for yourself but you.

  • Not a software engineer, but work closely with them in a different field. This is 100% common, especially for junior devs.

    My honest advice is to push with it and truly spend some time in the field, and if you hate it, then leave without regrets. However, know that the initial bump is the hardest, over time it gets easier and you'll even likely find yourself doing side projects on your own time!

    Just my 2 cents.

  • I’m sort of the same as you.

    I took a 6 bootcamp, got a job straight away after as a full stack junior web developer.

    Programming as a job was the single worst decision I make. I was working with languages and frameworks I don’t enjoy, I was building a product I don’t care about in the slightest.

    It took me 1 year of full time web dev before I quit and went back to regular IT which isn’t the most fun thing, but it works for me. I’ve been doing it for over a decade so I can do it in my sleep, it’s easy money tbh. Programming for me is definitely more of a hobby than a job. Having it as a job really killed my love for it

    Nowadays I only code in Python which I LOVE. I use my programming skills to automate work tasks, and I make small scripts here and there and it’s so much fun.

    Solving small problems with scripts is just what I enjoy doing. I get to work on a project for a day or two. I can complete it fast then move on to something else.

    Now I’m about transitioning into Data Engineering instead of Software Development.

  • From your description, my view is limited, there is no correct solution. Any choice is viable and fine, and any decision you make will be due to the reasons you chose with.

    You didn't disclose what the alternative opportunity and field is, and also not your view on the field and you in it. So it's difficult to assess and put into relation.

    You didn't disclose what you did before work, but two years is not that much experience for an engineer. Especially if it is not a particularly nourishing environment. You gain such expertise through experience and exposure over time. Depending on the project and environment it's also not enough to fully understand and intuitively know a big project.

    At my workplace we separate role from [personal] development level. As a developer one's role may be developer or lead developer. The development stages are Trainee, Junior, Professional, Senior. If you can work on tasks mostly self-reliant (asking and collaborating is still open of course; knowing when to ask is a skill too) and can put tasks and work into context, you are a Professional. A Senior can support and guide the team. It is perfectly fine to settle for Professional.

    Not being exceptional is not a good reason to quit. If you work and bring value, that's still value. Don't decide whether you are valuable or good enough for others. (This leaves out the question of what it means for yourself of course. Tackle those questions individually.)

    You say you get your work done. Continuing to do that at a Professional Developer rather than Senior level is fine. You still bring value.

    I want to know if that’s what it sounds like to people who’ve seen that before. If you were in my position, would you walk away and just be a hobbyist programmer or stick it out and hope to be a mediocre engineer one day?

    I really can't answer that specifically.

    You said your team environment is not the best. I assume you don't do retrospectives or personal feedback. Is feedback something you could ask [of some of] your team members, lead, or seniors? (Take care not to poison your question for open feedback with your negative assumptions of yourself and your work.)

    Where would you like to be? Separating what you think is expected of you from your expectation and view of yourself and from what you enjoyed and where you think you would feel comfortable settling, how would you lay those out?

    Have you considered switching project or employer? You have only seen and experienced that place. A different work environment could be very different - even in the same field.

  • I’m a manager at a FAANG and have been involved in tech and scientific research for commercial, governmental, and military applications for about 35 years now, and have been through a lot of different careers in the course of things.

    First - and I really don’t want to come off like a dick here - you’re two years in. Some people take off, and others stay at the same level for a decade or more. I am the absolute last person to argue that we live in a meritocracy - it’s a combination of the luck of landing with the right group on the right projects - but there’s also something to be said about tenacity in making yourself heard or moving on. You can’t know a whole lot with two years of experience. When I hire someone, I expect to hold their hand for six months and gradually turn more responsibility over as they develop both their technical and personal/project skills.

    That said, if you really hate it, it’s probably time to move on. If you’re looking to move into a PM style role, make sure that you have an idea of what that all involves, and make sure you know the career path - even if the current offer pays more, PMs in my experience cap out at a lower level for compensation than engineers. Getting a $10k bump might seem like you’re moving up, but a) it doesn’t sound like you’re comparing it to other engineering offers and b) we’re in a down market and I’d be hesitant to advise anyone to make a jump right now if their current position is secure. Historically speaking, I’m expecting demand to start to climb back to high levels in the next 1-2 years.

    Honestly, it just sounds like your job sucks. I have regularly had students, interns, and mentees in my career because that’s important to me. One thing I regularly tell people is that if there’s something that they choose to read about rather than watching Netflix on a Saturday, that’s something they should be considering doing for a living. Obviously that doesn’t cover Harry Potter, but if you’re reading about ants or neural networks or Bayesian models or software design patterns, that’s a pretty good hint as to where you should be steering. If you’d rather work on space systems, or weapons, or games, or robots, or LLMs, or whatever - you can slide over with side and hobby projects. If you’re too depressed to even do that, take the other job. I’d rather hire a person who quit their job to drive for Uber while they worked on their own AI project than someone who was a full stack engineer at a startup that went under.

    Anyway, that’s my advice. Let me know if I can clarify anything.

  • I also think it's probably a good idea to try out the new career path. Doing software dev as a job, and doing it as a hobby because you like to, are very different when it comes to motivations and goals. Don't think of it as walking away and just being a lowly hobby dev though, you can build your skills and work on what you want to as a hobby, for the problems you are trying to solve and things you like to work on, and that's totally ok.

    Not everyone wants to put in the effort to play guitar for a living, but you can definitely still enjoy guitar.

  • Being mediocre is fine. And you can't expect to feel competent after 2 years, especially if you're not in a supportive environment. Maybe 5 years. It took me muuuch longer than 5.... This stuff is hard, don't expect to master it quickly.

  • You have to do what's best for yourself and your situation.

    I was a systems administrator for a decade or so and I reached a turning point... I had a bad experience, was burning out, and I had the opportunity to take a new sysadmin gig at a credit union, or take a step down to a support role, that paid more, with less responsibility, and had IPO shares...

    My kid was getting ready for college, so option 1 positioned me well if I needed to load up student loans. Option 2 maybe made it so we wouldn't need student loans.

    I went with option 2. Less stress, less responsibility, more pay, paid for kids college in cash, now through a series of IPOs and acquisitions, I'm working for a VERY large tech company.

    Does "not being an engineer" look right for you? Quite possibly.

  • First of all if you solve problems that means you know enough of the subject to reason out the solution, it may not be perfect but very few solutions are.

    I have been working on legacy code and maintaining old c++ code for a decade (200.000 loc) and most of the time I had to spend days debugging and reading code just to understand enough to get a possible solution, and then I still end up writing a solution that breaks in a different corner case that I never could have imagined.

    So yes most of the time you feel like you don't know anything, but over time you end up knowing a lot of how that codebase works. And after two years you must have picked up something about what you are working on.

    Then you have those programming language genius colleagues, that know all the tips and tricks of a language, I use them to get ideas on solutions, because they always have an opinion on what is the "right" way of doing stuff.

    That's just my 2 cents.

56 comments