The Montgomery Scott approach to software engineering
I carry around a little toolkit with me on a thumb drive. It contains useful libraries, little snippets of code, and a few of my own practice projects (the ones I use to keep myself in the game outside of my realm of employment). The gnome sorts I mentioned in an earlier blog entry came from my little toolkit, as do a few Lua extension libraries, a lot of small Rexx tools that I've had use for over the years, and so on.
One of the tools I carry around with me is a simple, architecture-quasi-independent coroutine system. Another is a simple, architecture-independent timed event queue system (that supports my coroutine system as well as callback-style events). On Friday, it turned out the hardware prototype I was supposed to be writing drivers for and testing was broken and could not be used. Faced with a bit of spare time I decided to throw them into our suite of libraries so I could finally program something with decent readability and reliability. Come Monday, my boss comes in and we talk about the hardware issue, and I say:
Yeah, I didn't lose much time. And there was a bonus. I wrote an RTOS for us.
I love watching my boss's face when I do things like that. He's an electrical engineer so someone writing an RTOS at all is, to him, miraculous. It's doubly-miraculous to have it done in a day. (I didn't tell him, naturally, that it was ¾ done years ago.)