The first step is acknowledging your current limitations, and you’ve done that admirably. Next, I encourage you to give yourself grace. Know that many of us have been in your position, and have been able to build on the experience and develop our talents and careers anyway.
If you do want to improve your software skills (and it’s okay if you don’t, but don’t be discouraged just yet!), my main advice is to surround yourself with people more talented than yourself, whose work you admire, and who have the patience and social skills to mentor you. This is how I went from basically you’re at now... to being one of those mentors for others. I learned to drop my ego, to embrace rigor I’d previously considered onerous, and to be transparent when I had room for improvement.
I’d also recommend spending some time learning something far outside your comfort zone. For me, this was learning functional programming (Clojure) and working on distributed systems in that environment (previously I’d been primarily a frontend dev).
Getting involved with an open source project is also a great way to get exposure to both the talent and learning opportunities I discussed.
Lastly, I’d recommend pushing yourself to embrace some rigor yourself and see how it improves your work experience. If you don’t do TDD (as in real Red->Green->Refactor), try it out. If you’re not comfortable with a debugger, find one that works well with your toolchain (or try new tools that provide a good debugging experience). If you’re not accustomed to a consistent peer review process, ask a friend/colleague to review your work whenever possible.
Some or all of that may sound daunting. And again if you’re more interested in changing track, that’s okay too. But if you do want to become a better developer, these things are not as tough as they sound, and future you will thank present you for the effort.
Oh, actually one more thing:
> I'm thinking about looking for semi senior roles but I'm afraid it'll look weird for the company interviewing me to hire a semi senior with +10 years of experience.
I recently left a job, and asked some friends/former coworkers for recommendations. One that came up was for a less senior role than my previous roles over the last several years. At first I was hesitant, and had similar thoughts to those you expressed here. But I did consider the role anyway, because it would also leave more room for compensation advancement without moving into management. If you’re concerned about this sort of judgment (and if you’re concerned about ageism), feel free to just leave some older experience off your resume. I personally tend to only list my last 3-4 positions unless there’s something especially impressive further back.
If you do want to improve your software skills (and it’s okay if you don’t, but don’t be discouraged just yet!), my main advice is to surround yourself with people more talented than yourself, whose work you admire, and who have the patience and social skills to mentor you. This is how I went from basically you’re at now... to being one of those mentors for others. I learned to drop my ego, to embrace rigor I’d previously considered onerous, and to be transparent when I had room for improvement.
I’d also recommend spending some time learning something far outside your comfort zone. For me, this was learning functional programming (Clojure) and working on distributed systems in that environment (previously I’d been primarily a frontend dev).
Getting involved with an open source project is also a great way to get exposure to both the talent and learning opportunities I discussed.
Lastly, I’d recommend pushing yourself to embrace some rigor yourself and see how it improves your work experience. If you don’t do TDD (as in real Red->Green->Refactor), try it out. If you’re not comfortable with a debugger, find one that works well with your toolchain (or try new tools that provide a good debugging experience). If you’re not accustomed to a consistent peer review process, ask a friend/colleague to review your work whenever possible.
Some or all of that may sound daunting. And again if you’re more interested in changing track, that’s okay too. But if you do want to become a better developer, these things are not as tough as they sound, and future you will thank present you for the effort.
Oh, actually one more thing:
> I'm thinking about looking for semi senior roles but I'm afraid it'll look weird for the company interviewing me to hire a semi senior with +10 years of experience.
I recently left a job, and asked some friends/former coworkers for recommendations. One that came up was for a less senior role than my previous roles over the last several years. At first I was hesitant, and had similar thoughts to those you expressed here. But I did consider the role anyway, because it would also leave more room for compensation advancement without moving into management. If you’re concerned about this sort of judgment (and if you’re concerned about ageism), feel free to just leave some older experience off your resume. I personally tend to only list my last 3-4 positions unless there’s something especially impressive further back.