deutsch

Projects

Below listed are some of the software projects I worked on since 1999.

Domains

Market Risk

I've been back in Germany since May 2009. As trading systems consultant at Steria Mummert Consulting AG, I've been working on-site for various clients.

My current project is a market risk system for an energy trading business of a large energy corporation. Being a highly visible, priority project greenfield development the project employs exceptional talent using latest technologies and modern development practices. I've been fortunate to get onboard at the project inception. We are an 30+ distributed team coached by a SCRUM training professional. As a result, I strengthened my agile skills.

Among other things I'm helping the team to integrate the system into existing in-house architecture invoving an enterprise bus for trades distribution.

Flow Trading

Prior to that, I was business analyst in the equity derivatives front office IT team at a major German bank. I supportred bank's low-latency initiative aiming to improve market making latency on various exchanges by architecting a new co-lo architecture tuning vendor's trading system as well as distributed in house trading infrastructure. I worked in tight contact with traders, internal support desk, developers and the vendor. Work involved deep understanding of highly distributed based trading architectures, Java APIs, UNIX flavours.

Real Time Pricing

During my 2 years in London between June 2007 and May 2009 I worked within capital markets domain. My most recent experience was a Quant Developer working for CMC Markets.

In a versatile team combining in-depth entrepreneurial, business, quantitative and software engineering expertise I was responsible for a wide range of software architecture and development tasks. I worked on the dealing floor and reported directly to a top manager.

Development was predominately green-field with a lot of internal integration to existing infrastructure. I have played a key part in early phases of projects, elaborated architectures, guided junior developers and have been a main technical contact both to vendor consultants and internal technical stuff.

I was working on mission critical pricing parts which for a market maker such as CMC Markets were of paramount importance. This was definitely very challenging and satisfying experience.

FX Trading

Prior to CMC Markets I was with Progress Software in London where I was part of a global Apama technical services team.

Progress Apama is the leading Complex Event Processing (CEP) platform and a distributed application infrastructure extensively used in algorithmic trading arena. Therefore, vast majority of the Apama clients were from the capital markets domain.

We delivered production strength trading systems and saw them succesfully deployed and used by tier 1 investment banks, broker-dealers etc. The systems were mainly FX trading and/or Smart Order Routing (SOR) applications.

Progress Apama maintained a leadership position in FX arena with its award winning turn-key offering for FX trading. On that front, I helped extend, analyse, deliver and document FX solutions for a number of investment banks. I carried out technical analysis of live, revenue sensitive systems focusing on Apama correlator performance and scalability issues.

The projects included significant amount of liaison with the clients and required extensive communication and numerous on-site visists in London and across Europe.

In addition to engagement in client projects I contributed to the Apama platform itself. In total I developed 5 Apama adapters for following APIs/platforms: FIX, Reuters, Wombat, ICAP EBS developing low latency parts in cross platform C/C+ or Java and high level event-oriented business logic in Apama MonitorScript with some use of Pyhton for automated testing. I also architected and developed generic events persistence/recovery component.

At Progress I accumulated a variety of front office technology and consulting experience.

Toll Enforcement Gantry
A gantry

I worked in Germany for 5 years, between 2002 and 2007. I spend 4 years developing software for toll enforcement gantries. A toll enforcement gantry carries out enforcement procedure for the German Truck Tolling System. There are hundreds of gantries deployed across the German motorway network.

As member of core software development group I developed gantry C++ software particular vehicle data management cryptography and communication modules. I designed data storage structures and have personally programmed more than a hundred thousand lines of code, tested it, written specifications and design documents. Additionally I provided technical leadership, coordinated the work of developers and testers to create test specifications, assisted in the system delivery process. Gantry software was implemented under hard real-time constraints necessary for free flow toll enforcement. I delivered appropriate solutions maintaining a degree of balance between technical innovation and pragmatic design.

On-board units (OBU) employ Dedicated Short Range Communication (DSRC), to communicate with gantries. I developed DSRC communication module for real time handling of OBU data in multi-lane free flow environment.

A Gantry

For the system, I implementated various security parts. I contributed actively to the security of the system and played key role in most cryptography related tasks across the project.

After the release of gantries into production environment I was involved in most major incremental system enhancements.

WINGS-FOR-SHIPS

Between 2002 until March 2003 I worked at research institute FAW. FAW was formed in 1988 in the Science Park Ulm to be a leading research institute for artificial intelligence in Germany. I worked at the Business Processes and Telematics department on two projects.

The EU-funded project WINGS-FOR-SHIPS (Maritime Intelligent Workplace for weather Information Network, Guidance and Supervision onboard ships) designed telematics system that would provide ships with shared weather information and sea condition data.

In this project FAW was one of the numerous project stakeholders. We were responsible for the overall software architecture including server data model. Having evaluted a number of open source technologies and products we went with Java platform, Apache Tomcat, PostgeSQL and RedHat Linux for the central server.

As part of a 3-man development team, I designed the database schema for PostgreSQL RDBMS. Initially, the schema contained about 30 tables to store information about weather, ships, ports and routes.

WINGS-FOR-SHIPS gave me good exposure to various aspects of international projects involving a wide range of participants.

POWM
POWM (process oriented knowledge management)

Before the project WINGS-FOR-SHIPS at FAW in Ulm, I was involved in the development of a bespoke application POWM (prozessorientiertes Wissensmanagement - process oriented knowledge management) for a renowned German car maker. Following the philosophy of knowledge management as a way to gather and reuse knowledge acquired within an organization, we built an enterprise system that helped the client to capture knowledge about their complex and weakly structured engineering processes.

