Yonnosaka Terrace 008, Nakai 2-19-1, Shinjuku, Tokyo, Japan
January 2015 to Present, Tokyo, Japan
I joined Groupon as a consultant to provide help and guidance to the local Tokyo team during their migration of the Japanese-specific site and infrastructure onto Groupon's global infrastructure platform used already by approximately 15 countries world wide.
On top of coordinating the platform (and data) migration from a monolithic PHP code base to Groupon's international micro-services based platform, I've also been responsible for training the local team on the new architecture and coding practices.
With the cancellation of the migration project in May, I've been mainly focused on Japan's core infrastructure (introducing Docker, for example) and organising more modern development practices (adopting Git, feature branches, introducing unit testing, development and build environments).
December 2013 to Present, Tokyo, Japan
USRZ is an open-source platform being developed to provide a cryptographically secure, geographically distributed directory service, focusing especially on user access to *NIX servers (development, staging, production) and cloud services.
The idea was born out of the needs I encountered in at Joost, Ning and especially while growing the Gilt organisation, where "behind the firewall" hosted solution (such as OpenLDAP or Microsoft Active Directory) proved to be too complicated to manage and prone to severe security weaknesses.
The underlying cryptographically-secure architecture allows servers to establish trust over potentially insecure channels (for example man-in-the-middle attacks over SSL) by protecting the credentials exchanged from dictionary and replay attacks.
August 2010 to November 2013, Tokyo, Japan
I joined Gilt Japan's in the very early stages and under my supervision the technology team grew from 3 people to more than 20 developers and QA engineers located in Tokyo and Amman (Jordan).
During this growth, we shifted the focus from primarily translating and customising our US-developed platform to a locally-led and developed system, better answering the demands of the Japanese business.
Over the course of three years, we entirely re-engineered the main website and moved from a primarily monolithic Ruby-on-Rails system to a multiple tiered micro-services architecture employing Java and Node.JS REST back end services communicating with a fully responsive Angular.JS front end, entirely rendered in the browser.
From an infrastructure point of view, while at the beginning the site was hosted on a static set of Solaris servers, we focused on optimising our hardware investment through the use of Linux and Linux Containers, achieving dynamic optimisation of hardware resources through pseudo-virtualisation and automated deployments, and using third party services such as Amazon's EC2 and S3 when needed.
On the integration side, we focused to achieve a better synergy with local partners, especially on the logistics front (we completed the integration with two different Japanese 3PL/WMS solutions for our local warehouses) and on the payment front (we integrated with Japanese credit card providers and local payment methods such as "convenience store payments").
Lastly, during my tenure at Gilt I've been directly involved in a more "hands on" role, where I architected and was the lead engineer behind the main CRM platform overseeing user analysis and segmentation, and email personalisation and delivery.
April 2010 to July 2010, Tokyo, Japan
The focus of my contract at UBS was to develop a build and integration system for a number of Java projects powering the bank's Asian trading engine.
In the scope of this project I introduced Apache Ant and Ivy at UBS Japan, and built a Maven repository to centralise the distribution and management of internal and external software assets.
January 2010 to April 2010, Palo Alto, CA, USA
I was contracted by NING in order to architect and implement a prototype for a large-scale distributed cloud management infrastructure solution based on Linux containers managed via REST services (the underpinning architecture and technologies used today by Docker).
The resulting product was designed to manage and optimise the deployment, monitoring, configuration and usage of Ning's internal software on a pool of 1500+ physical servers and approximately 5000 virtual machines.
June 2006 to December 2009, Leiden, The Netherlands and New York, NY, USA
Joost was a startup company focusing on delivering video over the internet.
In the first phase of my employment, my contributions were focused on the architecture our back-end platforms where I dedicated most of my time ensuring that our services (mostly tied to video and user metadata, and event collection) could be scaled horizontally in order to cope with traffic demands, and could be made fault tolerant.
February 2002 to May 2006, London, England, UK
I joined VNU (now acquired by Incisive Media), one of the biggest B2B publishing companies in Europe, in early 2002 as a senior developer and technical lead.
In my first year I focused primarily on the enhancement of the existing platform (strengthening the server infrastructure to make it more resilient to an growing traffic, introducing standard MVC frameworks to tie in hundreds of ad-hoc JSP pages, ...) and the reorganisation of our internal development practices (introduction of version and issue tracking systems).
Throughout my career at VNU I was directly responsible for the architecture and implementation of a number of project, leading a small sized team of Java and XML engineers. These projects included:
From the second half of 2005 I was given the responsibility to lead the integration of six other European countries on the UK platform I architected, extending and distributing geographically what we built in the previous years.
August 2000 to November 2001, Santa Clara, CA, USA and Dublin, Ireland
I joined Sun's J2EE development team in August 2000 where my primary task was to work on the Servlet API reference implementation: Apache Tomcat.
Alongside with my primary duties as a software developer, I have also been involved directly with several Java standardisation efforts: I was active on a number of different JSRs including the Java Servlet and JSP specification, the Java API for XML Processing, the Java Daemons specification and the overall Java 2 Standard Edition specification (the JDK/JRE).
January 1999 to April 2000, Millbrae, CA, USA
June 1999 to December 1999, Cupertino, CA, USA
As an Apache member, at IBM alongside my regular developer duties I was also instrumental in the creation of the Apache XML Project with the initial donation of two technologies developed by my team: XML4J and XML4C, the XML parsers now known as Apache Xerces (and incorporated in the standard Java platform).
June 1997 to June 2009
I joined the Apache Group in 1997 and was one of the main contributors to the Apache JServ servlet container, the very first open source Java servlet container.
As a member of the Java Apache Group, I helped to outline the path behind Sun's donation of the Servlet API Reference Implementation to Apache (what later became Apache Tomcat), and contributed in the definition of the underlying initial structure of the Foundation.
When the Foundation was incorporated in 1999, as both an Apache member and IBM employee, I was instrumental in the creation of the Apache XML Project (with IBM's donation of Xerces and Xalan), and was a co-Founder of the Apache Jakarta Project, and original member of its Project Management Committee.
On top of being a contributor to a number of Apache and non-Apache open source projects (Tomcat, Cocoon, HTTPd, JDom, Jetty and several others) throughout my career I also sponsored and "fathered" the communities around several different projects: Log4J, Avalon and James to cite a few of them.
Under a mandate from the Apache development community, I also participated in different standardisation efforts: I was a member of the expert group of the Java Servlet and JSP specifications (JSR 53, 154 and 315), XML (JSR 5 and 63) and of the overall Java Platform SE Specification 1.5 (JSR 176).