Fachlicher Schwerpunkt dieses Freiberuflers

Lead-Developer Business Analyst Software Architect Java / Java EE Reactive Microservices SQL / NoSQL Financial / Banking Trading / Exchanges

Available from
Dec 31, 2019
Availability
100 %
on customer site
100 %
Cities
Heidelberg
100 km
Frankfurt am Main
100 km
Speyer
100 km
Contact Settings

I prefer getting offers for these sites. However, you may also contact me for interesting projects in other places.

Position

Comment
  • Senior Software Developer
  • Architect
  • Business Analyst

Projects

03/2018 - Today

1 year 9 months

Platform for algorithmic trading of cryptocurrencies

Roles
Business Analyst, Architect, Developer
Customer
own Company (Name on request)
Tasks

(Name on request) is a platform for algorithmic trading of cryptocurrencies on multiple exchanges.

Responsibilities:

  • Analysis of business requirements
  • Architecture of software skeletons
  • Design of software modules
  • Design of database schemes
  • Implementation
  • Monitoring

Team:
(Name on request) is my private company with one developer

Activities:
(Name on request)
Architecture, design and implementation of a microservices platform from scratch that features automatic, high frequency and low latency cryptocurrency trading following custom trading strategies.
The platform is implemented completely following modern models and pattern like microservices architecture, asynchronous and reactive programming, event-driven messaging, distrib

Products

Java 8

Vert.x

JSON

GSON

Jackson

Hocoon

REST

Websocket

SignalR (custom client) HMAC

Cryptocurrency Exchanges APIs

MongoDB

Redis

Windows 7/10

Linux

VirtualBox

iptables

NetBeans

IntelliJ Idea

Git

Github

Zube Kanban

Maven

JUnit 4

11/2017 - Today

2 years 1 month

Landscape of multiple enterprise systems

Roles
Business Analyst, Developer, Architect
Customer
Deutsche Bundesbank
Tasks

(Name on request) is a landscape of multiple enterprise systems that track, store and monitor all credits and their contracting parties along with additional data in Germany and Europe. These systems also provide a variety of reports to the banking supervisors.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software skeletons
  • Specification of software functionalities
  • Prototyping of software implementations
  • Design of software modules
  • Support for business

Team:
(Name on request)  is driven by a staff of more than 100 members spread over multiple head offices including business and development.

Activities:
WebFOCUS Business Adapter for (Name on request)
Architecture, design, specification and prototyping of a business abstracted data layer for ad-hoc-reports.
(Name on request)  was migrated to (Name on request) which has an advanced technical data model. Banking supervisors use the 3rd party Business Intelligence platform WebFOCUS to create ad-hoc-reports. Because of the complex data model of (Name on request) the supervisors were not able to use it.
In my role as Business Analyst I gathered all information about how supervising works and specified a data layer between WebFOCUS and the physical database that is understandable by the supervisors. The specification was implemented by 3rd party WebFOCUS experts.
As result of the specification and implementation of the abstract data layer the banking supervisors are now able to use (Name on request)  data in their reports. Similar abstraction layers will be introduced for other, still unconnected (Name on request) systems in the future.

Technologies:
Application: WebFOCUS, Oracle SQL
Database: Oracle Database 12c
Tool Stack: WebFOCUS, PL/SQL Developer, Enterprise Architect, Java 8, Struts

Interfaces
Analysis of all inbound, outbound and internal interfaces of all (Name on request)  applications.
Because of the similar nature of Deutsche Bundesbank and Bundesanstalt für Finanzdienstleistungsaufsicht (BaFin), both institutions share a lot of common data. In order to provide more outbound interfaces to the BaFin all interfaces of all (Name on request) systems are analyzed.
The objective is to provide more interfaces to the BaFin without significant development time.

Technologies:
Tool Stack: Enterprise Architect

07/2017 - Today

2 years 5 months

System that fetches click statistics from a variety

Roles
Lead Developer, Architect, Business Analyst
Customer
Commerzbank AG
Tasks

(Name on request) is a system that fetches click statistics from a variety of research document providers for accounting and reporting. It is a purely business managed application, under active development and one project of my my current main projects.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software skeleton
  • Design of software modules
  • Design of database scheme
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for business

Team:
(Name on request) is driven by a staff of 7 members including business and development.

Activities:

(Name on request)

