Ask HN: Career advice for a developer with 10+ years experience

20 points by peacemaker ↗ HN
I've come to an interesting point in my career and would appreciate peoples opinions on what I should do next.

I've been a professional software engineer for 12 years now, the last few years and positions considered "senior". Most of my background is C++ but in my spare time the last 3 or 4 years I've been doing a lot of web work using PHP, Javascript, Python.

I recently took a break to work on my own startup which hasn't taken off. This will be the 3rd time I've quit a job to work on a business which hasn't quite worked out.

It's time to start looking for work again, however I am having trouble deciding where I should focus. Should I stick to my tried and true (though somewhat rusty right now) C++ skills, or move on and make the commitment to web? I don't have much trouble picking up new skills so I'm always open to new ideas as well.

Anyone else been in a similar situation?

I have my concerns about getting too old in this industry (I'm early 30's right now) which tends to favor new college grads. My ultimate goal it to run my own business though I do need to pay the bills as well.

Overall, I feel my thoughts about what to do going round and around in circles so I've come here for help. Any advice or comments people can share with me would be greatly appreciated.

26 comments

[ 3.2 ms ] story [ 53.7 ms ] thread
30 years is just beginning, don't even bother about it Focus in your goal - Business Become a freelancer, lot of freelancing websites are there - elance,odesk,freelancer etc., etc., use your skills - php or js or whatever you know, and try to get some work and pay your bills.

if you can't even get one freelancing work, then consider it as you don't have exposure skills

if you can't complete a taken work, then you have to improve your skills

I do freelance work currently, it's OK, I earn a decent amount but I don't really enjoy it.

I'd prefer to work with a startup or small company on something exciting. Learn some new skills and possibly be part of something big.

I do agree, but he needs some backup for day to life, so he have to do some kind of part time jobs
If you get to a point where ageism actually becomes an issue for you, I would suggest embedded systems engineering. With your C++ background it should be no problem for you, and in my experience firmware engineers tend to be older and don't have age bias like the rest of the industry. I enjoy firmware because you get to work fairly closely with actual physical things and apply your knowledge to an extremely wide array of real-world applications.
Well I have done quite a bit of embedded work in the past and I agree, I was often the youngest software engineer on the team. I quite enjoy the work too, but the thought of going through the whole interview process again is tiring! Needs a lot of prep to get back into the correct mindset, especially seeing as I've been doing a lot of web stuff recently.
I don't know about other places, but I'm almost 36, with about 10 years of Java and web experience, and I keep getting more and more offers (from around the nation) from both enterprises and startups (twitter, amazon, rackspace, apple, google, netflix, Oracle, NCR, banks etc...).

I talked to a friend who works at Twitter (he is 37) and he told me it's not a "college graduate world" as some depict it, he said most people he works with are around his age (which was very encouraging for me).

Here in Atlanta there are tons of Sr. Java jobs, both enterprise and startups, at least based on the recruiter spam I get in LinkedIn.

When you say "too old in this industry" which industry are you talking about? SV? Web Startups (Ruby / Python / Node)? Gaming? Mobile? perhaps for these you are right. But for the companies I listed above, or any enterprise company in the country, your age is just about right, and your experience years are in demand. Again, don't know about C++ specifically, but if you had 10 years of Java, you would have easily landed multiple offers from various good companies around the country, at least this is what me and people I talk to in the Java community seem to experience.

I don't know if it's C++ that is different, but the "if you are 30+ then your career is over" situation is not something I see even close to the reality at least here in Atlanta.

Hope it encourages you a bit.

