HACKER Q&A
📣 askSrThrowAway

Staff engineer with college grad skill level


I am a staff engineer at a very large company where tech is not the core product. Been here for ~6 months. I have been in software for ~20 years and I literally have the skills of a CS college grad (maybe). I do not have a bachelors degree. I could not tell you how tcp/ip works or create a linked list. I am very good at interviewing and a pretty good people / project leader. People like me and I look after the people that work for me, always looking to speak well of them to leadership. I have steadily attained higher job positions. I keep each job for a couple years before jumping to a new one for a raise. To say I have imposter syndrome is a massive understatement. I am also really burned out, unable to focus for more than 30 minutes at a time and have been like this for years. I have somehow reached this position far outside of my skillset and a pretty good salary (not faang). I find myself really liking this current company and would like to stay here. How do I make myself a better engineer at this stage of the game? Essentially I need 1 more promotion to director level and then I don't really have to worry about it, I can just do what I like which is manage people and projects. I am probably a couple years away from that. I never liked tech, I just kind of stumbled into it and stayed there because it pays well. I have managed to keep up with most of my work by working 60 - 70 hours a week a lot of the time and now I am fried. What should I do?


  👤 danbmil99 Accepted Answer ✓
Embrace your truth. You're a people person not a tech genius. That actually has huge value in the tech world because you know enough about tech to get some credibility. I don't know why your goal would be to become a better engineer at this point, your goal should be to become a better manager. There's probably politics involved, you need to read the tea leaves and figure out how to get promoted. But it's not by suddenly getting hacker fever in your 40s. If you never had it before, you're not going to get it now.

The main thing holding you back is your imposter syndrome. That's all I can say of your earlier work where engineering was more critical. Just drop it, admit you're a mediocre engineer but have confidence that you're a people person and be proud of that.

Someone I know quite well did just this at 50, got a Fang job with a Fang salary and is having a great time. He never really liked coding, he just fell into it because he's smart. You're not the only one. You just need to learn to lead with your strengths and stop perseverating about what you're not great at.


👤 jamestimmins
It sounds like you've been basically working as an engineering manager, rather than as a technical leader. Is there a reason you can't just make that a formal change and then you won't be in a position where you feel like you have to hide your relative lack of knowledge?

👤 brushfoot
Software is a big field. I don't know much about linked lists or TCP/IP either, and that's okay. I've created solutions that solve problems, and it sounds like you have too.

The programmer Steve Yegge wrote a "drunken rant" blogpost where he uses the term "racecar drivers" to describe programmers like us, programmers who create at a higher level of abstraction. The idea is that programmers strong in algorithms and theory of computation are the racecar engineers, while the rest of us just drive what they build.

It's not the most accurate analogy, and the tone in the rant alternates between tongue-in-cheek ribbing and concerningly genuine-sounding disdain, but the main point still stands in my opinion: There are different types of programmers. I would fall into the racecar driver category in Steve's view, and I'm fine with that. I like sitting close to the business and being able to add value quickly. I wouldn't be able to do that as a racecar engineer, at least not where I've worked and with what I'm interested in working on.

With that in mind, I'd say not to worry about becoming the kind of engineer you think you should unless you actually need to. E.g., does the company you're at expect a certain set of engineering skills from directors that you don't have yet? In that case I would find out what that entails and sign up for courses that teach it (Udemy is my go-to right now, but take your pick).

If not, I think you should just accept that you're different - not an impostor, just a different breed of software engineer, not a racecar engineer but no less valuable, and in certain domains more valuable for the unique mix of skills you bring to the table.


👤 creakingstairs
First of all, Maybe you should recognise yourself for your hard work so far. Also, it is admirable that you’d like to become even better after reaching staff level.

My 2 cent: you say you don’t like tech, then switch away from it! Most companies have manager track as well which are much less technical and it sounds like you are already a great manager. Could you ask your manager (or find a new job) to switch to more managerial track instead?


👤 ckdarby
I have never seen a promotion from staff engineer to director, does that ever happen?