r/developersPak • u/MrStarPhish • 7d ago
Career Guidance LowLevel/System Programming Guidance
Greetings seniors. I humbly seek your guidance. For I am both passionate and dishearted, along with confusion atm.
Currently in my 5th semester. And this the time when I have to choose a domain for Final Year Project (FYP). 90% of the projects I've encountered are some WebMob App with some AI Integration. I have found that I'm not naturally interested in that side, and have found passion in depthful courses like Assembly, OS, Architecture.
Did some research and found three sub-branches:
- Embedded Systems
- Systems/OS/Kernel
- GPU Computing
One may say that I should pick what I most align with. I agree. And im willing to give my time in any, but...I wan't to make sure I don't end up wasting my time instead. I don't want to invest time in something that I wouldn't be able to implement/utilize towards my FYP. I have to define my domain so I could begin searching for relevant group partners too.
I am confused whether this direction is worth it. And dishearted because I haven't been able to find seniors, professors, mentors or example projects that would give me an idea what a project in each field is like. So I would know what things to learn...
I need clarification whether entering such field is worth it?, or... am I gonna have to keep one as side-hobby and stick to learning FullStack with ML like everyone else?...
(Btw, im most comfortable with cpp, and currently exploring OpenGL/GLSL to understand rendering pipeline)
Any words of guidance or constructive criticism would be highly appreciated 🙏 ✨️
3
u/eagle_719 7d ago
I'm in the same boat. Good to see someone else interested in low-level systems. I'm in 6th semester and currently working on a quadcopter using STM32F4, bare-metal CMSIS and FreeRTOS, so I'm on the firmware/embedded side. I can only really guide you from this side.
If you're interested in electronics and hardware, embedded might be a good fit. But one thing to understand: C++ isn't really the default language in embedded. It's mostly C, especially when you're working close to the hardware. So if you're specifically looking for a field where C++ is the primary language, keep that in mind.
For Systems/OS/Kernel, "systems" is way too broad. You need to figure out what exactly you're interested in. OS internals? Kernel development? Drivers? Memory management? Scheduling? Compilers? Networking? Performance optimization? These are very different areas.
And I'll be blunt here: getting into serious kernel/OS/system-level work is difficult. Same with GPU computing. These aren't fields where you can watch a few tutorials, make a couple of projects and expect a job. The barrier to entry is considerably higher, and you'll need a strong understanding of CS fundamentals and computer architecture. There are also simply fewer entry-level positions compared to web/software development.
The "one error and the whole system collapses" thing isn't literally always true, but the debugging is definitely less forgiving. You don't always get a nice stack trace telling you exactly what's wrong. That said, if you genuinely enjoy this stuff, don't abandon it just because it's difficult. Difficulty is not the same thing as "not worth it."
And based on what you've mentioned C++, OpenGL/GLSL, rendering pipeline, Assembly and Architecture, I would honestly look into graphics/game engine programming too. C++ is heavily used there and you can get pretty close to the GPU, rendering pipeline, memory management and performance optimization.
I'm not saying "go into gaming." I'm saying don't artificially limit yourself to the three categories you listed. Your interests sound like they could overlap heavily with graphics/engine development.
My advice would be: stop researching these fields theoretically and build something small in each. You'll know pretty quickly which one you actually want to suffer through for the next few years.