Curriculum Vitae

Knowledge and Experience

  • 5 years’ commercial Java programming experience, plus experience of other languages.
  • Web development in JSP, JSF, HTML5, JavaScript and Flex.
  • Back-end development with EJB, Hibernate and Oracle SQL.
  • Educated to MSc level with a focus on object-oriented programming and web technologies.
  • Management of large scale projects from design to implementation and testing stages.

Core Technical Skills

  • Java • EJB • JUnit • EasyMock • PowerMock
  • JSP • JSF • ICEfaces • Servlets • Tags
  • Apache commons • Apache POI • Hibernate
  • Oracle SQL • PL/SQL • MySQL • Crystal Reports
  • HTML5 • CSS3 • Sass • XHTML • Twitter Bootstrap
  • JavaScript • AJAX• jQuery• Prototype •
  • XML • DTDs • XSLT • SAX parsing • RSS
  • Python scripting • PHP web development • ActionScript • Flex
  • JBoss • JOnAS • Apache Tomcat • Apache HTTP Server
  • Eclipse • Ant • SVN
  • ATG Web Stores • Morello CMS (now Alterian) • WebTrends • Omniture


Web Developer, Oberon Media Ltd., Jan 2012—present

Development of web channels using Java, JSPs and the ATG web store framework. Web page development in HTML5, CSS3 and Sass. Client-side programming in JavaScript and Jquery.

Test-driven development with Junit, EasyMock and PowerMock.

Java Developer, Vianet Ltd., Jan 2010—Dec 2011

Development and support of a large-scale system to collect and analyse data from vending machines, with customers across Europe including GlaxoSmithKline, France Telecom and Coca-Cola. Back-end development in Java EJB 2 and Oracle SQL, plus front-end development in JSF and Adobe Flex.

Architect and main developer of a system for importing and exporting vending machine data via Excel files, with extensive use of Hibernate and Apache POI. Development of a vending machine monitoring script written in Oracle PL/SQL.

Part of a large team of developers. Experienced in issue management, testing, and source control and release management.

Web Developer,, Jun 2007—Dec 2009

Extensive JSP development in conjunction with the Morello framework and tag libraries. Content import and export via XML. Development and maintenance of a custom tag library. Responsible for the redevelopment and upgrade of the main website. Technical designer for a large data collection project involving both internal and external agency work.

Designer and main developer for several standalone sites. Involved in employee recruitment and interviews, and responsible for training and supervision of developers.

Unpaid experience

System Administrator, Scottish Council for Minorities, Dec 2005—Jul 2006

Management of a network of 20 Windows computers used for paid public internet access as well as for staff. Implementation and maintenance of user accounts, email, network drives, peripherals, backup procedures, virus scanners, account security and firewalls. Development of contacts database in Microsoft Access, using forms and VBA. Equipment procurement and technical support. From April 2006, responsible for the training and supervision of a Junior System Administrator.

Personal projects

  • “Conway‘s Game of Life” for mobile phone (Java J2ME)
  • “Sokoban” puzzle for mobile phone (Java J2ME)
  • Lightweight general-purpose XML parser in Java 6.0, using SAX parsing, reflection and POJOs.
  • Wikitext-to-HTML editor (Java 6.0)
  • JavaScript “CollapsibleList” utility (based on the Prototype framework)

All projects are downloadable from the projects page.


MSc (Distinction), Software Engineering, Napier University, 2006—2008

Including courses on C#.NET, Perl, PHP, Java, XML, XSL, project management, e-security, networking (with Cisco training), client-server programming, web services (SOAP/WSDL) and parallel programming. Dissertation involved porting a popular parallel programming framework to the LeJOS platform for Lego Mindstorms robots.

(Degree was part-time from 2007—2008)

BSc (Hons) 2:2, Computer Science and Artificial Intelligence, Edinburgh University, 2000—2005

Computer Science courses included Java, CORBA, Python, theory of computing, databases, compiler design, computer modelling, XML technologies, computer security and human-computer interaction. Artificial Intelligence courses included Prolog, genetic algorithms, neural networks, computational linguistics, machine vision and robotics.

A-Levels, Island School Hong Kong, 1997—1999

  • Mathematics (A)
  • Additional Mathematics (A)
  • Physics (A)
  • Computer Science (C)


  • British national
  • Basic Disclosure from Scottish Government, issued December 2011
  • Current clean driving license
  • Four weeks‘ notice period
  • References, current salary available on request