From Ben's Writing
I've been using computers as long as I can remember. I broke, then fixed my first computer at the age of 7. I've been hooked ever since.
It has been a long while since I concentrated strictly on the internals of machines. I became fascinated with software construction at age 10, after joining a school computer club. We learnt how to use our trigonometry lessons to make something happen on the screen. It was never fast, or even pretty, but it is was fun translating otherwise dry memorization exercises in to something tangible.
I have since stopped keeping up with the latest hardware releases. Instead, I focus on the architecture I am currently targeting. Despite not attending to the latest trends in consumer hardware, I still keep myself informed about larger trends or shifts in hardware design. I am currently particularly interested in multi and manycore systems: from how their cache and register memory is arranged, what new concurrency primitives the core supports, all the way to how they shepherd bits between cores and even other physical CPUs.
I've been developing software professionally for almost 17 years. I've written critical systemslevel code; database applications; elaborate, native and aesthetically pleasing graphical user interfaces; highly parallel and distributed systems; as well as basic utilities to help myself and others close to me perform everyday task more pleasantly. Many of these projects have been developed using a variety of languages and a diverse set of tools. The remaining ones were written in C.
I prefer to use stable languages and mature tools for "production" code. However, experimenting with new languages and novel tools for small projects is something I continue to do oftenfor better or worse. Ultimately though I like writing: I like writing code, I like writing about code, I like writing documentation for code, and I really like writing tutorials on how to use code. The latter two tend to suffer the most when I am busy, but only because it is usually the part that requires the most care to get correct. As far as I can tell, there are no automated tests for good explanations.