Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Does this old horse have a few years of useful work left?
139 points by andywood on Feb 22, 2016 | hide | past | web | favorite | 107 comments
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.

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!

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.

Sure it is. Don't the "DevOps" administer, provision, and manage your systems? Have you ever seen a unix guru who didn't have scripts and use automated tooling? And when a system fails (and they all fail eventually) the routine is the same no matter what you want to call it.

There are two kinds of DevOps.

You have DEVops... think of a web developer who also knows linux.

Then you have devOPS... think of a sysadmin who knows bash and python.

The former is where I think the value comes.. they find ways to automate your infrastructure and do lots of cool things. The later tend to make webs of bash scripts that you have to delete when they quit because no one understands them.

...yet when you start looking at how this automated infrastructure works, it turns out to be sloppily crammed together however the webdev happened to work, be very brittle, failing every now and then, requiring constant attention and adjustment, non-standarized with tremendous ramp-up time for anybody who needs to take over, and with components mingled together without any separation, so it couldn't be replicated somewhere else.

All that because the webdev was learning new Csharp.JS framework like dozen before, being too busy to learn how package system or daemonization or networking or RPC or SSH or push vs. pull architectures worked and what they are good at, or what tools and why a seasoned sysadmin uses for automation.

What you really need is not a dilletante armed with sharp and pointy PHP-du-jour, but a system programmer. There used to be such a profession, the guys who wrote syslog, init, bash, grep, awk, libnss, and tons of other goods people today either use without much thinking or don't know existence of at all.

You basically just argued there is no such thing as devops, just developers and system administrators.

Next thing you know, he's going to be telling you that your 360" review is actually a yearly review, that your scrum master is actually just a team lead, and that your gluten-free bread is actually just a rice cake with sugar. These old-timers sure do get some funny ideas.

At one company our "unix guru" didn't bother to set up anything like ganglia so when the server's disk got full and brought down the product he looked like an idiot...

Maybe it's good vs bad but it happens. In the puppet/chef era I'd have said you needed to have a background in coding to be a good devop, but ansible has changed that now I think.

You haven't lived if you haven't filled a disk at some point.

While true, this doesn't make for a good excuse to let your employer's server go down when its disk fills.

Hindsight is 20/20. Plus, you learned from his mistake and now, anywhere you go, you can remind the unix gurus to prevent that type of thing from happening.

On top of that, there needs to be some Dev to go with the Ops. I've seen some guys who come from a great SysAdmin background that are used to some Powershell or Bash but get utterly lost with Chef or Puppet. Not just that but the overall package of scripts is just messy and very hard to maintain.

That being said- I'd rather have someone transitioning to DevOps with more SysAdmin experience than Dev- the cleanliness and composition can be learned a lot faster than the networking, security, and other topics that most Devs have never had to maintain first hand.

"I'd rather have someone transitioning to DevOps with more SysAdmin experience than Dev- the cleanliness and composition can be learned a lot faster than the networking, security, and other topics that most Devs have never had to maintain first hand."

Totay agree. It's a lot easier to pick up enough Ruby to be comfortable with Chef than it is to learn the thousands of different things about networking and security - and probably the OS your average developer has been using for a long time too - that a good sysadmin knows.

We used to distinguish the jump on the box kind vs the write automation kind as amateur vs professional...

This is hilarious. What do you think good sysadmins were doing before "devops"? Just hacking around cowboy style? Everything old is new again.

Yeah. Just writing their own custom stuff. It's partly about standardisation. Using a standard web framework means transferable skills which makes it easier to find and on-board staff. Devops is the formalisation of the same thing for ops, i.e. standard tools instead of just chucking together bash scripts however you please.

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.

I don't think OP was talking about "sunsetting his career", just that options look limited, so I was trying to suggest some. As for those half dozen technologies - they're not that difficult, which is why I mentioned them.

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.

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).

Ahh, good old AbstractAnnotationConfigDispatcherServletInitializer.


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