Architecture, design and implementation of a (Name on request) application from scratch.
Commerzbank researchers create market research and analysis documents and provide these to customers through several provider channels like Reuters, Bloomberg or FactSet. (Name on request) is made of provider specific importers and scheduled jobs that fetch the information “who clicked when on which document”. It normalizes this information into a common database.
Using the system enables Commerzbank to create accounting information per document. Additionally it is used to create all kinds of reports and to renegotiate all existing contracts and document prices. It satisfies the MiFID2 regulatory requirement to track click statistics of research documents within (in-) and external portals.

Products

Java 8

Microsoft SQL Server 2008; 2012

Linux

MS TFS

NetBeans

03/2011 - 09/2018

7 years 7 months

Flow Trading, Cash Equities

Roles
Lead Developer, Architect, Business Analyst
Customer
Commerzbank AG
Tasks

The project had no concrete name.

Main stakeholders of the project were:

  • Cash Equities: A trading desk for institutional- and special customers to perform high volume transactions of single stocks or baskets. The central trading application is Bloomberg SSEOMS.
  • Flow Trading: A trading desk for casual and non-special clients to perform small and medium volume transactions of single stocks or baskets. The central trading applications were Realtime Trading Desktop and DeltaAgent.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software skeletons
  • Design of software modules
  • Design of database schemes
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for operators
  • Support for customers
  • Support for traders

Team:
The project was driven by a staff of up to 3 developers.

BasketTrader
Architecture, design and implementation of the front end application “BasketTrader” from scratch to establish a desk-spanning investment banking trader front end solution.
BasketTrader is a FIX Protocol complaint, modular, high performance Java Swing GUI application that is used by traders to do high volume and low latency transactions of single stocks and baskets.
It supports trading of all kinds of instruments from multiple instrument universes.
The instrument universes are pluggable implementations of e.g. a customer’s instrument database, a instruments definition provider or a bank-wide instruments database.
The application manages and visualizes a complete trade lifecycle like entering, executing and monitoring.
During the whole trade lifecycle it shows a lot of information such as trade states and errors, trade progress, average execution prices and more. For each instrument in a basket it displays live prices (bid and ask) for each instrument. The price feed is an implementation of a Reuters RFA client. It has support for multiple levels of market depths.
BasketTrader comes with free configurable module that can attach custom configurations to each order. Flow Trading uses the module to offer algorithm input parameters to a trader. Thus the trader can instruct a backend algorithmic trading engine of how to treat a trade e.g. more price-safe by trading only at VWAP. Cash Equities uses the module to instruct the back end order router “ESA Router” how and where to route an order to.
The application is developed by up to 3 developers in parallel and used by up to 15 traders in Flow Trading. It is also used by an unknown number of other FIX Protocol application development teams as a diagnostic tool because it provides a deep inspection of a FIX Protocol order flow.

Technologies:
Application: Java 6, C++, Shell Script,
Frameworks: Swing, Google Guice, Disruptor, Reuters RFA
Protocols: FIX Protocol 4.2
Software: Reuters 3000 XTRA
Tool Stack: Linux, Subversion, NetBeans

Minor Activities:

  • Enhancing and fixing of rules, filters and connectivity of the existing in-house application SSEOMS-MF. SSEOMS-MF was a processor to transform FIX Protocol messages to MUREX SQL Procedure calls. SSEOMS-MF got replaced by CGI later on.
  • Creation of Excel based reports to inspect and filter all daily transactions.
  • Creation of a detailed FIX Protocol log viewer, based on BasketTrader.
  • Creation of test tools.

Technologies
Application: Java 6, Shell Script
Frameworks: FIX Protocol
Database: Sybase Adaptive Server Anywhere
Software: Bloomberg SSEOMS
Tool Stack: Linux, Subversion, Jira, NetBeans, Eclipse

03/2015 - 03/2018

3 years 1 month

system that provides a variety of services, user interfaces and data like instrument data...

Roles
Lead Developer, Architect, Business Analyst
Customer
Commerzbank AG
Tasks

(Name on request) is a system that provides a variety of services, user interfaces and data like instrument data, market data, interest rates, forecasts and more to fulfill the daily needs of Commerzbank market researchers and internal and external customers. It serves more than 250 customers and client systems.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software infrastructure and communication
  • Architecture of software skeletons
  • Design of software modules
  • Design of database schemes
  • Prototyping of software implementations
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for operators
  • Support for customers

Team:
(Name on request) is driven by a staff of 6 to 8 members including business, operation and development.

Activities
Forecast Service
Architecture, design and implementation of a RESTful service “Forecast Service” from scratch to centralize forecasts for all Commerzbank researchers and a flexible Excel Addin that provides access to it.
Previously all forecast data was spread over hundreds of linked Excel files.
The new service enables all users to read and write forecasts in parallel without any technical communication between the involved business teams. It simplifies finding and fixing wrong forecasts. Additionally it satisfies the compliance audit finding to track data changes.

