Project List - A Selection
Wealth Management at Credit Suisse
- Python
- CVXpy
- numPy
- FastAPI
- Microservices
- OpenShift
Many Credit Suisse customers, ask for advice for their wealth management. To support them we have developed a portfolio optimization system, that uses mathematical optimizations with high dimensional functions to determine an optimal investment strategy.
We have developed a microservice system for reliability and scalability. I’ve been responsible for some of the more mathematically challenging quantitativer computing services, as well as for the framework, and deployment infrastructure for those service, that were written in Python.
The project was sucessfully delivered.
BI system at PPRO
- PostgreSQL
- Azkaban
- Pentahoo Kettle
- Tableau
PPRO had a lot of data spread over several systems, and aspired to analyse it, in order to improve it’s marketing and product development decisions.
We set up a data warehouse in PostgreSQL, because PostgreSQL allows to leverage remote tables from other database systems like e.g. Cassandara. Therefore it allowed for a smooth transition when in future PostgreSQL wasn’t sufficient any more. For scheduling we decided to use Azkaban, and the collection of data from all the systems was done with Pentahoo Kettle.
The database had three schemata: a staging area, the data warehouse itself, and several data marts. With that setup we were able to feed Tableau Dashboards for decision support, and allow the data scientists to run their data mining without disturbing the production processes.
The BI system as a data driven decission support tool, was highly regarded my the management.
Direct Debit Payment System at PPRO
- Python
- Flask
- BeautifulSoup
PPRO decided to develop a payment service for the German market to complete their portfolio. The idea was, that the user would enter his login for his online banking, and then the service would trigger a transaction to the shop. Since the service could view historical transactions, we were able to tell the shop, if he can be sure, that the money is coming, or if he should wait for it to arrive on his account.
We analysed the online banking systems of the biggest banks, banking conglomerates, and online banking providers for small banks. That was enough to cover over 90% of all German bank customers.
By implementing this system in short time, we were able to improve PPROs position in the market siginificantly.
Big Data Low Latency Complex Event Processing System at SIX Telekurs
- C++
- Template Metaprogramming
- NUMA aware
- Lock Free
- Linux
- Reliable IP Multicast
- Parser Generators
SIX Telekurs (now SIX Financial Information) is one of only a few companies, that can provide marked data from almost every exchange around the world to customers in a standardized format with low latency. The goal of this project was, to replace the central market data processing system with a decentralised one, for even lower latency.
We were able to leverage the domain specific language for parser generators from the existing system. These parsers had to interpret the different stream formats from the different exchanges, and therefore there were several hundred of them implemented.
Based on that we developed an asynchronous system, that used a reliable multicast protocol (LBM by 29West) for hot failover as well as for delivery to the customer. We had to program very close to the bare metal, considering aspects like the NUMA structure, memory layout and cache strategies, and user space direct network card access to reduce the number of context switches. We basically took over most of the machine from the operating system with CPU binding and CPU shielding. The whole system was designed lock free to avoid any unnecessary latency, and handled issues, that were not part of the processing itself asynchronously. To give the compiler the best chances to optimize the code, we relied on modern C++ techniques, like template meta programming.
While I was on the project, we managed to successfully deploy a prototype to production.