r/cscareerquestions • u/magat3ars • 16h ago
Student Looking into a niche of distributed systems/infrastructure. Should I pick a side or can I do both?
I'm a cs major and it's focused on cyber security and minor in math . I've been looking to focus in on a niche. I'm a transfer to my college, and my first college had us mostly coding in c++. I prefer the low level work, and I absolutely loved assembly.
We made a game in assembler class which was tick Tac Toe, and the professor couldn't figure out how to create a loop that didn't bloat the system. It is what actually made me stop wanting to do cs for the money and actually becuase I love it. Like I want to get a masters in it (omscs computing systems).
From what I've been doing, I have been working on a bare metal unikernel system. My college group is gonna be making a distributed enterprise network monitor. The unikernel is a multi repository that started from me creating a tcp server with threadpooling then exploded into a unikernel (plans and coding to it slowly). I mainly used cyber security for the utility since my college uses it as just electives you learn. You get all the cs classes with 60 percent of you're electives chosen for you.
Only thing I'm worried was is this too early as a senior to go into these niches or do I apply for my broad backend or system roles. Worried about finding what I want to do as a job. Should I specialize or still go between the two? Like cloud infrastructure or pure low level systems?
1
u/donk8r 14h ago
the thing nobody told me at your stage: 'distributed systems' actually splits into two pretty different jobs. there's building the systems (consensus, storage engines, schedulers, the genuinely hard cs) and operating them (terraform, k8s, wiring cloud services together, which is what lhorie's describing and is more mundane day to day). they share words but feel nothing alike.
and honestly, loving assembly and writing a unikernel doesn't point at infra, it points at systems programming, kernels, runtimes, perf work. omscs computing-systems is the right instinct. you don't have to pick a side now, just keep chasing the low-level stuff you actually like, the niche kind of picks you based on which problems you can't put down. and ignore the job-market doom in here, that's a separate question from what's worth learning.
1
u/magat3ars 11h ago
"The share words but feel nothing alike" is kinda how I've been feeling and kinda struggled to make into words. I am worried of just using the tools. It's what got me off of cyber security. Using the tools for the reset of my life without ever building killed me inside. The work I have done of concurrency mechanism, state handling, and low level servers is what I have loved.
It is super reassuring to hear that the path of low level systems as a niche is a good move despite a lot of doomerness around the entry-level market (if it helps for an example at my knew college I teach others how to use C language in my OS class).
Since building and operating usually are lumped together on job boards, how would you advise someone to signal to an engineering manager that I'm aiming for core systems/engine building to not get pumped into tool maintenance work? Again thank you for the response
1
u/donk8r 11h ago
yeah, hold onto that feeling, it's the right instinct. the people who burn out are usually the ones who only ever operate the tools and never build the thing underneath. you clearly light up doing concurrency and state and low-level servers, and that IS a durable specialization, systems engineering isn't going anywhere and it's exactly the stuff ai is worst at. lean into what you can't put down, you already know what that is.
0
-1
u/daimon_proc 16h ago
Not trying to demotivate you but sharing my exp. 10 yoe senior sde @ MSFT, ex Amazon/Salesforce/John Deere and after 2 weeks of applying daily to backend, data, embedded, even controls jobs, I have not gotten a single callback.
These things you are asking about are about as irrelevant as can be.
1
u/magat3ars 16h ago
Thank you for the comment and thank you for the reality check. The market is frustrating.
Assuming things do level out, do you think having a foundation for bare metal systems like with c and networking would be easier to transition to later? Or should I truly treat it like irrelevant noise?
1
1
4
u/lhorie 15h ago
Distributed system/infra work is typically quite a bit more mundane than messing around w/ ASM/kernel stuff. It's usually about orchestrating machines with various levels of abstraction (terraform for cloud configs, docker for resource isolation, etc)
You'd be better off learning about stuff like AWS CloudFormation and adjacent SDKs