Technologies:
Application Server: Tomcat 8, Java 8, REST, CDI
Application Client: Visual Basic for Applications (MS Excel VBA)
Database: Microsoft SQL Server 2008, 2012
Tool Stack: Linux, MS TFS, Eclipse

(Name on request) Service
Creation of a new Java Server Faces service “(Name on request) Service” from scratch to enable further development of the bank internal client application. Previously the client was developed in Visual Basic 6 which was a deprecated environment and no longer available in the bank. All functionality of the old client got optimized and re-implemented in the new service and available through the webbrowser.
The new service fixes a lot of existing bugs in the old client application and enabled development of additional core business functionalities to the widely used client application. It satisfies the Commerzbanks policy of modern software architecture and denied the users to access the database layer directly by interfacing it with a web frontend.

Technologies:
Application Server: Tomcat 8, Java 8, Java Server Faces, PrimeFaces, jQuery, CDI
Application Client: XHTML, HTML4, XML, CSS3, JavaScript, ActiveX
Database: Microsoft SQL Server 2008, 2012
Tool Stack: Linux, MS TFS, NetBeans

Scheduler Redesign and Prototype Implementation Reference
Architecture, design and prototyping a UC4-driven scheduling implementation of (Name on request) jobs.
Actually job scheduling is driven by a highly customized Activity BPMN engine. This engine implementation is very error-prone, weak in giving feedback, and in fact forbidden by Commerzbank scheduler policies. Additionally it requires a ludicrous knowledge of its peculiarities so that two developer resources are bound only to the engine development.

Implementing the design of the new scheduling platform that is based on UC4 will lead to a clean and easy to understand architecture and free important developer resources. Additionally it satisfies the Commerzbank scheduling policy by utilizing the managed UC4 platform. The new design can easily be adapted by following the “SPManager” reference implementation.

Technologies:
Prototype Applications: Java 8, Shell Script
Database: Microsoft SQL Server 2008, 2012
Scheduler: UC4 One Automation, Activity BPMN engine, Tomcat 
Tool Stack: Linux, MS TFS, Eclipse

SPManager
Architecture, design and implementation of an application to manage Stored Procedures. (Name on request) contains more than 2500 Stored Procedures that are changed directly by business staff in production environment. Previously it was a hard job to keep the SPs synchronized in the development and production environment which often lead to big issues when a rollout was done that utilized such changed SPs. There was no change tracking and no source versioning.
The SPManager finds on a daily basis all new and changed SPs and reports the source codes to the developer team for versioning. Thus all SPs are versioned in TFS which leads to much more relaxed rollouts. Additionally it reports weekly usage statistics to detect unused SPs.
The SPManager is the prototype and reference implementation of the new UC4 based scheduling platform.

Technologies:
Application: Java 8, Shell Script
Database: Microsoft SQL Server 2008, 2012
Scheduler: UC4 One Automation
Tool Stack: Linux, MS TFS, Eclipse

General Activities:

  • Creating a new deployment processes.
  • Refactoring existing applications into a new and easy to understand structure.
  • Guidance and advice for complex technical problems.
  • Communication and synchronization with other teams.
  • Tracking of high level requirements.
  • Improvements of overall architecture.
  • Shutting down of obsolete services.

Technologies:
Application Server: Tomcat 7+8, Java 7+8
Application Client: Visual Basic for Applications (MS Excel VBA)
Database: Microsoft SQL Server 2008, 2012

Tool Stack: Linux, MS TFS, Eclipse

04/2015 - 11/2016

1 year 8 months

Platform for trading and managing electronic commodities

Customer
own Company (Name on request)
Tasks

(Name on request) is a platform for trading and managing electronic commodities including an online shop.

Responsibilities:

  • Analysis of business requirements
  • Architecture of software skeletons
  • Design of software modules
  • Design of database scheme
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for trader

Team:

(Name on request) is my private company with one developer and one trader.

Activities:
(Name on request)
Architecture, design and implementation of the multi-user web application “(Name on request)” from scratch to fulfill all needs of an international hard- and software commodities trader. (Name on request) enables a trader to manage all kinds of commodities. It features services like customer- and counterparty-management, trading, international shipping, international tax- and fee-management and much more.
It is capable to handle complete trading lifecycles such as quotation, order, execution, invoicing and more.
(Name on request) includes automated interface jobs to fetch warehouse inventories of various counterparty companies for pricing and stock tracking, as well as a website content management system and a document management system.
On top of all (Name on request) contains a web shop module to sell commodities through an online shop.
Both the (Name on request) system and the web shop module is accessible though mobile and desktop devices with a single implementation utilizing Responsive Design.

