top | item 11149361

Ask HN: Does this old horse have a few years of useful work left?

139 points| andywood | 10 years ago | reply

So, my most recent stint at Microsoft just didn't work out. The tech was cool, but the day-to-day workflow was tedious and torturous. I only held out for 4 months - my shortest gig ever, but it really was the most I could muster. I really wanted it to work, but ultimately couldn't strike that bargain with myself.

So... now I'm back to living on couches and wondering / researching where I might still be able to be useful and productive in the world. It's not an easy question. There are more technology stacks than ever, and I'm suffering very severe paradox of choice. I sure miss the "good old days" when you just focused on writing a single app in C that ran on a well-understood machine, or even a single well-understood OS API. But those days are mostly gone. Now it's all distributed, multi-level conglomerates of varied frameworks and languages sort-of working together. I can't decide whether I have any interest in that. I sort of envy the people who can simply state, "I am a Rails dev" or similar.

I feel a lot of pressure to pick a niche. Something. Anything. Because living on couches gets old, fast, and even more dire financial straits await after that. So I'm being driven by the stick, and not the carrot - which is an unpleasant position.

I found a great game (on Steam) called TIS-100, where you progress by writing small, well-defined programs in assembly language, for a strange, highly constrained imaginary processor. It's great for its pure distillation of machine-level programming. There was a time when people used to get payed for doing what you do in this game. In other words, I fear I'm getting old, and my career options have just begun to seem uncomfortable.

107 comments

order
[+] m0nty|10 years ago|reply
49 here, I'm not enjoying working in IT nowadays, I think it got old about 5 or 6 years ago. So I quit and I'm pursuing my own projects, doing some programming, and trying not to worry too much. I could have ground it out for a few months more in that lucrative contract I had, but just how long can I put up with being that bored?

Personally, if I have to go back to the circus, I'll probably aim for short contracts or part-time work. If you're looking to reskill, I see plenty of sys admin jobs out there. Except you're supposed to call them "Dev Ops" nowadays. Puppet, VMs, Vagrant, Ansible, cloud computing (Linode, Amazon, etc). It's a relatively small domain which is applicable to many different areas of IT, so you get that "good old days" thing where a little effort goes a long way.

Good luck with whatever you do. Don't let the demons of despair take you, make a deliberate effort to be optimistic and cheerful. You're not the only old horse out there wondering when it all became so complicated. OTOH, it's truly an incredible time to be alive, so much stuff going on!

[+] estefan|10 years ago|reply
I don't want to be a downer, but devops is definitely NOT just a new name for being a sysadmin. We've actively recruited for people who are not old fashioned jump-on-a-box-and-make-hot-changes sysadmins. They need to understand automated infrastructure and deployment through code, so it's not a small niche to just pick up easily. If it was that easy, everyone would be doing it and it wouldn't pay so well.
[+] oliwarner|10 years ago|reply
Just in your reply you've mentioned half a dozen technologies that have only really spring up in the last half-decade. Given this appetite for churning technologies and techniques, it hardly seems like the ideal sector to sunset a career on.
[+] hkmurakami|10 years ago|reply
Have you considered embedded software? What you describe and long for (including all the constraints) seems to match the needs and challenges of embedded development.

Example of places would include TI, Intel, Atmel, etc., and also hardware makers that use their chips.

[+] georgemcbay|10 years ago|reply
This is good advice.

