David McKain

Dr D McKain

Applications Consultant
Other staff
James Clerk Maxwell Building (JCMB)
Room 7307

David is a member of the following School research group:


I am part of the School's Computing Services Team. I do a bit of everything, but specialise in application, web and software development, and the underlying infrastructure for these, and provide support and training in research computing and generic programming & computing skills.

Knowledge and skills

  • Lots of Java, various bits of JEE, Spring Framework, Hibernate etc.
  • Mark-up and document transformation technologies, e.g. XML, XSLT, MathML etc.
  • The usual classical web nonsense: HTML, CSS, ECMAScript/JavaScript etc.
  • Some modern web nonsense: Angular, TypeScript etc.
  • Other programming languages: Python, Perl, C
  • PHP and horrible PHP-based nonsense like Drupal
  • Shell scripting and process automation
  • High Performance Computing & parallel programming (e.g. MPI, OpenMP)
  • Web and application server management: Apache, nginx, Tomcat
  • Linux system administration
  • Linux configuration management with LCFG
  • Compute cluster management (Grid Engine)

Open source software

  • QTIWorks: Reference implementation of the Question & Test Interoperability v2.1 specification
  • Jacomax: Simple Java connector for the Maxima Computer Algebra System.
  • SnuggleTeX: Simple LaTeX fragment parser for Java

Software repositories

Outside interests

Recent publications