Products

Glassfish 4.1

JEE 8

EJB

PrimeFaces

jQuery

OSGI

CDI

XHTML

HTML4

XML

JavaScript

Responsive Design

MySQL

Linux

VirtualBox

iptables

Subversion

NetBeans

Adobe Dreamweaver

Adobe Photoshop

09/2011 - 03/2015

3 years 7 months

Cash Equities, Flow Trading, ETF Borrowing & Lending

Roles
Lead Developer, Architect, Business Analyst, Onsite Coordinator
Customer
Commerzbank AG
Tasks

The project had no concrete name. It was spanned over multiple trading desks and contained several applications to create synergy effects.

Main stakeholders of the project were:

  • Cash Equities: A trading desk for institutional- and special customers to perform high volume transactions of single stocks or baskets. The central trading application is Bloomberg SSEOMS.
  • Flow Trading: A trading desk for casual and non-special clients to perform small and medium volume transactions of single stocks or baskets. The central trading applications were Realtime Trading Desktop and DeltaAgent.
  • ETF Borrowing & Lending: A trading desk for borrowing and lending Exchange Traded Funds. The previous central trading application was called “Pirate”. “Replacing Pirate” was one of three COIN projects in the bank that acquired investment budget during a bank-wide investment stop during the financial crisis. Only projects with a guaranteed earning or saving of millions of € were accepted as COIN project.
    During the project a variety of existing applications or the complete trading platform were replaced in each trading desk.

I figured a couple of roles:

  • As Lead Developer I dispatched and tracked team activities.
  • As Architect I designed parts of or the complete software infrastructure of each these desks and defines complete trade flows from trade input to routing to execution to positioning and accounting.
  • As Business Analyst I worked closely together with traders to understand the concrete business models and needs to find ideal desk-spanning solutions.
  • As Onsite Coordinator I was responsible for remote developers in India in terms of communication, coordination, knowledge transfer, task assignment and tracking.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software infrastructure and communication
  • Architecture of software skeletons
  • Design of software modules
  • Design of database schemes
  • Prototyping of software implementations
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for operators
  • Support for customers
  • Support for traders

Team:
The project was driven by a staff of 3 to 8 developers. Including business, management, operation and reference customers the project was driven by up to 30 persons. The trading desks, management and developers were spread over Frankfurt, London, New York and India.

Activities:
Exchange of ETF Borrowing & Lending desk’s trading platform
Consulting, guidance and phased architecture design of replacing the complete New York ETF Borrowing & Lending desk’s trading platform from Pirate and FlexTrade to Bloomberg SSEOMS, BasketTrader, CGI and MUREX.
High level requirement was to replace the complete trading platform to save a lot of license costs by using Bloomberg SSEOMS, achieve much more transparent order flows by using Commerzbank in-house FIX Message backbone and connectivity and to satisfy the Commerzbank policy to track all positions in MUREX.
Because the project guaranteed a saving of millions of € it was accepted as COIN project.
Another expectation to the new platform was of course a better overall performance.
In my role as Business Analyst I worked closely together with business to find optimal solutions for the concrete needs and point out all possible issues.
In my role as Software Infrastructure Architect I worked out optimal order flows, to ensure all interfaces and regulatory reports are still fed. I advised business which parts of the platform can be replaced with alternatives and which of them need enhancements. I provided effort estimations per migration phase for different architecture solutions.

In my role as Lead Developer I enhanced or designed and prototyped applications that replaced existing parts of Pirate and FlexTrade. I specified requirements for a MUREX position providing service that got implemented by MUREX the team. Additionally I planned, assigned and tracked all developers’ activities and guided developers in case of complex problems.
In my role as Onsite Coordinator I coordinated all communication, knowledge transfer and activities of our colleagues in India.
Since the platform is replaced Commerzbank saves a lot of costs because of the better licensing model of Bloomberg SSEOMS. As a result of the migration all positions are kept in MUREX now. That satisfies the Commerzbank policy of position keeping and enables a complete overview of all positions bank-wide in MUREX which is used by high level management and board of directors on a daily basis for decision finding.
The new order flows through the Commerzbank FIX Protocol backbone follow all standard rules which lead to a much cleaner and understandable routing and tracking. Operators can now give much better support for problematic orders by using standard tools.
By using brand new or existing high performance applications the overall performance could be improved a lot. Daily processes like the account rebalancing are optimized to consume minutes now instead of hours. With the appearance of rule based engines in the order flow business, traders, operators and developers can save a lot of time in communication by using a standardized language.

