Live data from Hacker News

Ask HN: Please help a frustrated Mid-Career (?) Developer!

news.ycombinator.com

1–10 of 35 posts

Ask HN: Please help a frustrated Mid-Career (?) Developer!

#1
I've been a software developer for 5 years. It has been a good career from an outside perspective - great names, high salaries, chance to live abroad, responsibility beyond my years etc.

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!

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#2
I experienced this and I chose to learn a new (programming) language and get a job using it. You mention learning new languages but are you actually switching over to that language? Rather than working in your main language and dabbling at night, use the new languages and tools in your day job. It's generally within reach to either convince people to let you do that where you are or to find a new job.

Usually learning is engaging, so if that's not doing it for you, it makes me think 1) you aren't going deep enough and challenging yourself enough or 2) you truly aren't interested in coding anymore. I tend to think it's the former but only you know for sure.

I read this article from my RSS reader today and think it's applicable to your situation: http://www.fluentself.com/blog/stuckification/exit-the-middl...

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#5
It's not just you - this happens lots of people, in lots of fields.

It's an obvious suggestion, but a small personal side project seems to help a lot of people - small enough that it doesn't become a big time sink or a chore, personal enough to be fun. A new platform you're unfamiliar with (eg your phone) may increase the novelty factor. Some people like to do a library or similar; I think an end-user toy like a little game is better because you can get feedback from non-coders which will reward you for extreme cleverness, but also requires you to complete rather than offering a half-assed library and calling it a 'foundation' or something.

School (eg a part-time master's degree) also increases your value, may be financed by an employer, and may push you to think deeper into problems rather than being in maintenance mode as you describe.

Finally, ask yourself if you're getting put into maintenance mode because they don't know where else to put you? If you say 'what do you need?' to your boss, any supervisor will first think that it would be nice to make an existing problem go away. If you want to be an architect, you need to come up with alternatives to the status quo and then sell them - not just in terms of 'this will be better than what we have now, please give me permission' but rather 'rising maintenance costs will bury us if we don't act, getting ahead of (our competition) will require a team of 5 and a $$$$ budget - but will allow us to capture (quantified market share)'.

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#6
>> My last few jobs have been weighted towards maintenance.

There is your problem. I had the exact same frustrations in my previous job. Now I am with a team doing development projects and it feels a lot different now.

Maintenance projects are good in a sense that you get to learn a lot by looking at other people code, but that in itself is not a good argument to stick with those type of projects. Every new development project, even if it is small, will have hard problems to solve. You will have to apply your knowledge of algorithms and data-structures more often than you imagined. In contrast, a maintenance project may give you a hard and difficult to debug problem which finally turns out to be caused by the previous developer forgetting to compare all the 7 properties of an object in the equals method. It is cute to have those problems once in a while, but there is not much chance of learning and innovation.

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#7
"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."

Sure you do, it is called what you spend your free time on. In your case, you aren't devoting any of it toward what you loathe you aren't doing. That's fine, but everyone is equal in the fact that they get 24 hours per day, what they do with it is up to them.

-Scott

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#8
Been there. Join a company who's challenges are technical. That's an oddly rare venture as a software developer... most devs spent careers shoving data into and out of a database, and the grand challenge at most software shops is social.. it's designing software that user's interact with nicely. If you feel like you're losing your technical edge, look for a company that's doing something that's technically hard. Makes all the difference.

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#9
Don't worry it happens to the best of us. I had a similar situation and it lasted for quite some time. Actually it lasted until I left the employer I was at. There are a lot of below the surface issues that can affect your ability to develop optimally, language, platform, the code base can all have an effect, even office politics can have an effect on your code quality.

In some ways we are like athletes, where better skills separate the superstar from the average and the superstars really shine. But just like athletes we have our slumps, which you are probably in. Averaged out over a career though they are brief even if they last a couple of years.

To me if I had to play 1000 ft view arm chair psychologist, I would say it is most likely your job, their is no passion and without it there is no dedication to producing quality work. Over time this has a compounding effect. I personally got to the point where I did not want to learn new technologies which, if you knew me is a very strange turn of events. I tinker with everything, trucks, computers, low tech camping and wilderness tech, solar / clean energy, bio-diesel, you name it and I tinker with it.

Anyway point being it can drag you that low, where you loose passion for the basis that got you here. That is when it becomes dangerous and when it required immediate action.

So lets get to the important part, how did I break the spell? by doing exactly what I did not want to do, on nights and weekends I started coding my own side project, it was like pulling nails at first but then things started to spark again.

Planning and design started to occupy my mind again, efficiency of code and modularity dominated my curiosity. The wheel started turning again and I got sharper, my code quality went up and I was happier even in my private life. That project ended up pulling me out of that job and out on my own

When I stated it I subconsciously agree to my self that even if it was a flop I was doing this for therapy. I also agreed amongst myself to never tell myself that again because I needed the belief that this was going to carry me somewhere else. That prepared me for the fact that it could fail and would soften it with the fact that I achieved the goal of rehabilitating myself. While also providing the hope that it could turn into something that will change my life. It did on both accounts.

I have been there, if you need someone to talk to my email is in my profile. I can help you with ideas for projects and help you with what I did to navigate certain mental demons in that situation (e.g procrastination, lack of motivation). It's tough and it is a form of depression, the sooner you break the cycle the easier it will be to recover.

Re: Ask HN: Please help a frustrated Mid-Career (?) Developer!

#10
Seems similar to what I've been experiencing.

Things that I've been doing:

- work on side-projects

- take up new activities that require commitment. Nothing is always pleasant and if you feel like you're constantly procrastinating/putting unpleasant tasks aside, then actually doing something because you have to helps shift the "I can do it later" mentality to a "let's just do it while we're at it" mentality. I'm doing martial arts

- cut back on reading news. If you need a "daily fix" of news, you'll probably notice that this addiction impacts your ability to focus.

- take time away from the computer. It helps organize ideas in your head. I walk.

- forget the idea of a "learning ladder", i.e. the idea that what you must accomplish next must be harder than what you've learned previously. Particularly, get rid of the notion that your next learning milestone should be programming related. Instead, research a real-world problem. You'll find a whole new industry worth of code to explore and it'll open doors.

Post reply on HN