Jan 2010-Oct 2010: Vibrant media - Senior Developer
On contract for Vibrant media as a senior Java developer. My main job was as the lead developer for a brand new online advertising product for which I worked on the architecture and implementation. The product was implemented as a JEE webapp deployed on jetty using the latest asynchronous servlet technologies. The application functionality involved real time checks on websites as advertising assets load. This required spidering, integration with third party services, page content analysis and low latency response times. The implementation featured multiple levels of caching, used a highly multi-threaded programming model with heavy use of javas asynchronous and concurrent technologies. In addition the expected load and usage requirements of the product required a highly scalable design with application nodes being deployed on bespoke dedicated servers as well as on demand in a cloud infrastructure.
Jan 2009-Jan 2010: BBC New Media - Senior Software Engineer
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: Catlin Group Ltd - Senior Developer
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: Deutsche Bank - Senior Developer
May 2005-Dec 2005: Macro 4 - Senior Developer
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: SpaceSurfer Ltd - Director
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: Bulb Systems - Software Architect
Oct 1997-Mar 2000: SpaceSurfer Ltd - Director
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 from the SeaWIFS project. Carried out using pascal, fortran and IDL.
Summer 1993: 7 weeks work at the thin film technology laboratory, Imperial College. Simulating and designing column display driver circuits for thin film transistor 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).
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.