As a somewhat older (42) programmer whose early career was similar to what OP is describing I've been focusing on embedded systems and most recently Android development -- granted, Java isn't C and there are quite a few things I dislike about the language (and moreso the AbstractFactoryOfFactoriesClass culture it tends to have) but it is (practically speaking) MUCH closer to the sort of desktop app development that we used to do than either of back or front end web development (which I also don't really enjoy).

[+] aprdm|10 years ago|reply
I was an embedded system engineer (degree in computer engineer)

I've designed RTL with FPGA, worked with embedded linux, device drivers, bare metal c and etc.

the problem with embedded is that :

1. There are almost no jobs when compared to other kinds of software development. All the embedded jobs have been outsourced for so long and I don't see this trend reversing

2. The pay is really low for what you're expected to do. Really, really low.

I've made this thread before the transition: https://news.ycombinator.com/item?id=8158023

[+] graeham|10 years ago|reply
I immediately though of this as well. Its becoming increasingly in demand in IoT-related things (particularly in industrial applications, certainly automotive and medical).
[+] Firegarden|10 years ago|reply
I am 36 and been contracting full time since I was 22. Really I was only an employee at my first programming job. The concern that you have is of technology stack. The concern you are alluding to is how to stay relevant when being an older person. The first concern is easy. Stick with some fundamentals. JavaScript for example is a perfect choice. By now we should all know JavaScript and another example is the Dom API’s. Those are solid gold. CSS of course and after that your good to go learn some cool framework like ReactJS. Given that you know C then C# is likey to be your best friend. I have stuck with .NET since its release in Feb 2002 and always have been a productive developer. I have used every version of Visual Studio. So after drawing a few boxes around things the world gets smaller. .NET was just ported to linux and renamed Dot Net Core 1.0 with it’s first release expected soon. So I would say .NET is as safe a bet as any. Of course there is the small challenge that .NET isn’t cool in the start-up world. That is mostly due to haters having to hate and not based on merit. So the technology choices get easier and easier if you start to zero in. Dot Net has an MVC framework which is at version 6 but I think maybe renamed to Core 1.0 as well. Your tech stack isn’t a problem. Stick with those and you will find something. As for your hourly rate I can tell you from experience the global market is making it very competitive so suck that up. As for getting too old to program that is not actually the question. The question to ask yourself is can you find and follow your excitement. We are in the golden age. There are a few leading edge sources which deal with this. I love Bashar and Abraham-Hicks. To quote Bashar “When you understand what excitement is, you'll understand why you don't have to look at every little detail to know what to do.

Your excitement is telling you that's the next thing you need to do. Following your excitement is actually the shortest path to what you want. Act on your joy to the best of your ability. If you look at all your options and realize that taking a walk or driving your car or calling a friend is the most exciting, then THAT is the thing to do. When you can take no more further action on that thing, then look around for the next exciting thing you have the greatest ability to take action on and do it.

Excitement is its own self contained kit and its own driving engine.”

[+] learc83|10 years ago|reply
>As for your hourly rate I can tell you from experience the global market is making it very competitive so suck that up.

I haven't had much problem with this. I don't compete on price because I can't bid lower than someone who has a cost of living 10x less than mine.

One thing I've learned is that the higher your rates go, the less the global market matters. Few companies are willing to pay for $100+ an hour out of country contractors.

Even if you're not charging that much, you can always find companies who are just more comfortable with someone in country. Many companies want someone they can reasonably fly in if the need arises, or just someone who is subject to the same legal jurisdiction if things to completely wrong. IP theft is a huge problem in developing countries and legal remedies are very difficult when dealing with international disputes.

[+] bragh|10 years ago|reply
.NET isn't cool in the start-up world because of the pricing and licensing issues. You can happily start developing a PHP+MySQL application on a used 100 EUR ThinkPad: good free IDEs are readily available (if you even need one), no licensing headaches and can start hosting it with your nearby 20 EUR/month web host with shell access.

Although the situation is changing for the better in the .NET world, the hardware cost, obfuscated licensing and pricing issues still remain. I had to buy an i5 machine with SSD and 16 GB of RAM to get the same development experience with VS2015 that I had with Netbeans on Linux with 4 GB of RAM. Also, a project in progress went for ASP.NET MVC 5 + Azure SQL on Azure and I'm afraid every day that we might get hit with some unexpected performance or insane pricing issues after the launch. Even the reddit thread on /r/dotnet wasn't very encouraging with regards to that: https://www.reddit.com/r/dotnet/comments/46rgf6/do_you_run_a...

[+] PerfectElement|10 years ago|reply
You should know that you can't say you like .NET on HN without getting a bunch of replies telling you why .NET sucks.
[+] rhapsodic|10 years ago|reply
You have one of the most marketable skills in the world (programming), you've been at it for a good while (at least since C jobs were commonplace, apparently) but you're sleeping on couches and only lasted 4 months at your last job? I suspect there's a lot more to this story than you're telling here.
[+] spc476|10 years ago|reply
I'm 47 and am currently doing work in C, C++ (as little as possible to tell the truth) and Lua. While I'm in a small department (3 man team excluding our temporary manager [1]) I'm also the youngest one on the team (and even more oddly, the one with the most seniority on the team). So I'm sure you'll be able to find something.

[1] The department I work in is needed in our company, but it doesn't really fit in with the rest of the company [2], so finding a manager has been ... interesting as the only other person in the company that understands what we do is a vice president of the company who is busy with other work.

[2] The company as a whole develops software for Android phones. My department is there to support our software on the call processing side of things, so we get to deal with SS7.

[+] justin_vanw|10 years ago|reply
You are clearly omitting the most important part of your story. Are you an alcoholic? Bipolar? Do you suffer severe depression where you stop showing up for work for weeks at a time? Schizophrenia?

I wish you the best, but it is silly for you to act like you 'just can't deal with it' rather than just admitting the real issue and trying to get help.

[+] rhapsodic|10 years ago|reply
+1. I'm surprised so many people commenting think this guy needs advice about the job market or different types of technology that might interest him. I wish the OP luck in resolving his problems, but I doubt that they stem mainly from his skillset or the job market.
[+] danieltillett|10 years ago|reply
If you leave a job at a large company when you have no savings then nothing we can say will make any difference. Do whatever your heart wants.
[+] Firegarden|10 years ago|reply
Dood is right you have to follow your heart or actually start by connecting with your heart which is something I think we all could do more.
[+] fighne|10 years ago|reply
I'm 51yrs old, and been in the IT 'game' 33yrs.

Programming is programming, one language is not much different from the other. There are jobs for low level coder's ( think; drivers, kernel porting, RT ). Web has diverged 'front end' or 'back end' take your pick. Work remotely is another option. The niche makes it easy for the employment people to pigeon hole you. If you have that need do a couple of CV's tailored to that niche.

Don't believe the startup 'shit' that only a committed programmer can work there and you need to give 60+ hrs a week. If you get that spiel, get up walk out. They will use you and throw you away.

I've seen 60+ hr code, it's; crap, bug ridden, security nightmare. In the 'Agile' short term for a startup it's great for the long term...! Strange how Facebook changed their moto about 'breaking it' didn't they when it got serious.

I still come across young 'coders' who aren't programmers telling me that JavaScript isn't an Object language. Strange how the function is a first class Object!

I got asked in an interview recently if I could name a design pattern. I responded with "ow you mean 'Gang of 4', how about observer" the reply was " No not the old band and that's a newspaper" I laughed got up walked out. Then sent an email to the CIO telling him the reason his IT stank was that he had inexperienced people working for him. Strange that company no longer exists :)

