Python — my language of choice since 1999. I've used it to write web servers, database systems, daemons, scientific simulations, blog engines, and innumerable scripts for various purposes. I'm deeply familiar with the language, its libraries, and its best practices, and I bring that knowledge to bear on writing high quality code. I'm expert with both Django and Flask for web development, with experience in a wide range of supporting technologies such as Celery/Kombu, SQLAlchemy, Selenium, Lettuce, and Fabric. I'm also proficient with the Pandas/Numpy/matplotlib stack for data analysis, scientific work and charting.
Haskell — a key tool for much of my scientific work between 2004 and 2014, when I applied it to language processing, formal logic, simulations, GUIs and web apps. It's a beautiful and mind-expanding language, and using it has informed my general programming practice for the better.
Other languages — I'm a multi-linguist and a fast learner, with a rigorous grasp of programming fundamentals across multiple paradigms. I write PHP when I need to do get things done in Wordpress; I know Objective-C and have written some iOS apps for personal use; I'm also competent in Java, Scala, C, LISP and various shell scripting languages.
System Administration / DevOps — I'm an experienced UNIX/Linux/BSD/OSX sysadmin; I've set up and maintained servers running Nginx, Apache, PostgreSQL, MySQL, RabbitMQ, ElasticSearch, InfluxDB, Grafana, Supervisord, SELinux, Jenkins, etc. and am comfortable working with virtualisation tools such as VirtualBox, Vagrant, Ansible, SaltStack, Chef, etc. For version control I'm a Git expert, but I also know Mercurial, Subversion, Darcs and CVS.
2009 — 2014
PhD in Computer ScienceSwansea University
2004 — 2008
MPhil in Computer ScienceSwansea University
Thesis: Tool Support for CSP-CASL — language design/formalisation and tool implementation for a new mathematically rigorous system specification language; compiler programming in Haskell.
Language design, tool support, and case studies for a new system specification language called CSP-CASL (a process algebra with algebraically specified datatypes), within the Processes and Data research group. This involved design and formalisation of the language's syntax and static semantics, and implementation of its parser and static analyser in Haskell.
1992 — 1995
BA (Hons) Computing & Pure Mathematics, first classUniversity of Wales, Cardiff