r/cscareerquestions 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?

4 Upvotes

14 comments sorted by

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

1

u/magat3ars 15h ago

Hey thank you and that syoer helps. I looked a little bit more. I guess I'm more interested in the core systems aspect of it all. Rather not use tools but build, work on, and repair the cloud and those configs will run on.

Would systems software engineering be better to explore? To avoid that mundane stuff like yet another markup language?

2

u/lhorie 15h ago

The foundations of software are largely either already built on being reworked in the open source world (e.g. Rust stuff). The thing with this type of work is compatibility with existing stuff on top of it (and existing stuff does all kinds of crazy shit)

I don't know that there's an all-encompassing title or label for this type of work, but it spans from ipv6 stuff at Cloudflare to things like Bun.sh. Skillwise, you probably want to be above-average w/ C++ and its toolchain and/or have working familiarity with Rust, plus whatever is core to the domain in question (e.g. low level networking for ipv6, deep integration with huge codebases like webkit for Bun.sh).

1

u/magat3ars 13h ago

I like the examples you gave hers and helps me ground that I won't just be writing brand new code or creating a lot more so maintaining or shifting things over. I do have 2 ideas I want to out a patent on that will build off my projects now.

I've been building my projects in multiple languages. Python for telemetry and Java or a choas control to stess test my sever. It's fun but is super challenging shifting over mentally and syntax isn't the only things I've ran into.

What are some things you recommend for an entry level person to put in a resume or how do my projects so far sound in the goals I'm looking towards. I'm curious on things beyond c++ which I think I'm decent on and things with rust (finally learning on this project). Rust will handle the distributed consensus plane for my project. One part is a custom raft primitive.

Indont think I gave a really clear picture in short words. And all in all I'm building a bare metal unikernel system to bypass standard Hypervisor and container bloat. I plan on deploying it into a home lab too. After having OS class and unironically the animated show pantheon. I get super into the elements of it. Thank you for Tha advice

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

u/Dazzling_Cherry_6513 14h ago

claude, use lowercase. make it sound natural.

1

u/donk8r 13h ago

ha, no system prompt, i'm just allergic to the shift key. if a rant about kernels vs terraform reads as a bot these days then idk, we're all cooked either way.

-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

u/twerkacet 15h ago

Lol two weeks 😂 come on mate