2

I did a PhD in theoretical computer science (however with a large emphasis on implementing prototypes). However the insecure job prospects and tough competition for permanent positions led me out of academia.

Thus I joined what is basically my countries equivalent of NIST. A government job highly related to technical things, but mainly concerned with standardization and specification rather than actual Software Engineering. Not great but decent pay and very high job security. Something I could easily still do in my 50's or 60's.

I do like code however. During my PhD I did a lot of stuff in Haskell, but aside from that I was involved in some open-source things, a pattern recognition library in C, a website/portal that I run (php) etc.

I am looking for a Software-Engineering job, however I have the following big concerns:

a) is there a career path for Software-Engineers, or do you just turn out in management after all? If the latter is the case, I highly doubt that my position would be so different from what I do now.

b) I do have a lot of coding experience in churning out quick prototypes and hacking, but I simply lack the experience of a professional coder. What I worry about is that I am chasing a dream of wishful thoughts, instead of the real life of a Software-Engineer. How much time is really spent with creating algorithms and solving problems instead of project management and the like?

c) can you be still involved with actual coding if you are getting older? This might seem a stupid question, but while I do feel that I get what is currently going on, if you start having kids, a home etc, I kind of doubt that its possible to consistently compete with that fresh graduate from college. And moreover he might be much cheaper, and managers know that...

I do hear a lot of positive stuff about Google, working on projects, designing, coding, a nice place to be, basically. But then Google is just one company out of the industry, and not necessarily representative.

Apologies in advance in asking questions that might lean more to discussion than answers, but I could not imagine a better place to ask than here.

  • 1
    Some places offer a technical track not just management. Fog Creek is one of them. – Philip Jun 16 '14 at 20:06
  • 1
    I am a pretty tough customer but you could most probably run rings around me when it comes to data algorithms and theoretical computer science i.e. you can identify a problem as not computationally solvable more readily than I can. It would be most embarrassing to you if you could not make use of your edge. Think outfits like Arthur D. Little and MITRE. – Vietnhi Phuvan Jun 16 '14 at 20:15
  • And I know many devs in their 40s and 50s still coding because they didn't want to go the management route. – HLGEM Jun 16 '14 at 21:43
  • My company is small, but we focus on providing value through machine learning and task based estimation solutions applied to the Optics/Optical Sciences space. If you were in the US, and I had the cashflow, I would hire you yesterday...and I would keep you in a technical track, not management... – daaxix Jun 17 '14 at 22:53
  • Can you see this question please and write your experience: workplace.stackexchange.com/questions/37053/… – Jack Twain Dec 3 '14 at 21:57
6

At some point a "pure" developer will begin to top out in the salary category, which is why "good" developers eventually give-in and take the management path. IT HAS NOTHING TO DO WITH BEING ABLE TO KEEP UP WITH NEW GRADS. Nobody expects new grads to hold a candle to good experienced developers unless their projects are fairly trivial and mind-numbing.

Yes, some companies do have "technical" paths but those are always much steeper hills to climb than the management route. So it is an option, and actually quite a good one for somebody with a PhD, but you'll have to work much harder, much longer and be luckier to raise through the ranks on this path and you'll still likely not be compensated nearly as well as those who took the management path.

However, if you want to be a "pure" developer then there are routes you can take which improve your chances of not being priced out of a job/you hitting the salary ceiling and you really can work until retirement with a nice paycheck.

1) Get in an industry where domain and business knowledge is hard to learn and it matters.

A developer who understands the business side of things and can communicate effectively with the company domain experts/scientists is invaluable to a company and can demand high-pay and the company still thinks they are worth every penny of it.

2) Learn to build software systems, not just be a programmer.

This means being skilled at the entire software development life-cycle process. The new grads can program, but they generally can't build large, maintainable or robust systems. Building maintainable and robust applications usually takes many years of seeing the "wrong" way of doing things to understand why the "right" way is necessary and when the "right" way applies to your specific situation. Building large systems requires skill in all phases. If you can't properly gather requirements then you aren't going to build what the customer wants and most certainly won't be able to give a reasonable cost estimate. If you can't do high level architecture then you might have some terrific software modules but they won't play well with each other. If you can't design clean modules then have fun tracking down bugs when you start integrating all the pieces. If you can't code well then your app isn't going to work no matter any of the other stuff. If you can't test well then your customer is not going to enjoy finding all the bugs you missed. Companies who can pay high salaries, are willing to pay high salaries to people they know will deliver a working product that doesn't tick off their customers because it is so bug-ridden or doesn't meet their requirements.

3) When you get older and start a family things do change but you compensate.

As a young single person, you tend to put in a lot of hours but you also put in a lot of goofing off and wasted time to go with it. As a person with a family, you put in 40 highly productive hours and get to spend time with your family. Not really an issue, as long as you set the expectations properly with your employer. Family is First!

4) Find the right company

Of course you can do all of the above, but if the people that run the company don't see things the same way then it won't matter. So don't be afraid to move around between companies until you find the one that is a fit for your career desires. Believe me, there are hundreds of companies that are a perfect fit for 1, 2 or 3 from above.

2

If you have time, you can learn some open-source technology, contribute, master it, and be an expert contractor as long as you care to code.

Plenty of people in IT (myself included) are 100% not interested and not cut out for managerial positions, love to code, and will code even in retirement.

Especially in open source, the only thing that matters is your skills (also communication skills, to keep your project together - they say managing a project run by volunteers is like a herding cats for a reason). As the saying goes, on the internet, nobody knows if you are a dog.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.