Sometimes you got to 'pony up', do the 9-5 so have a nice hobby. Take the crap, but not for too long otherwise you start believing it.

When you find the right role you'll know. They don't always pay the greatest, the atmosphere is good, and you'll want to get up in the morning to do it.

Strike a life balance, your mind is your tool. Burn it out and abuse it then you'll loose it.

So you'll find me, sat at a cafe or bar along the Med. My laptop isn't the most modern (actually it's a 5yr old MacBook Air ). I'll be unpicking some crap code, putting in comments, and applying some old proven techniques. If you can stand the smell of Gauloise Disque Bleu, I'll buy you a beer.

[+] _rpd|10 years ago|reply
I'll suggest learning a real-time operating system like VxWorks, and then writing code for embedded systems. Lots of challenge, interesting projects (robotics, etc), often safety implications that require a mature attitude towards quality control.
[+] gargravarr|10 years ago|reply
I'll second this. Embedded system development is highly specialised and usually involves bare-metal coding on limited hardware - sounds like something you'd enjoy given your background.

Modern computing has become far too generalised for the same sort of development - without all the levels of abstraction you've encountered, it'd be nearly impossible to develop something in a reasonable timeframe. I'm not defending it, but I think if you tried to develop something using such classical methods, you'd end up taking 10x as long creating the finished product. Price of progress I'm afraid.

[+] jkot|10 years ago|reply
C and Assembly days are not gone. It is quite well paid and widely used language. Perhaps just change environment?
[+] fit2rule|10 years ago|reply
> I sure miss the "good old days" when you just focused on writing a single app in C that ran on a well-understood machine, or even a single well-understood OS API.

No, those days are alive and well in the embedded/IoT world. I suggest you look into doing some embedded work, if you want to return to that style of development ..

[+] typhonic|10 years ago|reply
A couple of years ago, right before my 58th birthday, I saw this posted on HN. https://news.ycombinator.com/item?id=6640430 It says more than I can, but I will add one thing. At about that same time my company hired an engineer a year older than me. He's still doing a great job. I'm not in precisely the same business as you, but it's close enough that I still read HN.
[+] bonobo3000|10 years ago|reply
It sounds like you like knowing how the whole thing works, end-to-end. At big companies with so much pre-existing code & infra, thats not really possible. Maybe a startup would be a better fit for you? Thats one of the things I loved about working at a ~60 person startup, I had visibility and decision making power over all levels of what I was doing.

Of course it depends on what your definition of end-to-end is, as the rabbit hole can always go deeper.

[+] blfr|10 years ago|reply
Perheps I'm in a bubble but everything seems to be running on stock Ubuntu VMs nowadays, occasionally disguised as Docker images. Either that, or iOS/Android.

As for the game, our very own patio11 and tptacek have developed something a lot like that but with the end goal of getting you a job aside from all the fun: http://starfighters.io/

[+] rms_returns|10 years ago|reply
"Everything seems to be running on stock Ubuntu VMs nowadays" -

More of different linux variants actually. Amazon, for instance, provides their own version called "Amazon Linux" which is based on RHEL/CentOS for their aws servers. I've also seen many use Debian for their servers (In fact, Debian/Ubuntu doesn't differ much technically on the server side, but Debian's simplicity and FOSS-friendliness drives many towards it).

[+] fsloth|10 years ago|reply
"everything seems to be running on stock Ubuntu VMs nowadays"

Except if one is developing desktop software. Windows is pretty dominant at desktop, especially when considering enterprise, CAD and so on.

[+] agentgt|10 years ago|reply
Big picture... things could be far far worse for you.

Its pretty hard to give any sort of advice with such little information. I'll just say you really can't fall in love with the technology but rather you should love solving problems... ie be technology agnostic. There are lots of real world problems still left to be solved.

I also have some doubts that you seriously took advantage of working at Microsoft. I can tell you working from home with my own company you really really miss learning from others. The idea making synergy and excitement of being around other smart people even if its only during lunch break is a huge highly underrated benefit long term.... and now you will be sitting on a couch.

I honestly can't figure out if it is your goal to just program simple little programs with assemble or C? Is that what makes you happy? Did Microsoft not challenge you enough? Again serious lack of information.

[+] andywood|10 years ago|reply
This was my 2nd go-round at MS. I also worked there for 5 years, earlier in my career, and had a better time. This time, I was working as a contractor, so switching teams was not an option. And again, the day-to-day was so horrific, that soldiering on was also not an option.

As far as my goal - that's what I'm trying to figure out. For practical purposes, it may be mostly about avoiding webdev. However, this most recent job was not webdev, yet it was still an absurdly convoluted architectural hodge-podge. So, one thing I may be looking for is more homogeneity. It's not about size or complexity, per se. I've worked on many large, complex projects and had a good time.

What turns me off about webdev is a) new frameworks being hyped every month, and b) the architecture of a modern web app gives me a headache. I want to return to a time when I used to spend most of my time on data, algorithms, and writing code, with a single API being the worst "necessary evil" in the mix.

