Curriculum Vitae

Personal details

Name: Patrick Ian Mackinlay (M.Eng)
Date of Birth: 2 Jan 1973 (Milan, Italy)
Nationality: British
Contact details: Tel: 07005 964517

Work experience

Jan 2009-Dec 2009: On contract for the BBC as a senior software engineer. My main job was as the lead developer for a brand new JEE webapp and my responsibilities included architecture, capacity planning and implementation. The application design used a service oriented architecture (SOA) in a highly multithreaded environment. It followed RESTful principals for communication with clients and used technologies such as spring 2.5, hibernate 3.4 , aspectj 1.6, core java threading, MySQL and CouchDB.

The webapp was designed as the back end of a php website for a series of science TV programmes in which the audience was required to take tests online. Since the programme was aired at peak time on BBC 1 very high peak loads were expected, all design decisions had to take this into account. I was involved in estimating the peak resource requirements and making the design decisions to mitigate resource contention. As part of my role I also had to write code to maintain some of the legacy systems written in perl (mod_perl) and port them to the BBC's new forge infrastructure. In addition I had to setup a Selenium test server and write tests (in java) for the applications front end.

The project development process was based on Agile principals such as test driven development, continuous integration, scrum and user stories. The applications were deployed on the BBC's forge infrastructure which is designed for scalability and high availability, it is based on a server farm of CentOS machines with apache, tomcat, mod_perl and memcache.

Jun 2006-Jan 2009: On contract for Catlin Group Ltd. as a senior JEE and J2EE engineer. I joined Catlin as part of the team working on a greenfield project for the development of an AJAX double entry accounting package for their insurance underwriting application. The main technologies used were struts, spring, DWR, JPA with hibernate, java 5, weblogic 9.1, XA transactions (on Microsoft SQL server) and EJB 2.1 to communicate with the main underwriting application (a weblogic 8.1 J2EE app).

I later worked on a number of brownfield projects on both the accounting package and the main underwriting application. Finally, I moved on to evaluating technologies for the future architecture of Catlin's application platform, this included looking at jboss seam, grails and spring MVC.

Catlin uses modern Agile development methodologies, including iterative development (with scrumworks), test driven development, continuous integration (cruise control and bamboo), aggressive refactoring and collective code ownership.

Jan 2006-May 2006: Working for Deutsche Bank on behalf of Rule Financial as a senior java developer. I worked on a real time interactive trading platform (autobahn FI) for trading interest rate swaps. The application was being upgraded to take advantage of modern AJAX techniques and my job involved writing J2EE Java, javascript, XML, CSS and DOM.

May 2005-Dec 2005: On contract with Macro 4 as a senior developer on a project to create an AJAX web based front end (M4Explorer) to an IBM mainframe product (DumpMaster). My job involved developing an apache module in C, C++ to communicate with the mainframe. The emphasis was on reliability and modular, reusable code that could be used in other products. The product deployed on both windows and UNIX environment. I was involved in writing and testing the deployment scripts for zLinux: RedHat 31bit, RedHat 64bit and SUSE 64bit.

Mar 2001-Mar 2005: Software architect and lead developer on a number of mostly greenfield projects, involving many network/internet related technologies and PHP, perl, mod_perl, C, C++ and Java. All the web applications were hosted on UNIX (FreeBSD or linux) servers running apache. The projects I worked on included:

Mar 2000-Mar 2001: Working for Bulb Systems which was a design/IT consultancy. I was in charge of a number of website projects, involving the design and integration of software in HTML, javascript, macromedia flash, perl and SQL. I was also in charge of the company's IT infrastructure which consisted of UNIX (FreeBSD), linux (redhat, SUSE), Mac OS, Microsoft windows networked machines and involved setup and administration of NFS, RAID, NIS, firewall and apache machines. During this period the largest projects I worked on were:

  1. The design of an application used to run a bicycle courier company. This was intranet based running on apache and written using (perl, C++, flash and HTML). The system had a web based ordering process used directly by customers. The bicycle couriers were organised via SMS messages sent directly from the applications back end.
  2. The design of a content management system (CMS) used by the website for siemens traffic controls (perl, C and C++).

Oct 1997-Mar 2000: Founded SpaceSurfer Ltd, a company setup to run a number of online tools for webmasters which I designed. At the time these tools were revolutionary and included the design of a search engine and spidering internet robot, implemented using perl and java.

Easter 1995: 7 weeks work for DJL software consultancy continuing from the summer 1994 work.

Summer 1994: 7 weeks work at the Marine Environment Unit, Joint Research Centre (Ispra, Italy). On contract with DJL software consultancy developing software to decode, display and atmospherically correct satellite image data. Carried out using pascal, fortran and IDL.

Summer 1993: 7 weeks work at the TFT laboratory, Imperial College. Simulating and designing column display driver circuits for TFT displays. Carried out using VHDL and C.


Oct 1995-Oct 1997: PhD at Imperial College. The work was in the field of reconfigurable computing and hardware/software co-design. This was not completed, however as part of this work I designed, tested and built a reconfigurable computer based on XILINX 6200 FPGA's with an Intel i960 to run the OS and interface with the host computer.

Oct 1990-Jul 1994: Masters course in Electrical and electronic engineering at Imperial College. I graduated with a second class honours (upper division) degree and was awarded a commendation for my final year project which involved the simulation and design of a neural computer.

Sep 1978-July 1990: Secondary school at European School in Varese (Italy) with a 2 year period at European School in Culham (England). Graduated with a European Baccalaureate, overall average of 77.05/100, my optional courses were chemistry (7.8/10), physics (9.4/10) and advanced mathematics (8.7/10).

Professional skills

Technical team leader, senior software developerExcellent
Java/JEE/J2EE software development (EJB 2.1/3.0, JPA, JMS, struts, hibernate, maven)Excellent
Web application technologies (HTML, JavaScript, AJAX, DOM, CSS, XML, JSP, DWR)Excellent
Application servers (apache, weblogic, thomcat)Excellent
Application interoperability technologies (JNDI, Java RMI, SOAP, XML-RPC, Corba)Excellent
RDBMS experience (MySQL, PostgreSQL, BerkleyDB, MicroSoft SQL server, XA transactions)Excellent
Source code version control systems (Subversion, CVS, Visual SourceSafe)Excellent
Software development process and life cycle (Agile, RUP, UML)Excellent
Network and internet protocols (IP, TCP, UDP, HTTP, SSL, DNS, SMTP)Excellent
UNIX/POSIX programming (IPC, shared memory, multithreading)Excellent
C and C++ application developmentExcellent
UNIX/Linux platform (RedHat, SUSE, FreeBSD, Solaris, HP-UX, z/Linux)Excellent
Win32 APIGood
Assembly (Intel i386, i960, Motorola 80xxxx) language and driver (Microsoft Windows, linux kernel) developmentGood
GUI application development (Microsoft Windows, X11)Good


English: Fluent. Italian: Fluent. French: Excellent spoken and written. German: A little written and spoken. Spanish: Basic spoken.


I am interested in tennis, skiing, snowboarding, travel, science and technology.