Settings

Theme

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

1 points by kaladin-jasnah 3 months ago · 6 comments · 2 min read


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?

ThrowawayR2 3 months ago

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!

austin-cheney 3 months ago

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.

  • kaladin-jasnahOP 3 months ago

    I guess that I didn't make it clear, I have extensive experience with assembly and every internship I did in college dealt with it. I also have some OS level experience in my internships. My hobby OS is going to have network stuff as well.

    My problem is I have no idea where (what companies?) to be applying to jobs with and not how to get experience in this area on my own.

    • austin-cheney 3 months ago

      That I cannot help with. There are numerous smaller companies producing micro controllers for various different kinds of hardware. The low level magic that you are building your career around is very different population than where I live as a form JavaScript guy.

      In my world it has become almost impossible to get an interview by applying to a company directly. There are just too many people and most of them are not even remote qualified and those that are still probably aren't very good. So, everybody is reliant upon recruiters to serve as match makers.

      I suspect your world is exceedingly different because its a high barrier of entry and the people who do that kind of work tend to be better educated.

      Maybe try completing a profile on major job boards like dics.com and indeed. That way companies can be searching for you while you are searching for companies to apply to.

      • kaladin-jasnahOP 3 months ago

        Good ideas! Thanks for the suggestions. The thing I would say is that I think a step into the embedded world is quite tangible for me, but I want to be working on more of the datacenter wired/high-speed networks. I suppose the best places to look would be network hardware companies, then.

SonOfKyuss 3 months ago

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

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection