I am a highly experienced software engineer. I have been programming for almost 30 years, since getting a ZX Spectrum +2 in the late 80s and learning BASIC from examples in the manual and magazines. I've been developing software professionally for around 18 years off and on, with a large detour into academia. I have a PhD and 1st Class BSc (Hons) in Computer Science from the University of Nottingham.
Professionally, I have mostly been paid to write various kinds of Java applications. However, I love programming in a wide range of programming languages, from highly dynamic ones like Tcl, Python, Prolog and Scheme, to strongly typed languages like Haskell, Mercury or OCaml. I've recently written a little Go for a client. I'm currently learning Erlang and Elixir.
Some recent highlights include:
- I was engineering co-lead and security architect of Forgerock's flagship OpenAM access management product. I know quite a lot about application security and things like OAuth 2.0, OpenID Connect, etc. I wrote an article about JWTs recently.
- I wrote a very high performance rolling Bloom Filter library that I used to implement scalable stateless session logout in OpenAM 13. Sadly that library appears to no longer be publicly available and I didn't think to fork it onto GitHub.
- I was highly active in the Tcl/Tk community for several years and contributed extensively to the wiki and several Tcl Improvement Proposals, including adding coroutines to the language (well ahead of most recent languages, although we were copying Lua at the time).