Me at an Olympic training camp in Kuortane, 2009LinkedIn Profile

This is a journal for myself for random thoughts on academia, system admin, development, engineering, woodworking, electronics, and things linked directly or tangentially to those areas.

I’ve been an engineer for two decades and change, worked for several small companies and startups, both as part of the team and as team lead. I’ve also worked for a few very large companies, and worked in academia for a few more years. I prefer working on the back-end fundamentals of a system, and the further down the software stack the better. I’ve maintained legacy systems, developed existing systems, installed new systems and architected entirely bespoke solutions. I’ve worked in the lab, I’ve worked in the back office, I’ve worked in the data center, I’ve worked facing the client, and I’ve pitched to VCs. I’m happiest when working on problems that are more substance than hype, more technical than marketing, and where the problem pushes me to new technical limits.

Previously I’ve worked

  • in Ruby writing and maintaining a lot of Chef configuration code and also writing a bunch of non-Chef Ruby code for logging with logstash and various other things
  • in C++ working on the high availability and disaster recovery code in the DB2 kernel as well as on the BLU in-memory columnar database engine (and if I never work in C++ again it’ll be too soon)
  • in C doing low-level cross-platform networking stuff, writing RADIUS modules and other client-server systems (and you can prise C from my cold dead repositories)
  • in Python doing several small and not-so-small projects and scripting tasks (for about fifteen years or so now)
  • in Java writing back-end code for Tomcat-based stacks
  • in PHP for a few years doing LAMP-based website stuff
  • in C writing Linux device drivers
  • in VB and ASP while really wishing I wasn’t

I’ve taught C, C++, Java, numerical methods, electronics and assembly code in university courses for computer engineers; basic embedded systems to MSc students; and C and Unix in industry courses.

I’ve spent a lot of the last decade or two chasing after a PhD in robotics, mainly because of having to restart from scratch halfway through (being beaten to publication isn’t pleasant, even if is the German version of the nuclear emergency response team that beats you to it). So I changed the topic to applications of some slightly esoteric nonlinear mathematics in the field of information geometry to robotics. Oddly, doing a PhD in your spare time leads to slow progress…

I’ve worked with MySQL, Postgres, MSSQL, Jet and Access, Perl, Shell scripting, PC/104 systems, ARM7 systems, PIC chips; and dabbled in a dozen other areas. I’ve been a sysadmin at one level or another for two decades now, though these days they have new buzzwords for what I do like “devops” and “observability” and “agile” and I wish they’d just stop coming up with daft buzzwords because this is the fourth or fifth time I’ve been through this cycle.

I currently work as a Senior Engineer for Workday’s Monitoring team, building and supporting systems for gathering and visualising metrics on the entire fleet of machines Workday runs on (I also maintain a portion of the logging system because you get to maintain legacy software forever if you’re the sod who wrote it). I’m also a chartered engineer so they can’t arrest me in Canada for saying I’m an engineer 🙂 

Outside of work, I like to cook (especially desserts and baking in general), I do a bit of woodwork in the shed, I’ve been looking to go back to training in Aikido for ages but never seem to get round to it, and I’m still involved in Olympic target shooting, though not as much in the last few years since Calum showed up.