|Name:||Patrick Ian Mackinlay (M.Eng)|
|Date of Birth:||2 Jan 1973 (Milan, Italy)|
|Contact details:||Tel: 07005 964517
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.
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:
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).
|Technical team leader, senior software developer||Excellent|
|Java/JEE/J2EE software development (EJB 2.1/3.0, JPA, JMS, struts, hibernate, maven)||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 development||Excellent|
|UNIX/Linux platform (RedHat, SUSE, FreeBSD, Solaris, HP-UX, z/Linux)||Excellent|
|Assembly (Intel i386, i960, Motorola 80xxxx) language and driver (Microsoft Windows, linux kernel) development||Good|
|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.