Technologies:
Application: Java 6, Drools, Shell Script
Frameworks: FIX Protocol
Database: Sybase Adaptive Server Anywhere
Software: Bloomberg SSEOMS
Tool Stack: Linux, Subversion, Jira, Eclipse, NetBeans

BasketTrader
Architecture, design and further implementation of the existing front end application “BasketTrader” to establish a desk-spanning investment banking trader front end solution.
Price feeds got implemented as pluggable modules that utilize Bloomberg and Reuters feeds. Database connectivity was added to implement a single point of user configuration.
For the New York ETF Borrowing & Lending desk BasketTrader got extended to deal with ETFs, Swaps, Cash Amounts and more instrument types. To keep the desks’ positions of borrowed and lent instruments in balance the application implements a precise algorithm to rebalance an account worth more than 4 billions of dollars. In the end it offers the rebalancing trader a ready-to-trade basket with buy- and sell-orders to bring the account back in balance each day. It utilizes a bank internal web service to MUREX that provides the desks’ positions.
All other business processes like Creation and Redemption of an ETF, OTC trading and book transfers of positions got implemented as well.BasketTrader is developed by up to 3 developers in parallel and used by up to 30 traders. Further information about BasketTrader and its history is available in this document in the timespan from 09-2008 to 03-2011.

Technologies:
Application: Java 6, C++, Shell Script,
Frameworks: Swing, Web Service Client, Google Guice, Hibernate, MyBatis, Jenny, Disruptor, Bloomberg Open Market Data, Reuters RFA
Protocols: FIX Protocol 4.2, WSDL
Database: Sybase Adaptive Server Anywhere
Software: Bloomberg SSEOMS, Reuters 3000 XTRA, MUREX
Tool Stack: Linux, Subversion, Jira, NetBeans, MS Visual Studio 2010

CGI
Architecture, design, core implementation and prototyping of the rule based expert system application “CGI” from scratch as a desk-spanning solution to book trade execution reports into MUREX for position tracking and accounting. It transforms incoming FIX Protocol Trade Execution messages into MUREX specific SQL Procedure Calls and executes them.
Previously the Cash Equities trading desk used the in-house application “SSEOMS-MF” which was developed in a very non-transparent way and had some serious performance issues when booking high volume transactions into MUREX.
In addition there was a requirement for the New York ETF Borrowing & Lending desk to book all transactions into MUREX too because Pirate’s internal position tracking broke the Commerzbank policy. Another requirement was to allow changes of transformation rules on the fly, without the need of a new rollout.
CGI is designed as a highly flexible, multi-threaded, rule set based message processing pipeline with multiple and pluggable custom message processing handlers for each input-, transformation-, and output-stage. In its core it is conceptualized around the business rules management system Drools. CGI can be fed with general transformation rule sets which are common for all trading desks that could be overridden with desk-specific rules sets. It can process messages from multiple desks with multiple rules in a single instance. Rules are written in a Java based Domain Specific Language.
The application was deployed to the New York ETF Borrowing & Lending desk in the phase of replacing Pirate with a common set of message handlers and the common and specific rule NY sets. Afterwards it got deployed to the Cash Equities desk with common- and Cash Equities-specific rule sets and some specific message handlers. Discussions to deploy CGI to the Flow Trading desk are still ongoing. Although it was an initial requirement to handle all desks in a single instance the business decided to run desk-specific instances for a better separation of costs and support. Actually it is also in discussion to reuse CGI’s as an order routing engine to replace the existing ESA Router and have a common code base.
By using CGI as business rule based transformation engine to generate MUREX trades out of FIX Protocol trades, Commerzbank got a single solution for multiple desks that could take care of each desk’s oddities, and be reused to solve completely different problems in rule based domains like routing.
New York ETF Borrowing & Lending desk could successfully migrate away from Pirate and implement the Commerzbank policy to track all positions in MUREX.
Cash Equities desk could successfully migrate away from the non-transparent SSEOMS-MF interface and operators achieved to change rules in a running system, in a simple language. Additionally all performance issues are solved. A benchmark showed that a one 1 hour of SSEOMS-MF processing was accelerated to 1 minute in CGI. High volume transactions are processed and visible in MUREX in a finger snap now.
Besides the technical benefits, both desks take a high profit from the strict separation of business rules and technical implementation. The communication between developers, operators, traders and management improved a lot since all rules were phrased in a common understandable language. Thus adding or changing rules and finding issues got much comfortable for all involved persons.

