All is not well on the inside though. I'm experiencing a bit of a career low and crisis of confidence, which is why I turn to the smart people at HN!
I'll give a brief history for context -
My first few years as a developer were great. I learnt a ton about software and all things tech. Combined with a bit of business awareness I shot up the ranks and ended up in 'senior' developer roles (in practice if not in title). I worked on some fairly low level high performance stuff and off of this built a bit of a name for myself in some niche technical communities. I was proud of what I achieved and felt I was learning every day and delivering good stuff.
The last few years though, this has really stopped. I first had a bad year in one of my roles where issues outside of my control left me fighting fires for a year rather than coding. I left and then spent six months in a contract role that just involved hacking HTML and Javascript together at short notice for demos. I've now moved back into a permie role, but seem to be really struggling to get to grips with the code-base. The bits of code I have contributed have in retrospect turned out to be buggy or poorly designed in the context of the code base. I'm not covering myself in glory there at all. I don't have a single achievement yet after 6 months on the job.
I'm fortunate in that my CV and interview technique is getting me into very well paid development roles, but every day I am feeling like more like someone who can talk a good game and live off past accomplishments, but not deliver. It's really eating me up as I want to excel in my job and earn the respect of my team.
I guess I feel like I've gone backwards over the last few years. A few reasons for this:-
- I never just sit there and crank out code anymore - I must have read 1000 lines of code for each one I've written over the last 2 or 3 years.
- I never get the opportunity to properly engineer something and learn from what works well and what doesn't work well as a result of my own design decisions. My last few jobs have been weighted towards maintenance.
- I struggle a lot more with low level algorithms and data structures nowadays. I used to be pretty good at this but have lost the edge as I've drifted up to middle tier business and CRUD coding.
- I have lost the art of elegant code - everything I write seems forced and fragile, too much repetition, too inflexible. I look at other peoples code and algorithms and it just looks unattainable to me even though I was doing that 2 years ago.
- I've developed a few concentration issues - I drift off and surf the interwebs more than I used to.
- The learning has stopped - I learn new tools and languages but rarely take away a new idea from them which makes me better in the day job.
After this essay, I guess the question is, how do I get my mojo back and get that level of technical excellence back?
And did this happen to any of you guys part way into your careers, or did you have a pretty linear improvement over the years?
Any help appreciated!