[+] vonmoltke|10 years ago|reply
> I'll just say you really can't fall in love with the technology but rather you should love solving problems

Of course, if you only love certain kinds of problems, that can be effectively the same thing.

[+] raverbashing|10 years ago|reply
You can definitely find work in Asm/C level today, at hardware manufacturers mostly (silicon vendors usually)

Or look into today's C: Go and Rust

[+] mixedCase|10 years ago|reply
As a Go programmer, I must say that he would probably like the language, but the current Go market is very much web-focused. Most of the time you'd end up working full stack so he would be back to that particular JS-inspired hell.
[+] broodbucket|10 years ago|reply
There are very, very few Rust jobs. In a few years, maybe, but I wouldn't make a career move on it yet.
[+] theparanoid|10 years ago|reply
People still get paid for work almost exactly like the TIS-100 game. Notably GPGPU programming. I switched from webdev to playing with h/w chips and mostly haven't looked back.

It's more difficult work.

[+] Joof|10 years ago|reply
Orly? Cuda type stuff? You caught my interest.
[+] FrankyHollywood|10 years ago|reply
"but the day-to-day workflow was tedious and torturous". I guess what you describe is something every oldtimer in every discipline recognizes.

How do you think a dentist feels after 30 years of 'could you open your mouth a bit further, tnx, yeah, well let me see, sir do you floss at a daily basis? Especially the back teeth need some more attention...'

Saying you are a 'C' guy makes no sense, sounds like you have forgotten about all the shit you had to take care of in the old days :)

There were tens (or even hundreds?) of C variants with there own compilers, frameworks, platforms, non-compatability, dll-hell.

I have had a great time working in a simple application management team, and a horrible time working in a startup with advanced search technology.

My experience is nice coworkers make or break the day. A boring team is killing, even if the project is great.