I learned to build websites around 2011 when I was in my mid 20's. I had been working as a cleaner for some time and had come to realise I needed to escape that particular poverty trap. My father and grandfather were also cleaners for the majority of their working lives and often expressed regret before they passed. After some months self-learning I had amassed the courage to start applying for internships and junior jobs. No luck initially, though eventually I was able to begin a data entry job on a 12 month contract. I was finally able to sit at a desk and have a work assigned email address!
Half-way into my contract I organised a dozen or so meetups at Google Campus. There I met people who gave me the inspiration to continue applying for jobs. I was a fish out of water but it was a fantastic time. Finally, after another year or so of searching, I received an offer. I was able to jump in at the deep end had full project ownership over critical projects for several international brands. Over the next year I was able to fit in a wealth of experience and saw my career progress nicely as I jumped from project to project.
Eventually I was offered the chance to join a small business services company and lead development of financial systems there. I accepted, and I have been here for over half a decade now with some success. However, I now feel woefully under-experienced compared to my peers and sorely need mentorship.
I feel hopelessly trapped and constantly on the precipice of professional and personal catastrophe. I am not fit the for job market as a senior engineer, and I no longer have the financial means to take a step back into a less senior role at a company with a larger engineering team.
My scenario is certainly not unique but I have no peers to discuss this issue with so I am reaching out to HN for stern and dispassionate advice.
I'm already the third person to pull this quote out of your post. I think you need to stop and look at this. You are saying "I am living beyond my means."
As long as you are living beyond your means, you are going to have to make compromises in your career. Look around outside. Any of us could be laid off three months from now if something doesn't change soon. As much as you need a career mentor right now, you need to look at how finances trap you too.
If what you say or what I say are true, this may be the last time in a good long while that you can refinance your loans at a lower rate. Limiting your discretionary spending, finding a new 'normal' that is sustainable.
"Senior Developer" is a heavily diluted term at this point. You can generally only count on it meaning 3 years experience. It's effectively code for "did not wash out".
The problem here seems to be that you are in fact a Lead Engineer, not a Senior Engineer, which does have some pretty hefty expectations associated with it. You feel like the blind leading the blind.
If you want to go back to being 'just' a Senior engineer, then you need to do what the rest of us do when we are objectively or subjectively good at something that makes us uncomfortable or unhappy.
You lie by omission.
Downplay the leadership responsibilities of your position on your resume, so you look like someone who can be groomed into a lead role instead of expected to do it from Day 1. You'll get to backfill some of your experience along the way into that role, or they'll leave you alone.
"I no longer have the financial means to take a step back into a less senior role at a company with a larger engineering team"
I would argue you can't afford to stay where you are. If you're not happy and feel under-qualified (true or not), you'll never get promoted again. You're dooming your career ultimately, for a short-term tradeoff.
Now, that's not to say you should go more junior! Rather, you need to find your zone of genius. It sounds a bit cheesy, but I recommend you spend some time trying to figure out what you're both good at AND enjoy:
https://medium.com/the-mission/6-ways-to-uncover-your-person...
There are so many highly-paid/highly-rewarded roles in tech! I think you're underestimating your ability to find a job you both love and which will value you (financially and intrinsically).
To sum it up: you don't need mentorship, you just need a new job :) After 5 years, that feels insurmountable. It's not!
(My email is in my profile if you want to reach out and share more explicitly about your financials if you're willing to share numbers. I'm happy to help you figure out your options, and talk about comp! And obviously I'll keep everything confidential.)
1) Level Up - pick a discipline and practice hard on your free time. Example: It could be becoming a cloud architect (pick aws or azure). There are tons of courses available for free on the company websites/youtube etc... learn theory -> practice -> repeat. Seek a mentor in that career path and keep your progress in check with her/him. There will come a time where you will feel confident to start applying for that position.
(2) Read good code from awesome contributors (open source repositories on Github).
(3) Persist (as you have been) - you had been amazing at switching from your earlier profession to software developer ( kudos to you!). write those good memories and experience and read them everytime you feel low.
(4) Make sure you are physically and mentally fit? Talk to your doctor. Sometime something as simple as proper nutrition / vitamin levels / exercise can do wonders to lift your mood and get you going.
I am no way at the level of being a mentor but reading your story wanted to share my two cents.
From your post it is a bit unclear what you mean by feeling under-experienced compared to your peers. Is it at technical level? Work ethic/principles? Understanding of the whole technology stack? Or perhaps process in your company?
While any of these topics can be tackled and improved independently, little would contribute so much as literature on:
- Clean methodology from Robert C. Martin. In particular, "Clean Coder" (ISBN-13 : 978-0137081073).
- Software craftsmanship. In particular "The software craftsman" (ISBN-13 : 978-0134052502).
These should give you, in my humble opinion, some fresh motivation and abstract overview on software development in general.
I wish you the best of luck in your endeavors!
Take steps internally to become more technical. This may include stepping back from some of the other roles, promulgating hack weeks, or even shifting departments. Explain to the owners that you want to be more technical.
You can also hire a career coach who can give you some other steps.
Interview. Prepping and having an interview will teach you more about how "fit" you are for a senior engineer than any other advice.
Be prepared to take some kind of financial hit. Start saving and cutting back now (if you can). This will make the transition easier.
I feel you, I've been in a similar place. You can leave.
> My scenario is certainly not unique but I have no peers to discuss this issue with so I am reaching out to HN for stern and dispassionate advice.
I'm trying to connect to more people I can help and learn from. You can find more info here:
If any of the things mentioned in the post sound valuable to you—give me a shout! Worst case, we spend 10 minutes ranting but I am yet to see a conversation started with this post that I'd regret.
> I feel hopelessly trapped and constantly on the precipice of professional and personal catastrophe.
You describe how I felt when I reached my limit of stress, after years of burnout.
If you can, try to get some rest and be easier on yourself.
Coming from your background (having experienced and escaped poverty, being a self-taught engineer) makes it really easy for one to feel like this. Consider that you might not have the right perspective due to the stress. You might as well feel like this with decent savings in the bank, a three letter job title and a six-figure salary. Often it makes no difference.
Sometimes I envy my friends and colleagues who grew up feeling safe, because it's much easier for them to avoid making decisions driven by fear. Now, I live a fairly comfortable life, and _rationally_ I am aware of the irony of that statement, but it doesn't change how I feel.
If you're anything like me—consider speaking to a therapist. I'm not kidding, the only thing I regret is doing this so late.
I'd suggest trying to become a little more well rounded. Take some online Comp.Sci. courses if you feel like you're missing something in that area. Or even start a degree program while you're working. The stuff you think you don't know, go and tinker with that, ideally while getting paid ;) I'm willing to bet that in the specific areas you spent 5 years on you've got a lot of relevant experience.
Presumably you've built relationships and some human credit where you are that you can cash on here.
If you're looking to switch jobs your new employer is likely to match or offer you a better salary. Whether your title is "senior engineer" or whatnot. Given you work in a smaller company I wouldn't be surprised if a larger tech company pays higher salaries anyways. You can always carefully test the waters there... No shame in staying with the same company though if they're happy with you and you're happy with them...
Without knowing you or any of the specifics this sounds like a success story. Stay positive!
If you don't mind sharing (and I understand if you don't want to), why not? Often when feeling stuck just having some spare cash so you 'could' escape can really help, even if you never use it.
I imagine you are very good at your job, better than you think. I also imagine you are more capable than you believe. One note about devops and modern [insert popular technology/methodology] is that as tech people we love to share but we often don't share with the proper context. "I love X!" we say, instead of "I love X and work at company Y doing Z in order to solve Q under S constraints!"
Large companies deal with incredible scale, copious data, and as far as I can tell create only complex solutions. This is because the challenges they face are complicated, so... no easy wins. Is your company FAANG size? Maybe start to learn Kubernetes, if not... ignore it for now. Don't feel the stress of learning solutions to problems you don't have. Look for the UNIXs not the Blockchains.
The best quick intro to the modern devops/cloud developer stuff is easier. Learn a bit of docker. Learn a bit of AWS, Google, Azure or Digital Ocean. Make little experiments, or simply ask people who care about it. You don't have to know everything, no one expects you to. Trying to "cram" a bunch of complicated technologies into your brain while you are afraid and hurting isn't easy.
Feel better friend.
With smaller firms, you run the risk of insufficient n-value to find great mentors (though you can be lucky.) In larger firms, esp with cross-functional roles, you increase your chance of finding great mentors.
FAANG seems like one obvious choice. I'm not sure what the top tier consultancies might be in 2020 but they will also be great choices. Good consulting firms are sociable, you work in intense situations where you quickly develop relationships, and there is lots of attrition and cross-pollination -- which means you constantly increase the n-value and your chances of meeting super-interesting people.
I started my career at Accenture (the consultancy.) Many of my informal mentors are still from Accenture. I've had the pleasure of seeing many progress through their careers. Some have rapidly ascended at other firms. Others more slowly, to the extent that the mentoring relationship has flipped. It has been 19yrs since I started there, 14yrs since I left there and the relationships still continue.
Happy to chat, contact info in my profile.
Key point like others have already said: You're not on the precipice, though it sometimes feels that way!
Email is in my profile.
I’m going to die a little bit inside for suggesting this and I realize that it is an r/cscareerquestions cliche, but the easiest way going forward might be to “learn leetCode and work for a FAANG”. In other words study how to prepare for coding interview. Even if you are “down leveled” to a more junior position, you will probably make more at a big tech company or one of the 2nd tier (no judgement intended) tech companies than you do now.
I definitely went down a level in terms of title from “architect” at a small software company making close to the top of local salary to the second lowest level as a consultant in professional services (not complaining they leveled me correctedly) at $BigTech but ended up making a lot more money.
Are you willing to move? I got lucky that my job was always designed to be remote.
This is more of a question for other posters. Are most companies changing their policies to be fully remote?
2) Do you have control over the tech stack of tools you work with? After a period of unemployment I got a dev job at a tiny company that allowed me to choose the tools and the framework I chose at the time (ExtJS) got me head hunted to join a much larger better-paying company six months later.
It would be best to first understand why this is bothering you. You've been there for 5+ years already so I guess if you weren't good, you wouldn't make it that long.
- Are you having problems talking with other engineers because they look down on you? Is it a recent thing?
- Or are you burned out by the current company/type of work? (normal after so many years)
- Or are you afraid you'll be unable to find a new job if the company lets you go?
Whatever other problems you have, this is the the one that you need to solve first. You need to learn how to manage finances - getting fired shouldn't be a catastrophe for someone in a role of lead (or senior) developer.
It's a huge relief for me to be able to speak on this issue. I'll continue to read through over the weekend and do my best to parse the feedback.
most of us do.
> sorely need mentorship
Ask for it. Any good company will have a strong mentorship culture.