European Patent Office

CASE-STUDY »OCR-Gateway«

The Hague (NL), 2011–2012, Contractor position as Senior Software Engineering Expert at the European Patent Office. Responsible for design, implementation, documentation and getting operational of an OCR service.

The assignment’s goal was the creation of an interface, allowing any application to benefit of a simple and fair service that provides recognition of symbols (letters, formulas, et cetera). The service became timely and successfully operational early May 2012.

The service is based on a back-end cluster of text recognition nodes. Commercial software (ABBYY RS) has been installed on those nodes; the cluster’s interface however did not provide all required properties (Fairness). Consequently, an asynchronous interface comprehending all desired features (including high availability), which uses the architecture of the Web (REST) and being vendor independent got designed by me.

After a successful prototype implementation (JavaScript / NodeJS) the service has been implemented and tested by me using Java / Java EE technologies, as well as accompanied through all test instances and last but not least documented.

Technologies

OCR (ABBYY RS 3.0, CVISION, Iris), Java EE (JBoss AS), REST (Jersey), DB (Berkeley DB SE), Distributed Caching (JBoss Cache), Buildenvironment (Maven, Jenkins/Hudson, Nexus, Subversion), Projectmanagement (Jira), Wiki (Confluence), OS (Windows Server 2008 R2, Windows 7, GNU/Linux SLES, MacOS X), Virtualalisation (VMWare), IDE (Eclipse), XML (XSLT, STX, JAXB), Profiling (YourKit), Test (HP Loadrunner), Documentation(ASCIIDoc, DocBook, XeTeX, TkiZ), Other (NodeJS, JSON, IIS).

CASE-STUDY »Infrastructure Engineering«

The Hague (NL), 2010–2011, Contractor position as Senior Software Engineering Expert at the European Patent Office.

Migration to current and de-facto standard build-environment components (Subversion, Maven, Jenkins/Hudson, Nexus Pro, SonarJ, Fisheye and Crucible). Design, documentation, presentation and implementation of an appropriate release process. Decommission of obsolete components.

Technologies

Build-environment (Maven, Jenkins/Hudson, Nexus Pro, Subversion), Projectmanagement (Jira), Wiki (Confluence), OS (Windows XP, GNU/Linux SLES, MacOS X), Virtualisation (VMWare), IDE(Eclipse), Other (Java, Groovy, Ruby, GNU/Emacs, XSLT/XPATH, REST).

CASE-STUDY »Darwin«

The Hague (NL), 2005-2009, Contractor position as Software Architect and Developer within the Research and Architecture Division at the European Patent Office. Design and Development of build-system “Darwin” .

A problem to tackle when building component based applications, is the use of proper versions. The usage of an outdated version is typically detected late in the deployment cycle and thus costly. The goal of my assignment was to provide a solution for this problem.

I solved this task by providing a fully automated build-system based on a Continuous Integration approach, internally branded as “Darwin”.

A fundamental aspect of Darwin’s design is that developers do no longer care about versions. Version management was entirely taken over by Darwin in a fully automated way.

CruiseControl had to be extended in order to archive this goal. A larger part of the complex version management got written in Python. Furthermore, a framework sitting on top of Ant had to be written to reduce build scripts to essentially dependency listings; assuring a homogeneous build process of several hundred projects.

Darwin became the de-facto standard for building software within the EPO.

Technologies

Java, CruiseControl, Ant, CVS, Maven, Tomcat, XML, XPATH, Linux, Windows, Eclipse, REST, Python, JSP, graphviz