CGI is developed by up to 2 developers in parallel. My part was to create a solution from scratch, implement the core engine and prototype common rules and some New York- and Cash Equities-specific rules. Once CGI was a ready-to-run system that proved all functional requirements I overhanded further evolution to a coworker who implemented the concrete business rules and specific message handlers together with business and traders. I developed CGI in parallel to BasketTrader and went ahead with BasketTrader after CGI was finished from my side.

Technologies:
Application: Java 6, Drools, Shell Script
Frameworks: FIX Protocol
Database: Sybase Adaptive Server Anywhere
Software: Bloomberg SSEOMS
Tool Stack: Linux, Subversion, Jira, Eclipse

Minor Activities:
Enhancing and fixing of rules, filters and connectivity of the existing in-house application ESA-Router. ESA-Router is a routing system for FIX Protocol messages. Orders are routed e.g. to brokers, exchanges or bank internal darkrooms.
Creation of a FIX Protocol log inspector that can recreate FIX Protocol messages or replay-files for CGI.
Collecting requirements and find solutions to replace the London Index Arbitrage trading desk’s trading platform to BasketTrader and CGI.

Technologies:
Application: Java 6, Shell Script
Frameworks: FIX Protocol
Database: Sybase Adaptive Server Anywhere
Software: Bloomberg SSEOMS
Tool Stack: Linux, Subversion, Jira, NetBeans, Eclipse

03/2011 - 09/2011

7 months

System that provides a variety of services, user interfaces and data like instrument data...

Roles
Developer, Reverse Engineer
Customer
Commerzbank AG
Tasks

(Name on request) is a system that provides a variety of services, user interfaces and data like instrument data, market data, interest rates, forecasts and more to fulfill the daily needs of Commerzbank market researchers and internal and external customers. It serves more than 250 customers and client systems.

Responsibilities:

  • Advice solutions to business
  • Design of software modules
  • Implementation

Team:
(Name on request) was driven by a staff of 6 members including business, operation and development.

Activities:
Reverse Engineering, Migration, DownloadService
Reverse engineer the whole FastBase system together with business and a Software Architect after all FastBase developers left the bank overnight.
Migrate and integrate the whole system from old Dresdner Bank world into the new Commerzbank world.
Architecture, design, implementation and integration of a new DownloadService for the FastBase download jobs with support for the HTTP, HTTPS, FTP, SFTP, LOCAL and SMB protocols and optional Proxy Authentication.
I joined the FastBase project in a critical phase as an interim developer and reverse engineer to help out the project to survive until a new long term developer was found.
After reverse engineering the core parts of FastBase the results and diagrams got overhanded to business and the new long term developer. As a result of the migration the FastBase system has survived and still exists in the new Commerzbank world. Using the new DownloadService allows business and developers to easily set up new download jobs by simple configuration through a single interface. The common code base saves costs by denying code duplicates and reduced the risk of new bugs.

Products

Tomcat 6

Java 6

Activities BPMN engine

Microsoft SQL Server 2008; 2012

Linux

MS TFS

Eclipse

09/2008 - 03/2009

7 months

Component based FIX Protocol message processing system

Roles
Developer
Customer
Object+ Fortis Bank
Tasks

Object+ is a company located in Amsterdam, Netherlands. It is a software house that develops and sells the application (Name on request)
(Name on request) is a component based FIX Protocol message processing system that can encode, decode, route and process FIX messages in various ways.
Objective was to create a (Name on request) for Fortis Bank to retrieve quotations from the Swedish OMX exchange and store them into a database.

Responsibilities:

  • Analysis of business requirements
  • Design of software modules
  • Design of database scheme
  • Implementation

Team:
The project was driven by a staff of 2 developers.

Activities:
(Name on request)
Design and implementation of the Fix Message Translator and Fix Quotation Database modules for the (Name on request) and deploy the solution to customer machines.
As a result of the customized (Name on request) installation the Fortis Bank could setup new payment processes in its clearance and settlement department to settle trades that were executed at the Swedish OMX exchange.

Products

C++

Shell Script

Berkeley DB

FIX Protocol 4.2

Solaris

Visual Source Safe

Visual Studio 6

(Name on request)

07/2008 - 09/2008

3 months

System that checks all Commerzbank trades for legality and market conformity.

Roles
Developer, Architect
Customer
Commerzbank AG
Tasks

(Name on request) is a system that checks all Commerzbank trades for legality and market conformity.

Responsibilities:

  • Analysis of business requirements
  • Design of scheduling plan
  • Implementation

Team:
The project was driven by a staff of 3 members including business and developer.

Activities:

