Computer Engineering stuff
Don't know a lick of it. Pure software engineer here.
I'm software too, even though I went to school for computer and electrical.
I would have to guess that you do not work with embedded real-time systems, where memory and processing is at a premium because the processor is often buried within a car, washing machine, ie something that cannot be easily accessed and tinkered with; hence the term 'embedded'.
The constraints force us to be very judicious with memory, therefore the need to know which variables will occupy rom and which will occupy ram.
We need to know exactly the handling of interrupts; ie perhiperals that have new data for the processor.
And if the software takes too long to handle the interrupt the watchdog timer will stop the processor because there is an error; the interrupt must be handled in a specific amount of time otherwise the real-time system may cause harm to people.
Sometimes when we try to get slick with our structures and to assign a pointer and traverse memory with pointer arithmetic one can often end up at an address that was unexpected, resulting in possible data/memory corruption.
Something I'm interested in doing is bringing over some of the problems from project euler and seeing how everyone handles them. It'll be an interesting exercise that will allow some of the more senior programmers to critique the less senior programmers in order to improve their skills.
Please do.