The POWM was a n-tier, Oracle based Java application with a rich Swing-based GUI. I worked primarily on the front-end.

Initially focused on software development, my role at FAW has expanded to technical leadership. As an example, I introduced the team to code and build management tools and integrated WinCVS, JUnit, Java Ant into existing development environment based on IntelliJ IDEA. I dealt with many aspects of configuration management raging from configuration of the CVS server to writing Java Ant scripts.

TDM Framework

I developed an open-source framework "Tabular Data Manipulation" in early 2002 when my experince with Java Swing in the project POWM combined with good undestanding of MVC gave me good insight on how to perform effective data manipulations on tables and lists in Java 1.4.

Applications that display data in tables or lists usually have to allow users to sort the data on columns or apply a filter criteria. Although it might appear straitforward to implement sorting or filtering directly on the model level, developers can end up with an irresponsive and slow GUIs especially when the model contains large volumes of data.

TDM addresses performance issues caused by expensive data copying in models. It adds just another level of indirection between the data model and the view introducing the data manipulation layer that is responsible for data representation manipulation without altering the data itself.

Although the Swing API in the Java 1.6 release supports filtering and sorting of tables out the box, the TDM can be used as an alternative implementation. The TDM framework is better aligned along the concepts of the MVC Architecture and clearly separates data storing, data representation and data manipulation issues.

Here you can read the TDM overview and download the binaries, sources and documentation.

SMIL Player

During 2001 at InterObject I developed a SMIL (Synchronized Multimedia Integration Language) multimedia player. A SMIL 2.0 basic profile compatible product was able to play complex multimedia presentations combining audio video and text. It was developed in C++ for desktop and mobile Windows.

I was involved in the project from the inception phase. Working as part of a 5-man development team, I established the 3-layered player architecture, designed and developed the execution engine responsible for interpreting the SMIL presentation structute, orchestrating its media elements and layouting the presentation. The engine controlled temporal behavior, presentation layout and handled media hyperlinks. It supported time graphs, time containers, syncbases, instance time lists, instance times, regions with absolute and relational sizing and fitting, background regions and z-index etc.

I performed OO design of the engine using UML and Rational Rose. C++ development made heavy use of STL and GoF design patterns. The NuMega tools BoundsChecker and TrueCoverage along with CppUNIT helped to debug and unit test the component. The execution engine was ported to the Pocket PC platform using eMbedded Visual C++.

Working on the engine I gained solid experience with Microsoft Windows technologies (COM, ATL and DirectX). I learned a lot about software design, patterns and one of conclusions was that is makes few sense to do a full detailed component modeling before the design is proved with code. Since then I'm a follower of eXtreme Programming and Agile methodology.

The SMIL Player has grown into the InterObject MMS technology.

ProCell

My work at InterObject involved the development of numerous semiconductor machine control systems using Smalltalk and ControlWORKS Framework

During 2000 my contributions included development of control system for ProCell DUV Coat/Develop photo-resist processing tool from Silicon Valley Group.

My area of responsibility for ProCell was design and development of maschine scheduler and HMI. The scheduler was a very complex multithreaded subsystem coordinating robot arms for wafer transport between process modules.

I designed and implemented the pilot wafer flow feature which was a challenging task, since the scheduler, already at its limits, had to be extensively modified to introduce new processing scenarios. As solely responsible for the feature I worked on-site at the client company in San-Jose providing expertise in Smalltalk and ControlWORKS to their development team.

ProCell and Lynx gave me great insight on development of large-scale, distributed control systems. As a result, my master's thesis that I wrote during my work on ProCell, focused on development of a control software for semiconductor manufacturing automation.

Lynx
Project: Lynx

The project Lynx, I started working on in March 2000, had been building software for a thin film deposition equipment for chemical vapor deposition (CVD). For this project we developed large parts of the SCADA (Supervisory Control And Data Acquisition) software in Smalltalk using ControlWORKS Framework.

I developed the host software tier taking care of the HMI and typical SCADA software features: data logging, recipe management, wafer movement coordination and scheduling, alarm handling, event management and machine maintenance. I prototyped and developed parts of HMI and fixed numerous bugs throughout the project. Developing custom widgets for real-time operators GUI required deep understanding of the MVC paradigm in Smalltalk. Software was developed using VisualWorks and Rational Rose with version control management built on the ENVY/Developer.

The project Lynx has taught me the fundamentals of OO, design patterns, multithreading, and basically the software development process for large scale mission critical systems.

SCU

At InterObject I implemented a Switch Configuration Utility for IP-Telephony Gateways - an n-tier Java application for access to the equipment configuration database. I implemented front-end and linked it to an Oracle RDBMS via a middle layer utilising in-house object-relational mapping layer on top of the JDBC for the database connectivity.

Although I was in the project team only for 4 months (moved shortly after it to 2 large Smalltalk projects), I built up solid grounding in OOP, Java, databases and software development process.

YDV
Project: YDV

In 1998, at the research institute FAW in Ulm I worked on a information visualization research project focusing on layout of hierarchical strcutures.

I developed a web-based application for representation of search results from the Yahoo! Directory in a three-dimensional virtual reality space. A VRML world from the directory subtree returned by Yahoo which was displayed in a VRML-enabled web browser. The application enabled finding information quickly by navigating through the world and approaching particular documents for detailed information.

Apache web server and a CGI-driven Perl VRML module was used on the server side along with a VRML plug-in for Netscape Navigator and JavaScript.