technology
I have a passion, and experience through my development at mincom and leapstream, for building reliable, large-scale distributed-systems; including being part of a strong 3 developer team to deliver distributed integration infrastructure deployed to US Coast Guard Cutters. I also dabble in other areas, in particular security and cryptography, a field where I was a senior software engineer at RSA and developed the java based Elliptic-Curve finite field mathematics library underpinning their java cryptography, PKI and SSL/TLS toolkits.
Essential to delivering software are the tools that you use. For a developer this means, operating environments, programming languages and build/test tools. Correspondingly, I carry technical expertise, experience and firmly held opinions on all three.
I strongly believe that the power, tools, quality, history and leverage that UNIX can bring is unmatched. I have significant experience using and administering UNIX and GNU/Linux. I primarily work on FreeBSD, including this server, my laptop and primary development machine.
I continually experiment with a diverse set of programming languages, however I tend to gravitate towards the JVM, strong compile-time typing and functional over object-oriented. The current best fit for these tendencies is scala, although, with over a year of experience I am still slightly gun shy at its implementation quality. I am actively developing in scala, java, python and always the Bourne shell. I also experiment with lisp from time to time, but I do not have any currently active code bases (expect my emacs-lisp environment scripts, but elisp doesn’t really count, does it?).
Build and test tools are almost universally lacking, especially when it comes to java. I have a long standing passion for trying to address this with my own code, of particular interest to me is build and continuous integration environments. Most of my open source code and projects on eminentfu.org look at attacking, or at least contributing some ideas, to these problems. Even the most successful and high-functioning teams must demonstrate care and discipline with build and test tools, they are often the first to slip and repeatably cause the most pain come release time. This focus meshes with my experience of delivering quality code, regularly and on time.