I immediately though of this as well. Its becoming increasingly in demand in IoT-related things (particularly in industrial applications, certainly automotive and medical).

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.”

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

To draw a parallel, this is true in the housing market in my city: If you're competing with people for a $300k house, you will have 20-30 competing offers all in the first day the house is on the market. If you are in the $425k and up market, which has tighter requirements for getting a loan, then you will only have a few competing offers and the house may be on the market for a week before an offer is accepted.

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

The problem is that those 10x-less cost of living people can increasingly compete on quality too.

Without some sort of protection inside their own country, it's "yay" for businesses and "tough luck" for IT workers. The HB1 (or whatever) visa thing is part of that.

In the end, the situation is not good for those 10x cheaper people either, because it ensures they'll always stay 10x cheaper, as even if their country develops more, there will always be someone underdeveloped with 10x cheaper cost of living to bring their prices down too.

I agree that some labor protections are needed. However language barriers, cultural differences, and time zone gaps add enough of an overhead to communication that most companies willing to pay my rate won't hire foreign programmers just to save a bit of cash upfront.

Then you have the legal issues I mentioned. Contractors in other countries are for the most part outside the reach of US courts in the case of contract disputes.

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

I wouldn't lose sleep over performance problems. C#'s much faster than most of the other languages. Most of the ASP.Net MVC sites I've written have sub-50ms server responses even on tiny VPSes.

One of my old employers had 100s of installs of its VBscript, then ASP.Net, program, with a complicated salesforce-esque application that clients could customize themselves with extra code, so there was a wide range of code written by programmers of wildly differing ability. And they did all sorts of crazy stuff.

Almost all performance problems were SQL related.

In the 3 or 4 years I was there we had a bug with IIS once, some crazy specific thing, I can't remember it exactly but it would be like if you'd chose a very particular and obscure variable name and the value passed via query string was this one very particular value it would cause that thread to hang. Even that was fairly trivial to identify because a google search brought up an MSDN.

