Driver development as career path

Hi everyone,

First post so please go easy on me!

I'm an experienced application developer (primarily Java) with a smattering of embedded experience and reasonable C (not so much C++).

I'm looking to get back into low-level work and I'm particularly interested in Windows driver work. The problem is, outside of this site, there are not many up-to-date resources.

I have Windows Internals Pt 1 and
Developing Drivers with the Windows Driver Foundation by Penny Orwick and Guy Smith on order, and I've been playing around with some Windows API code from Windows System Programming.

However, at least in the UK, I am finding specific job openings for Windows driver devs extremely rare, and those that do require a large amount of experience. Which makes me wonder, am I wasting my time attempting to break into what seems to be a fairly closed field?

Thanks for reading!

Steven

Yeah it’s an arcane skill. Outside of Microsoft and assorted hardware vendors, there is very little device driver development going on.

There are opportunities for people with file system minifilter experience- antivirus etc type stuff. But that is its own specialty and you generally won’t find entry level jobs.

The only good news is that ai is not going to replace the few opportunities there are, at least not in the first wave of programmer replacement. Not enough data to grok.

1 Like

Hi @Steven_MacDiarmid! It may seem like a closed field, but driver developers are still needed --- though the number of such developers at any one company may not be large.

The company I've been working at for decades used to have a number of people working on drivers of one sort or another, now there are very few left, and the work is sparse. Part of it has to do with the longevity of the drivers: some of our old WDM drivers have seen few changes in the last 20 years, just enough to keep them working on current platforms or to address new certification requirements. A big part of it, though, is our work was mostly with various communication cards for special-purpose device networks, now largely replaced by ethernet and standards built upon it.

I still do driver work, but it's a part-time gig now. The good news you've already got some valuable experience outside the driver realm, and the best employment opportunities will be found by cultivating a rich set of skills.

Best of luck to you!

Thanks @Mark_Roddy and @Dave_Ruske!

It sounds like this is quite a hard niche to break into, and even if I did, it might not be enough on its own to pay the rent!

I actually had thought about starting with minifilters (it seems like it would be easier to deploy and test than a physical device though I'm probably wrong about that). I do find the security and anti-malware areas interesting too. That might be a more profitable area to focus my learning.

Regardless, this is an area I want to delve into and I look forward to chatting and (hopefully) contributing to the community.

In my UK centred view there is little to no fulltime "driver developer" jobs, I've seen a few job posts for contractors. That being said, it can be a significant part of the job at a cybersecurity / games company. Where one could be working on packet interception drivers / disk filter drivers / anti cheats etc.

Jason

1 Like

I know of one company in the UK that does device driver design. They specialize in FPGA with PCIe design.

That's an area that may well be growing.

1 Like

Welcome to NTDEV @Steven_MacDiarmid.

You ask:

Am I wasting my time attempting to break into what seems to be a fairly closed field?

Hmmm... a good question.

It's not a "closed" field, but rather a very specialized field with decreasing demand. As Mr. @Mark_Roddy said: It's "an arcane skill.

These days, from what I see in the industry, people who develop device drivers fall into two categories:

  1. Those who come from a specific technology -- For example, they're USB people and they work on developing USB technology and drivers (usually for multiple operating systems). They sometimes do drivers for their technology space full time, but often not.

  2. Those who "stumble into" the driver field, because they work for a company that needs a driver written or maintained, they're a dev who's good enough with C, they've taken an operating system class in university, and they're willing to learn. They typically work on a driver or two for their company, usually part time.

Both of these categories of folks typically work for the device vendor.

At one time (like, 20 or 30 years ago) there was a lot of demand for Windows device driver developers. But, as hardware has become more standardized, there is less need for custom drivers to be written these days. Not zero need...but much less need. And when company's DO have a need for a custom driver, it's often super specialized and sometimes very complex. So they turn to experienced freelance experts.

At one time there were several full-time, highly experienced, driver writers who worked in the industry as consultants. These folks did freelance projects for a wide variety of companies that needed drivers but couldn't justify a full-time in-house driver dev. Given that these folks were already experienced when they started writing Windows drivers, most of them have gotten smart and retired. For example: Mr @Mark_Roddy, Mr. @Tim_Roberts, Mr @Don_Burn (all of whom generously donate their time here on NTDEV, using their vast experience to answer questions)/. We, here are OSR, are one of the few world-wide driver specialist consulting firms that remains.

So... it's a specialized field that is challenging to learn, and definitely not growing. If you have a good background in operating systems architecture and some familiarity with hardware, it's something you can learn. But, unless it's a passion that you can't ignore, you'd be better off career-wise doing something else with your software development skills.

3 Likes