UC4 Migration
Design, implementation and migration of all existing Crontab jobs and manual jobs to the UC4 scheduling platform.
Previously all jobs were triggered either manually or by Crontab jobs which broke the Commerzbank scheduling policy.
As solution all jobs got migrated to the standard UC4 job scheduling platform. As a result operator efforts got reduced by automated job implementations instead of manual triggers. Additionally the Commerzbank scheduling policy got satisfied by the dispose of Crontab.

Products

UC4

UC4 Script

Shell Script

Solaris

08/2007 - 07/2008

1 year

MDDS

Roles
Developer, Architect
Customer
Commerzbank AG
Tasks

MDDS is the central Commerzbank system to collect market- and static instrument-data from various vendors.
Data is normalized and stored into SQL database and flat files. MDDS provides the normalized data to more than 200 customers and applications. In its core MDDS is built as a huge extension to the asset management system Asset Control.

Responsibilities:

  • Analysis of business requirements
  • Design of software modules
  • Implementation

Team:
The project was driven by a staff of up to 30 members including business and developer.

Activities:
MDDS
Design and implementation of several modules and job processes for MDDS, following the given architecture.
Periodically migrations of MDDS to a new version of the core system Asset Control.

Products

C++

Shell Script

Solaris

ClearCase

Sun Studio

Asset Control

UC4

09/2006 - 08/2007

1 year

MDDS

Roles
Developer, Architect
Customer
Commerzbank AG
Tasks

MDDS is the central Commerzbank system to collect market- and static instrument-data from various vendors.
Data collection is implemented by more than 350 job processes that are all triggered by a complex scheduling plan. Objective of the project was the migration of the complete scheduling plan from the former scheduler Autosys to the new UC4 platform.
MDDS was picked as the first pilot project to perform the migration to UC4 and to prove UC4 as a stable platform.
UC4 was meant to become the new Commerzbank standard scheduling platform.

Responsibilities:

  • Analysis of business requirements
  • Design of UC4 objects
  • Design of an API to control UC4
  • Implementation
  • Migration
  • Deployment
  • Support for operation

Team:
The migration project was driven by a staff of 2 developers.

Activities:
UC4 Migration
Design, implementation, migration and deployment of all MDDS jobs to the new UC4 platform and creation of an API for automate control of UC4 from MDDS jobs.
As a result of the pilot migration UC4 was proven as a robust and stable, flexible and comfortable scheduling platform. Later on UC4 became the new bank standard and some other teams utilized the new API to control and automate UC4 from within their applications.
MDDS got a big benefit from the migration because UC4’s flexibility and visualization capabilities outperformed those of Autosys by far.

Products

Java 1.4

Perl

Shell Script

UC4

UC4 Script

Shell Script

Solaris

04/2005 - 07/2007

2 years 4 months

Website development

Roles
Architect, Developer, Designer
Customer
Various
Tasks

Freelancing as Website developer

Responsibilities:

  • Analysis of customer requirements
  • Design of websites
  • Implementation
  • Deployment

Activities:
Website Development
Design and deployment of various websites for various customers.

Products

Adobe Dreamweaver

Adobe Photoshop

10/2004 - 04/2005

7 months

Reverse engineering of the Infotainment software

Roles
Architect, Developer
Customer
Consultec AG
Tasks

Consultec AG was a company that developed and sold the application Infotainment.
Infotainment, as distributed multimedia presentation and content management software, was able to show multiple time-controlled commercials of different types on a single screen. It was packaged along with a content management application.
Objective was to reverse engineer Infotainment and train new developers and content creators.

Responsibilities:

  • Analysis of customer requirements
  • Design of websites
  • Implementation
  • Deployment

Team:
The development department was driven by myself.

Activities:
Infotainment
Reverse engineering of the Infotainment software, enhancing minor features and fixing bugs.
Creation of a web application for a partner company that shows traders’ provisions.

Products

Visual C++ 6

Java 1.4

Swing

PHP

SMIL

Visual Source Safe

Visual Studio 6

JBuilder

Apache Webserver

08/2000 - 09/2004

4 years 2 months

Development, Architecture, Business Analysis, Network Administration

Roles
Lead Developer, Architect, Business Analyst, Network Admin
Customer
FBP Business Consulting GmbH Südwest AG
Tasks

FBP Business Consulting and Südwest were tightly coupledcompanies in the business consulting industry. They offered a variety of industry-specific services to customers.

Responsibilities:

  • Analysis of business requirements
  • Advice solutions to business
  • Architecture of software infrastructure and communication
  • Architecture of software skeletons
  • Design of software modules
  • Design of database schemes
  • Prototyping of software implementations
  • Implementation
  • Coordination of team responsibilities
  • Coordination of team activities
  • Support for operators
  • Support for customers

