Hacker News new | ask | show | jobs
by HeyLaughingBoy 4159 days ago
As someone who was described as having "an interesting career path" by his manager due to simultaneously developing Windows device drivers and GUI code, I say learn C#.

The availability of device driver writers is shrinking rapidly, as my search for one in the last year proves. However, it's shrinking because the market is shrinking. Might be more accurate to say that the market has already tanked. At the same time, the market for C# devs is exploding.

The good news is that you can make $$$ as a consultant writing device drivers, the bad news is that those gigs are likely few and far between. With your background in signal processing and MATLAB and good C# skills, you'll have opened doors to some interesting opportunities. A friend of mine with a similar background just started a machine learning gig and he's enjoying it.

Take the C# job and learn the language. I love C/C++, but it's getting harder to find work in that language unless you want to focus on embedded systems.

3 comments

> I love C/C++, but it's getting harder to find work in that language unless you want to focus on embedded systems.

It's getting harder even if you do want to focus on embedded systems. I see the hiring bars for those positions getting increasingly higher, to the point where it is almost impossible to switch in if you didn't start there or back if you took a break.

Fully agree.

My employer moved away from C++ projects in the enterprise space back in 2005, into more programmer friendly languages.

In spite all the nice C++11/C++14 features, the enterprise hardly cares for C++ nowadays.

And when it does, the code is most likely pre-C++98, written with MFC, Tools.h++ or similar.

Care to elaborate? I'm early in my career(24), love embedded systems, but I just don't know if there are good jobs available in this industry for young people. Could you give more info?
C# for Windows device drivers? Huh? How are you even going to handle an ISR (interrupt service routine, IRQ) or a DPC with C#? Or DMA, etc.?

Disclaimer: I've worked with Windows device drivers, and there's no way I can see you could use C# there. Maybe in UMDF, but you certainly can't do anything timing sensitive in user mode. And drivers are often timing sensitive.

Not sure where you got that from anything I said.
I am surprised to hear that the market for device drivers is shrinking. Is it because hardware is becoming more homogenous?
A lot of earlier work in the area was due to many companies building their own hardware that ran on internal PC busses. Now most of them have found that USB is responsive enough,so the driver work on internal bus devices is down. In addition, Microsoft has made it increasingly easier to develop drivers and including more of the stuff you previously had to do yourself as part of the Device Driver Kit.