HACKER Q&A
📣 kaladin-jasnah

How do I get a job in OS and networks as a new grad?


I'm about to graduate college. Since the middle of high school to now: I've worked on lots of C and Rust, reverse engineering GPU drivers and hardware for phones (and toying with Linux drivers), low-latency video streaming, am writing my own OS (but need to apply to stuff before that's fleshed out), and have read quite a lot of research papers in networking. I know what a TCAM is, I know what flows are, I know that NICs DMA packets to ringbuffers in host memory, and I know that things like DDIO exist.

I really want to work on stuff with network stacks in the OS. I have a lot of connections in other parts of CS, but I have zero clue how to get a job in OS + networks. Unlike other parts of software engineering, where I at least see positions for new grads from time to time, all these OS + networks jobs seem much more senior. This is, if I can even find a position that exists related to these topics in the first place.

I really don't want to do anything else, I've tried a lot of CS and I love this the most. But I have no idea how to get there, barring a master's/PhD, which I'd probably do if there were no other route to getting to a job here. Any advice?


  👤 austin-cheney Accepted Answer ✓
The job market for software is tight right now. My own employer just published a junior developer position demanding a minimum of 8 years experience.

The lower end of the software job spectrum, which is probably web and full stack developers, is where I spent most of my career. It’s what I enjoyed doing. The problem with being on the technology low end, lower barrier of entry, of an industry is that it contains the people least capable of accepting more challenging work and least capable of adapting to change. You can imagine the behaviors in play for people to reinforce what they have before being squeezed out. Fears around AI are exaggerating these concerns.

My best advice is to always pursue the highest barrier of entry positions in software like OS design. Keep in mind there will be comparatively very few of these jobs. It will take much longer to find and land one of these less common jobs.

In the meantime I would recommend self learning to write assembly for hardware controllers or open source OS hardware driver design. The core of any OS is the kernel and memory management. Modern kernels also directly manage OSI layer 4 network traffic. If want to get deeper into network engineering look at layer 2 traffic management from the hardware perspective, the NIC. Simultaneously, you need to be paddling your resume so take any remotely related shit and junior job, like internships, that you can find. The goal at first is not big money. The goal at first is employment, preferably highly targeted employment in your interest area, by any means.

Good luck.


👤 SonOfKyuss
Look for companies that make hardware. They tend to need embedded and systems level programmers

👤 ThrowawayR2
Small industrial IoT hardware manufacturers would bea good place to start looking, in my opinion. If you are not familiar with things like Yocto, Buildroot, RAUC, etc. for building embedded systems, learning at least the basics using a Raspberry Pi Zero may work in your favor. There are also consumer IoT manufacturers, networking gear manufacturers, or, if you're really ambitious, Google (Android), Apple, or Microsoft.

The job market is, as others have pointed out, very bad right now so your search is likely to be long but don't give up. It's a rewarding career. Good luck!