I'm pretty comfortable with high-level languages and application development. However, although I have learned about low level topics such as the ones listed below, I have never done anything with that knowledge outside of school.
- bit twiddling
- dealing with little vs big endian
- memory management (stuff relating to the stack/heap/malloc, etc)
- multi-threading with mutexes and semaphores
What are some ways that I can practice these in my spare time, while working at a company that writes managed code?