@liskin @ljs @vbabka doing symbian was not all that bad.
i was not in the UI layer. i was in the team doing audio subsystem, which contained resource manager, DSP codecs, audio policy etc. e.g. setting up the correct codecs, managing memory for audio, opening correct streams depending on phone state (like incoming call when you have video playback ongoing).
i also learned basics of ARM CPU's at the time, which is obviously still useful knowledge, JTAG debugging with Lauterbach TRACE32 and stuff like that. so even tho symbian is a relic, all the skills are still useful and can be applied :-) that way i got into middleware and operating systems.
when i started in 2003 symbian phones were larger and had two ARM CPU's separated by a physical bus: the first was for the phone OS and second one was for the application OS (symbian). when series 60 3.0 came along around 2004 the hardware architecture moved into one CPU model and to a real-time kernel called EKA2, which hosted the whole symbian in one of its threads.
One thing that was tedious was the edit-compile-run cycle. If I had to fix a bug, it took about 45-60 minutes to run it on a device, as both compilation and flashing took a while.
Doing e.g. Linux kernel is not that hard if you've worked in any possible operating systems before because in the end it is all about understanding hardware and the domain where you are working and the source code's layout is just like a different legislation and policies in a foreign country.