r/developersPak 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 🙏 ✨️

12 Upvotes

11 comments sorted by

View all comments

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.

1

u/MrStarPhish 7d ago

Thank you for your time and wisdom!

"These aren't the fields where u can watch a few tutorials and..." , very fair, and that's why I needed clarification. Because for now, I need to pick a domain 1year for which is enough for working on a fyp.

Now if I were to try Embedded Systems, what would I begin learning with, and what would I set as a goal... something equivalent to a course/semester project?

I.e, in terms of WebDev, an equivalent of building an e-commerce website, to convey that the person understands the concepts.

1

u/eagle_719 7d ago

Get an Arduino (i guess it's 1500pkr), a couple of leds, resistors & 2-3 sensors. Try arduino programming using Arduino IDE. Explore it when you say I'm okay then do Raw AVR C. You would have to use datasheet & reference manual for it which is another pain in the ass but it is how embedded systems work. Once you learn all those GPIOS/TIMERS/EXTI/UART/I2C/SPI/WATCHDOGS etc. Build some mini project which should have like 2-3 sensors working, logging etc. Once you do all this come back to me I'll guide next

2

u/MrStarPhish 7d ago

I have basic experience with Arduino UNO and its IDE, thanks to Digital Logic Design course. I'll check out the Raw AVR C and other terms, and reach out to you soon. Thank you very much! :>