Team:
The IT department was driven 4 members.

Activities:
General Activities
Creation of interfaces for several vendor and client systems.
Creation of customer specific software solutions.
Administering a network of up to 150 computers and servers.

Products

Java 1.4

Visual C++ 6

Visual Basic 6

VBA

FoxPro

Tomcat

MySQL

FoxPro

DATEV

SAP

JBuilder

Visual Studio 6

Industries

  • Banking
  • Investment Banking
  • Financial Instruments Trading
  • Commodities Trading
  • Market Research
  • Credit
  • Banking Supervision

Skills

Programming Languages
Assembler
C/C++
Groovy
Java
JavaScript
Perl, PHP
Shell Script
SQL
(Oracle, Microsoft, Sybase, MySQL)
UC4 Script
Visual Basic
Visual Basic Script
Visual C++

Declarative Languages
HTML 4
HTML 5
XHTML
XML
FIXML
SMIL
JSON
HOCON


Databases
Berkeley DB
Fox Pro
MongoDB
MS SQL / MS Access
MySQL
Oracle 12c
Redis
Sybase ASE

Language Skills
English
fluently
German
native language

Operating Systems
Free BSD
Linux
Mac OS
Microsoft Windows
Oracle Solaris
Unix

Staff Responsibilities
Long-time chief software developer and architect of up to 10 employees

Data Communication
POSIX Socket
Raw Socket
TCP/IP
UDP
Windows Socket

Design / Development / Construction
OOA
OOD
OOP

Products / Standards / Experiences

Technologies

  • Core Java
  • JEE
  • EJB
  • IoC (CDI, Google Guice)
  • MVC
  • Sockets
  • Raw Sockets
  • Multithreading
  • RPC
  • JDBC
  • Rules Engine
  • Vert.x
  • Asynchronous
  • Reactive
  • Distributed

Protocols

  • FIX Protocol
  • SOAP
  • REST
  • Websocket
  • SignalR
  • HTTP(s)
  • FTP
  • SFTP
  • SMB
  • CIFS
  • XML/RPC
  • RMI
  • IP
  • TCP
  • UDP
  • ARP
  • Raw Sockets

Frameworks

  • Bloomberg Open Market Data API
  • Reuters RFA
  • Cryptocurrency Exchange APIs
  • JAX-WS
  • JAX-RS
  • Log4j
  • JPA
  • Hibernate
  • MyBatis
  • Jenny
  • Primefaces
  • Java Server Faces
  • Swing
  • jQuery (+Mobile)
  • Disruptor
  • Drools
  • OSGI (Apache Felix)
  • Vert.x
  • UC4 One Automation

Application Servers

  • Glassfish
  • Tomcat
  • Websphere
  • Apache HTTP Server

IDEs

  • NetBeans
  • IntelliJ Idea
  • Eclipse
  • JBuilder
  • Visual Studio
  • Oracle Studio

Version Control

  • Git + Github
  • Subversion
  • ClearCase
  • Team Foundation Server
  • Visual Source Safe

Tools

  • Maven
  • Ant
  • JUnit
  • GSON
  • Jackson
  • Unix standard tools
  • Visio
  • Wiki
  • Sharepoint
  • Bloomberg Terminal
  • Reuters 3000 Xtra

Architecture

  • Softwarearchitecture
  • Softwareinfrastructurearchitecture
  • Object orientation
  • Design Patterns
  • Model-View-Controller (MVC)
  • Microservices
  • Asynchronous Messaging
  • Distributed Transaction

Development

  • Agile / Scrum
  • Prototyping
  • Extreme Programming (XP)

Technical Knowledge

  • FIX Protocol complaint systems
  • Financial Instruments
  • Cryptocurrencies
  • Market Data
  • Algorithmic Trading
  • High-Frequency Trading Systems
  • High-Volume Trading
  • Low Latency Trading
  • Message Stream Processing
  • ETL processes (Extract, Transform, Load)
  • Networking System
  • Asynchronicity
  • Realtime
  • Routing
  • Rules Engineering
  • Reverse Engineering
  • Scheduling

Soft Skills

  • Self-initiative
  • Communication
  • Willingness to learn
  • Team management and coordination
  • Entrepreneurial thinking
  • Sense of responsibility

Activities
Banking
Investment Banking
Market Data
Market Research
Team Leadership
Trading

Key Aspects
Chief Architect
Chief Developer
Senior Architect
Senior Developer