P.s. If you want to increase your spectrum of possible jobs, I recommend learning "less cool" technologies, like Java EE 7, Spring, Hibernate, or if you need to choose between Haskell / Go or Scala, go with Scala, it will be perhaps less cutting edge, but will give you much more job opportunities. Also learning Hadoop, Storm, MongoDB will make your resume look very attractive. Also you should pick up good github projects that show you are full stack, do some AngularJS projects, write a jQuery plugin, the jobs offers will follow (I got more than a few solely based on some nonsense plugins I wrote in github that look as if I know what I'm doing)

YMMV, all based on my very subjective experience here in Atlanta...

Thanks for the advice. When I mentioned getting too old I was referring to startups specifically. With C++ work I know I have less to worry about in terms of age.

I understand what you're saying about the "less cool" technologies but they don't interest me. The whole point is to guide my career down a path that is more enjoyable and fulfilling so doing something like that seems a step backwards. I appreciate the advice though, thanks!

I don't think all of these are necessarily "less cool" technologies, some of them are both very cool, in high demand, and fun to work with.

Scala is a good example I think, if you like Ruby, Erlang, Haskell, or even F# / C#, it might grow on you the way it did on me. Some say it's a complex language, I don't see it as such (coming from Java) I see it as a typed Ruby, with pattern matching copied from Haskell, and concurrency system copied from Erlang. With 100% Java interoperabilty. Cool enough for me...

it's both fun to work with, high performance, and still considered pretty cool in most parts. It's the only language that can be used enthusiastically by both a bank and a SV startup (and the academia) using the same philosophy and methodology. It's the peace maker language.

I know, Go, Haskell, Lua, Clojure, Rust, Julia, Nimrod are much more on the hype spot, but hypes come and go, and you end up choosing what technology you both enjoy using, and that has a job pool. For me it's Scala currently, can change any time.

Any thoughts given to moving towards a Solution Architect role? Within the right organization, you could be doing some hands on but mostly involved with designing and leading the solution.

You are definitely not too old to continue to do development but it seems like you would like to move on from that.

Is solution architecture the elephant graveyard of developers? I've seen this sentiment expressed elsewhere where people graduate from being a developer into an architect.

I don't understand it...the best architects I know remain excellent developers writing some code. It's like graduating from the chef to become a waiter.

I am sure you did not intend it, but the "chef to waiter" statement is such a big disservice to what solution architect people do. Using your analogy I also certainly don't believe that writing code equates to being the chef. I love software development and see the tremendous value it brings but in most major businesses its relegated as a cost centre rather than revenue generator.

I don't equate being in a solution architect role to not writing any code or being a bad developer. It actually takes a much broader skill set to do a solution architect's role. The best solution architects have reasonably high communication skills, strong understanding of business drivers and are able to articulate well to non technical people and most important see technology as one cog in a business rather the be all and end all. These are not skills that any typical developer will necessarily have.

The term is also abused a little bit but in major corporations it has a lot of weight. I would also say that just like any role, there are the best and worst people doing it.

The reason I mentioned it is that for people who still have a strong love for technology but don't want to be relegated to being a developer when they are much, much older (and frankly who want more advancement) the solution/enterprise architect seems to be a good fit.

You have a good point about those who want more advancement moving into roles like a solution architect.

For me, I'd prefer to stick to development as this helps my side projects and potential businesses more. Then again, if I moved "up the ladder" as it were, there may be more opportunities I'm simply unaware of as a developer? Thanks for your insight.

Chef to waiter isn't a good analogy in terms of skills. I was trying to highlight how different the roles were and not the skillset disparity.

Hell, I'm one of them...my job title is application/solution architect and I spend most of my time doing exactly what you said above.

I agree with what you're saying. My main point is that what I've seen (and even heard from people I'm interviewing) is that they want to become an architect to move away from code and graduate into another position. I think your point of needing a broader skill set is important because in my mind, architects are excellent at their old job, continue to do portions of that job and also gain the other skills (communication, change management, evangelizing)...but I don't see everyone understanding that.

I think I'd prefer to stick to developing right now as I enjoy it and developing seems to offer more useful skills for building my own side projects.
I'm in a similar situation (early 30's, 10+ years of development experience) and also left a previous job to start a business that didn't work out and just came back to work at a 'normal' job.

There is a good demand for C++ programmers in financial hubs. In Europe, this is London. I see 20+ jobs being posted every week for senior C++ developers. I'm guessing Wall Street will have similar requirements. Game development is also an option, but at your age/experience, I don't recommend that industry. Of course there are other companies that require C++, my last job was making a portable (Mac, Linux, Windows, iOS and Android) music streaming library with custom DRM. You will find these 'odd' jobs with C++ requirements less frequently but can be a good option.

So, that's C++. Now about focusing on something else. It really depends on your goals/life. If you prefer a startup type company, then yes, node.js/ruby/Python are your best bets to get a job at those (doesn't mean Haskell or Scala won't get you a job) but if you prefer a more enterprise company (which there is nothing wrong, I do, since I have a small boy at home and really value the work/life balance I get) you should probably focus on either Java or C#. There are tons of jobs around for these technologies (in Europe, C# seems more in demand than Java, no idea on your location).

If you want, you can also always learn Obj-C or Java(Android). Mobile developers seem to be in hot demand right now and it can be something completely different from what you are used to do (which can be a good or bad thing depending on how you feel about learning)

Technologies aside, if your 10 years experience really brought you to Senior level (I've met folks that seemed to have just repeated the same year 10 times) I don't think you will have a problem finding a Senior role in whatever tech you choose. I started with C, moved to C++, then C#, Ruby/Rails, Obj-C. Even though I don't have 10 years experience with each of those, I easily found a job for senior developer (actually, I got a few interviews and got offers from all, from Sony to a big financial firm in London and small start upsas well.)

If you have any questions or just want to chat about your situation, shoot me an email (email on profile).

Yes I've seen quite a high demand for C++ guys in New York and Chicago as well as other places. That's really the heart of my question - should I stick to that or move into the newer technologies you mentioned like node.js/python? I have learned a good amount of both though no real work experience in them.

Also you mention games, well I worked in the games industry for 4 years when I was younger! Did my time, enjoyed it, but won't go back now :)

I am completely unsuited to large enterprises. I started out my career that way and hated it. Recently went back to a large corporation job and only lasted 6 weeks before I had to quit.

I guess my original post wasn't so clear either. I have no problem getting requests for interviews and the like, get loads every day. My issue is making the choice of where to focus my career. Do I get back into C++ to earn some good money doing something I already know? Do I truly commit to new web tech and join a smaller startup? Or something different like freelance while working on (yet another) business?

I'm tired of trying to make this choice because there are so many pros and cons for each! I understand no-one can do it for me but it's nice to get other peoples views. Thanks again.

What's the startup/idea you tried to launch?

I wouldn't worry too much about age. If anything you can move to a management role, lay back, relax and save your mental energy for your side projects and next big idea.

I've tried several over the years! I've opened bricks and mortar stores in my local town, a dropshipping business and most recently a SaaS app. They've all failed for various reasons though I learned a lot doing each one.

Do you really consider moving into management a relaxing role you can lay back in? Often my managers have seem more stressed and tend to do all the boring work and meetings. They tend to work extra hours too leaving less time for side projects.

I have no doubt ageism is real but it does not start in the 30's. Trust me. You have a few decades to go before ageism is your problem.
It's quite a common theme, especially on HN, that after 35 it becomes a lot harder to get work in startups specifically. That's what I was referring to.
I am curious why you decided to quit job to work on your startup? Were you getting a lot of traction?

I have done something similar and learnt a great deal. The biggest lesson I learnt is to sell before you build. If you can't get enough people excited to buy your product don't build.

I'd built it up in my spare time and felt it needed my full attention to get started. I prefer to get stuck in and give it a real go so I usually save up money to cover the downtime.

I agree on selling before you build. I keep failing and one common themes is not having customers before going full time. Lesson learned!

a bit off topic question:)

Perhaps the way how you approached your own startup was wrong. Why quit job entirely rather than develop some network of freelancers and outsource time consuming tasks to them? It will increase costs, but also greatly reduce overall risk.

I've been in a similar situation. My advice is to work in parallel. Maintain a steady income with minimal time investment and leave enough time on the side to work on your Startup. The key of course is having enough time on the side to be effective with the Startup. For many people, this is why they prefer Freelance/Consulting. Much easier to schedule and make your own schedule. I found Freelancing/Consulting to be too inconsistent for me personally, so I found an 'Industry Job' that only takes up 3-4 days a Week (alternating). This provides steady income, and leaves me 3-4 days a week to work on my Startup. Once the Startup shows enough traction to generate funding, then I will move to the Startup full time.

On my first Startup I made the mistake of going full time with no steady income. In hindsight, I should have maintained a lower steady income instead of having no steady income. With no income, I effectively put a limitation on my ability to work the Startup full time. Unless the Startup gains traction, you eventually run out of money and end up back at square one (or square zero depending on the situation).

Some people may be in really good positions that afford them the opportunity to work on their Startup full time and not have to worry about income. That's great for them, but for everyone else, it's 90 hour work weeks.