What kind of programmer am I?
I usually enjoy being systematic-pragmatic, so I can build the infrastructure well enough that I (that is me, along with others) can later use it like a brainless opportunistic.
I am comfortable being pragmatic-opportunistic while using components that really work (like 90% of protocol stacks, databases, etc.). Tinkering with them until I get the "principles" is usually enough to satisfy my curiosity.
On the other hand, programming for a life teaches you to be pragmatic-opportunistic unless you are brilliant enough to get to work on one of the relatively scarce places where you get paid for being systematic. But having to deal very often with ill built components (like 90% of ActiveX components in the wild) makes me so angry! I am used to go back reinventing the wheel when the third party wheel doesn’t work.
So I guess I am difficult to label. I think it is like being a car mechanic that loves to get his face under the hood, but also loves do drive a glitch free car. This makes me thing I would never try to build a whole car by myself.
What a joy it is when everything just works!