And when we were genuinely stuck by then we had some sort of partner status and could phone them up. When we were using silverlight when it first came out our technical director actually ended up chatting to one of their core programmers about a specific bug. I seem to remember this only happening with silverlight and with a very obscure tech we were using (some sort of strange clientside control that IE6 had that you wrote in vbscript that no-one really used that I honestly can't remember the name of now).

If your project depends on saving $500 on a computer (the one thing you really need to do you job, as opposed to say a carpenter who needs $5000 in equipment just as a basis), is that project really worth doing?

You willfully mixed up and misrepresented the 2 paragraphs of my post. I hope that wasn't with malicious intent, so I will clarify.

The first paragraph dealt with the 'poor college student in Eastern Europe' side of doing a project, where every dollar counts and must be scraped for. In that world, going for .NET was unheard of, but the situation is slowly changing with VSCode and vNext.

As for the second paragraph, even well-funded projects have limits. Sure, let's say the limit for cost is 50k EUR with 300 EUR/month expected hosting costs. How happy will your client be when your cloud provider changes their pricing scheme and hosting cost is now 10-100x as large? Or when the requirements change and you need to buy some $EXPENSIVE_PLUGIN for that and you are locked in with your technology stack to one provider?

Mainly speaking: why should someone make a company and build some website and fill applications and all that (always with the high possibility of rejection), when you can just do 'apt-get install <technology-stack>' or as an alternative, git-clone-configure-make-sudo-make-install for the same thing? It's all about barriers to entry.

No, but building your project in a language that currently costs 2-10x per production instance with licensing/hosting costs thrown in sure as heck can.

I love C# compared to Java but I write more Java today because I hate Windows and want no part of automating cloud deployments to Windows target servers. So maybe one day when (soon?) .Net Core gets production ready in Linux I'll make the jump- but I'm not going to vastly increase my hosting costs for a language when all of the others can be done on a cheaper, more well suited system.

x 5 developers, + unknown extras with an enterprise giant...

There's a good reason you don't hear of many new startups running on a .NET stack.

You should know that you can't say you like .NET on HN without getting a bunch of replies telling you why .NET sucks.

I don't think that's true any more - Microsoft have made lots of inroads recently that are starting to attract mindshare (Visual Studio Community is awesome and free; .net is open source etc). Even if it IS true, you should be free to call people out on it. HN needs to stay as a place where people can discuss things civilly. Disclosure: I work at a .NET shop, but am personally more interested in Python, Elixir etc

You know what sucks? Missing out on being a .net developer. We are kings in a world of peasants. Yes I said it Kings!

.NET is killer just killer.

This is fire.

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.

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.

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.

+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.

I agree, there is far more high paying work for the skills he claims to have than there are people to do the work.

In a career that long, he has dozens and dozens of former colleagues who are now far along in their careers and are decision makers. He should be getting offers to do work, nonstop, on his terms. He should be able to accept or reject work based on considerations other than 'getting money to eat', such as whether it is interesting work, whether he enjoys interacting with the other people on the project, whether it lets him work remotely, etc.

There is a huge hole in this story. Why don't his past colleagues want to work with him again? What has gotten him blacklisted? The subtext here says more than the actual story.

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.

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.

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.

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.

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.

C and Assembly days are not gone. It is quite well paid and widely used language. Perhaps just change environment?

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

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.

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.

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/

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

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

I have no actual evidence for this, but I think it's reasonable to believe that within 10 years about 95% of enterprise software will run in a browser. There'll still be niches where it isn't the case (CAD being an example) but for everything else, it's web technologies all the way down.

Even CAD is moving to the browser. I saw Autodesk showing their CAD project in the browser in a job fair.

Have a look at OnShape. That future is coming faster than some people think.

Online business models are not yet foolproof, though. As I understand it Tinkercad basically went busted a few years ago because people did not want to pay for an online tool and eventually Autodesk bought it. Please correct me on the details. Also, I have no data either way to show would Tinkercad done any better as a desktop software.


OnShape is certainly an exciting experiment. If they pull through financially it will be pretty strong signal, IMO.

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.

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.

How can you be contacted?

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

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

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.

There are very, very few Rust jobs. In a few years, maybe, but I wouldn't make a career move on it yet.

Given one of the OPs annoyances is the continuing churn in tech tools, please don't waste time with Rust. The premise of the language (safety) is seductive but it comes at the cost of complexity. I am an experienced dev that spent a month evaluating it and then decided life was too short. Frankly, it is easier for someone with a C background to work in C++ than it is with Rust. That's because you can use the simple features of C++ to get going and add on complexity as you learn more/need it. With Rust, you get thrown into the deep end right at the start with the complex borrow/ownership system. There is no proper book yet on Rust (some good online sources where I commend the people on effort ... but there is no K&R).

P.S. I used Go for some projects last year and found the situation to be much better. The Go book that's available on the website reminded me of K&R ... readable in a weekend of two. This should be the criteria for new programming languages IMHO.

As a lifelong C developer who recently had a lot of success starting a new project in Rust, I disagree. Writing "C" in C++ until you need extra features always turns out terribly. In Rust, you have to write code the Rust way from day 1. It takes 20 minutes of fighting with the compiler every time I implement a new feature in Rust, but when it compiles it does what it's supposed to do, the code looks good and there are no memory issues.

Don't even get me started on Go. Most overhyped language ever, with some serious issues.

What would a "K&R for Rust" look like to you, and how is the official book deficient in this way?

(I have my own grievances, which is why I'm working on a second revision, but feedback is helpful.)

Today's C is still C.

How about being a compiler engineer in the UK?


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.

Orly? Cuda type stuff? You caught my interest.

If you were able to get a job at Microsoft, I'd be surprised if you couldn't get a job elsewhere. Maybe look at remote jobs and moving to a low cost of living area if you are broke and sleeping on couches. Perhaps you might find these links useful:



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

I live in a small town and used to work with a guy who was Microsoft Windows phone support at one point before they transferred the role to India. He wasn't a programmer. He wasn't an admin. He was phone help support as in "I can't get teh google to come up when I push the power button... pleaz help!".

He has gotten the best job offers in the area including an interview for head of IT for the entire school district. He doesn't even have a college degree. He is good guy and I enjoyed working with him, but at the risk of sounding dismissive I didn't observe him to be very motivated nor a top level problem solver nor see that he possessed much high level knowledge.

Point being... with people who don't know better the word "Microsoft" on a resume is a golden ticket and a guarantee that one is top caliber talent and highly knowledgeable. So there is that in your favor....

Maintenance programmer at defense contractor? Most of those programs are permanently stuck in the "good old days"

Depending on your background, taking a gig in R&D or a rapid prototyping shop can be very clarifying, and you get to use and bring to play lots of old skills the young folk don't even know about.

You don't have to really worry about framework, just pick one. Or you might end up reworking fundamental data structure code, which can be really fun for an exercise of algorithmic design.

On the other-hand, maybe it's time to go multi-disciplinarian, take a gig connected to, but completely outside of your comfort zone. Nothing put me into a state of panicked "I need to learn from the firehose" mode faster than this. I'm not even talking technical work, go be a manager, or an industry analyst, work on soft skills or liberal arts fields. Your old skills can provide interesting viewpoints nobody else has.

Hm, I am not bored yet, but I think I might be bored in the future. So I was wondering if I should go back to university and study something interesting, Physics perhaps, or even pursue a new career, like becoming an airline pilot or so..

The best advice I've ever gotten in my professional life is "don't solve a problem you don't have yet."

Airline pilot is probably one of the most boring jobs there is. You are basically babysitting an auto-pilot for hours on end. Maybe try taxi driver, you can at least talk to your passengers. The risk of racking up an insane debt and no job is also much lower.

Errr... sounds like you don't want what to do what the job has become these days. Actually sounds like you don't even want to be working. Have you thought about doing something else entirely, try to find something you enjoy?

>Errr... sounds like you don't want what to do what the job has become these days.

You won't find many startups hiring someone to do the kind of work the OP is looking for, but there's still plenty of C and assembly programming going on.

"Errr... sounds like you don't want what to do what the job has become these days"

I can assure that some people can still make a living as domain experts in limited niches.

Teaching or tutoring. Lots of work there and good money.

Really? Any pointers on how to get started?


Most countries need teachers, contact that department of the government and start from there. Get into a school, watch some lessons. Then get a teaching qualification.

>* 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.*

Well, there are tons of places that use C developers.

You need to look into industrial automation / measurement device manufacturers. Custom Windows software, PC-only, well defined interfaces[0].

[0] Relatively speaking ...

Look at companies that make smart devices, such as sensors.

I don't know if this will help, but I can pick the niche for you. Here are the languages and frameworks you should be learning today:

* JavaScript (ES6), Node.js and Express, React

You should also get a refurbished Mac Mini or Macbook, and start learning Swift for iOS development. Put together a few simple apps. There's a lot of jobs for iOS developers.

A lot of Rails developers seem to be moving on to Elixir and Phoenix. So I'd keep my eye on them, too.

>> [OP]: 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 [...] Now it's all distributed, multi-level conglomerates of varied frameworks and languages sort-of working together

> [You]: JavaScript (ES6), Node.js and Express, React

From the tone of original post, I highly doubt OP wants to spend time on that, unless the stick would hit him really hard. Something like embedded software development or telco/networking also pays, while could be a more pleasant experience.

I meet a lot of older developers who harp on about assembly and coding mainframes. Sure, it sounds wonderful, but they got fuck all done in a day.

You should pick JS, something server side (PHP, Ruby, Python, or Node.js) and react.

You'll spend a lot of time configuring libraries and services (webpack or webify) but that's just the way coding is these days. Anyone of us could code some assembler - like OP said, it's fun and easy. We teach our 14 years olds how to code assembler - it's that easy. You don't honestly think you can compete with those skills? You need to learn the hard stuff.

This is what you should do:

Learn all of the above Learn PhoneGap and cordova, use React to create an app. Pitch to companies to put an App out for their website. Use whatever server side tech they use (e.g. 90% of companies will be using PHP) to create a simple Web API for your app to call.

> Anyone of us could code some assembler - like OP said, it's fun and easy. We teach our 14 years olds how to code assembler - it's that easy. You don't honestly think you can compete with those skills? You need to learn the hard stuff.

Aside from rest of the comments, this is such a ridiculous comment that I can't tell if it's a joke or not. Have you actually built anything meaningful with assembly language?

The language isn't particularly complicated, but with the assembly it's very easy to lose the sight of the forest for the trees.

I think that's why barely anyone uses raw assembly for any big pieces of code, unless they either have to (severe hardware constraints, lack of any compilers, or some specific needs) or want to challenge themselves. Higher level languages are there for a reason :)

That doesn't make this guy's comment anything close to true. It's like saying "Writing a piece of English literature is easy. All you need to know is alphabets. Really that's all you need to know." It is hard to express yourself using assembly, and like you said that's why there are higher level languages. Of course you don't need to know what a car is made up of in order to be a good driver, but it's idiotic to think the internal technology is simple.

Yes, exactly. I don't like analogies, but language and alphabet is a good one here.

No. But having met a few assembly coders over the years, every story seems to involve tons of work making something simple happen.

This guy wants a job. That pays money. Are we all going to tell him that assembler is the path to riches? Maybe for 1% of guys out there.

This just means you haven't met enough people. You probably met some people who worked on embedded systems where they only need to use a simple set of instructions predefined by the device. But imagine doing that for your laptop. Personally I learned assembly when I was into hacking operating systems (not as in the diluted 'hacker' notion people throw around nowadays for merely being able to write a simple html code, but as in actual 'hacking' to make the OS work in ways its designer had not intended) and from my experience it is the farthest thing possible from being simple. Teaching 14 year olds to write assembly code? Read up on my analogy above.

I don't want to get into a pointless internet argument. But I have been into schools and helped teach coding. Kids pick up assembler a lot quicker than other high level languages. But they are more productive in high level languages.

You can write complex systems in either. I'm sure we could both come up with examples of complexity all day.

"You'll spend a lot of time configuring libraries and services (webpack or webify) but that's just the way coding is these days."

Not all paid programming is like that. Desktop + expert software = stable platform, can focus on implementing features on top of existing stack.

I don't think the hard part is configuring libraries and services or anything like that. When needed, anyone with enough competence to read the docs and peek into the source code and do whatever's necessary.

The real pain is that those who had stepped on this road have to always run at the top of their lungs, trying their best to catch up with this giant hipster bandwagon. The language and frameworks change every other day, with old code rotting away at an astonishing speed. Not everyone's cut for this kind of pace.

There are other areas than webdev, where things are more stable without stagnation.

> I meet a lot of older developers who harp on about assembly and coding mainframes [...] but they got fuck all done in a day.

Except for making a JS engine that is fast enough to run your framework dujour.

All the leverage in high-level coding comes from the stability of the underlying layers. Even though those lower levels see less churn, we absolutely need people to maintain them, and these dev bootcamps certainly aren't churning out candidates who fit the bill.

Perhaps sign up and participate in the Launch Hackathon[1] at the end of the week? Best case scenario you start your own company. Worst case scenario? You have a fun time just sitting there crunching on a problem you're interested in.

[1] http://www.launchhackathon.com/

How popular is this event? I signed up for it and was surprised by its format (winning teams get investments). Any links to experiences from past events? We should have a HN contingent :-p

I've never participated in past launch festival things but it's my understanding last year drew in about 1,000 developers for the hackathon which distilled into teams (though not sure how many). It's certainly an interesting event!

Also I feel like a vast majority of the people would have to be part of the HN contingent, lol.

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

This sentiment will typically go unchallenged because we all know that micromanagement is here to stay. Still, please do share the juicy bits that led you to become dispirited.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact