I did an internship where I had to write fake network devices to test some server platform firmware configuration. I spent a bunch of time digging around the core PCIe code and Linux network stack. The first few weeks were a bit overwhelming but by the end of the internship I was really impressed with how clean and relatively understandable the interactions between userland, kernel space, and hardware operations were. It really made me aware about the importance of deliberately designed API surfaces that are critical to millions of users.
I also enjoy C programming, and it was interesting to see how the developers built out such a complex system without the more friendly programming language structures that I was first exposed to in school (mostly C++ and Java).
I also enjoy C programming, and it was interesting to see how the developers built out such a complex system without the more friendly programming language structures that I was first exposed to in school (mostly C++ and Java).