Christof Donat
“Fearless when facing complex challenges” (Roland Bock, PPRO)
- over 5 years of quantitative computing
- over 10 years of Python
- over 15 years of microservices
- over 20 years of cloud computing
- over 25 years of web development
- over 30 years of C++ and C
- always up to date
- Excellence-Driven
- Reliable & Trustworthy
- Empathetic Mentor
- Excellent Communicator
- Constructive Critic
- Solution-Oriented
- Problem-Solver
- Big-Picture Thinker
- Adaptable
- Hands-On Doer
- Calm Under Pressure
- Simplifier of Complexity
- Passionate & Driven
- Humorous & Approachable
Born
Two daughters, born 1997 and 1999
----BEGIN PGP PUBLIC KEY BLOCK----- Comment: Benutzer-ID: Christof Donat <cd@okunah.de> Comment: alias: Christof Donat <info@cdonat.de> Comment: alias: Christof Donat <cdonat@gmx.de> Comment: alias: Christof Donat <christof.donat@gmx.de> Comment: Gültig seit: 09.08.24 14:30 Comment: Typ: 255-bit EdDSA (geheimer Schlüssel verfügbar) Comment: Verwendung: Signieren, Verschlüsselung, Benutzerkennungen beglaubigen Comment: Fingerabdruck: 2C5E 5E33 B09D C7A8 5640 B414 2839 9E21 DB1D 1F43 mDMEZrYL8xYJKwYBBAHaRw8BAQdA2wJwvWFa7UVCD8AqLQXxutBF79YdJ3HMA+ow +bg6rMG0HUNocmlzdG9mIERvbmF0IDxjZEBva3VuYWguZGU+iJYEExYKAD4CGwMF CwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AWIQQsXl4zsJ3HqFZAtBQoOZ4h2x0f QwUCaS8GvgIZAQAKCRAoOZ4h2x0fQ86XAP4gUoFFSS/lL114hM4KJi3rnmYMd3na BUN1CeZWyTxXpgD/Wqhwcjro3ES8Qh5yIfW6meBTABZ8SS4tYbNm+0f70wWImQQT FgoAQRYhBCxeXjOwnceoVkC0FCg5niHbHR9DBQJmtgvzAhsDBQkFo3ctBQsJCAcC AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECg5niHbHR9DlZkBAJ9YvzhsAXqfZ18Q VcZ8dWr0YGf0R2ooZ1wsmyZpYQzYAQD6kT0a0pvNlXgkjTk0S4dOlyPxRCe0EJWC 8B0JQyRTBrQfQ2hyaXN0b2YgRG9uYXQgPGluZm9AY2RvbmF0LmRlPoivBBMWCgBX FiEELF5eM7Cdx6hWQLQUKDmeIdsdH0MFAmkvBowbFIAAAAAABAAObWFudTIsMi41 KzEuMTEsMiwyAhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECg5niHb HR9DhiMBAOWYBlPkT0Rtms7RFZGs0yUjPzEnMsQNq1c8sMlN73uzAQDYd66VHWqT sIKFQ/hY/vcM/ct7foId9pBu/QUtLih0DLQeQ2hyaXN0b2YgRG9uYXQgPGNkb25h dEBnbXguZGU+iK8EExYKAFcWIQQsXl4zsJ3HqFZAtBQoOZ4h2x0fQwUCaS8GoBsU gAAAAAAEAA5tYW51MiwyLjUrMS4xMSwyLDICGwMFCwkIBwICIgIGFQoJCAsCBBYC AwECHgcCF4AACgkQKDmeIdsdH0OxbQEAxe2uZMhxKf6f0SHtH51Z/O5pnlstZ+al YsXIop0mQ54A+QGMmtjhzO/0in9FpRv6LSYv34gER4puWD6US7v4ycIGtCZDaHJp c3RvZiBEb25hdCA8Y2hyaXN0b2YuZG9uYXRAZ214LmRlPoivBBMWCgBXFiEELF5e M7Cdx6hWQLQUKDmeIdsdH0MFAmkvBrMbFIAAAAAABAAObWFudTIsMi41KzEuMTEs MiwyAhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECg5niHbHR9DI8oB AOzmYIItbGzF2WJ9ElkJHY83iIlzEJYm5H9zQ2WZ50pPAQDC0aU8zxciW6Hc2AMV CF0KjSxeRvID9Cv5B3zP7outC7g4BGa2C/MSCisGAQQBl1UBBQEBB0Du738Ds0Xk S8UoRPneAvwaM3r0IEHUWDlFDdfaMyw2XwMBCAeIeAQYFgoAIAIbDBYhBCxeXjOw nceoVkC0FCg5niHbHR9DBQJo4SkvAAoJECg5niHbHR9DWKABAPHxPrAANwBY4plp 6jIDBswc0QeTofAuBwlneqeV/LSrAPwMFd9Xh8dOHdhZ8M77PAD3GKNBWEA20/FA Llf1f0T2Dw== =V4k1 -----END PGP PUBLIC KEY BLOCK-----
CV
- - Initiator at ProFed Open Source Project
- Main Developer and Architect
- Open Source project for a federated professional social network
- - Family leave
- Caring for elderly relative
- - Avelon Cetex AG
- Senior Linux C++ Developer for Embedded Systems
- - Contractor at albsys GmbH
- Lead Developer
- - Kratzer Automation AG
- Software Developer
- - ComROAD AG
- Software Developer
- - Met@box AG/Met@TV AG
- Team Lead
- - Student Assistant at Schwäbische Zeitung Online
- - Student Assistant at various employers
Education
- - University Ulm
- Mathematics and Computer Science
- - Clausthal University of Technology
- Mathematics and Computer Science
- Rudolf-Diesel-Gymnasium Augsburg
- University Entrance Diploma
Skills Matrix
- Programming
- Linux
- Python
- Python 3
- FastAPI
- CVXpy
- Django
- NumPy
- Pandas
- PySpark
- SciPy
- C++
- C++11 - C++23
- C++03
- POSIX
- STL
- Boost
- Qt
- SQL
- PostgreSQL
- Data Warehouse
- Column Store
- MySQL
- NoSQL
- Webservices
- Websockets
- JavaScript
- WASM
- CSS
- HTML
- Git
- CMake
- GNU make
- Kubernetes
- OpenShift
- GitLab
- NextCloud
- AWS
- Azure
- Jira
- TCP/IP
- HTTP
- IP Multicast
- TLS
- FIX
- Apache Kafka
- MQTT
- SMTP
- Matrix
- XMPP
- Cloud
- GPS
- Machine Learning
- CEPH
- Home Automation
- Agile
- Scrum
- Pair Programming
- XP
Industry Experience
- Banking / Financial Services
- Software / IT
- Automotive / Logistics
- Consumer Electronics
- Online Media
- Automation
Project List - A Selection
Federated Professional Social Network
- Python
- FastAPI
- ActivityPub
- Event Sourcing
- Modular Monolith
ProFed is an open source project, developing a federated system for professional social networking. Additionally to features of other ActivityPub systems, like e.g. Mastodon, Friendica, or Mobilizon, it will include features, like the users CV, and a mechanism to query for open positions, or matching candidates. It is meant to be installed in very small setups, beginning with a single user, as well as big cloud setups with many small services.
The solution, that I found is an event sourcing modular monolith architecture. Components are independent of each other and only communicate through events. The admin can decide to start all components at once for a small setup, or pick any collection of them.
That is, how ProFed will be able to scale to the limits of the message bus, while keeping simple setups very simple. Development is ongoing.
Optimization of Big Data Processing
- Python
- PySpark
- Azure
- DataBricks
SwissRe has a very big collection of data from varous sources. That data would be useless without the ability to analyze it, and extract intelligence from it. Therefore SwissRe has a sophisticated data processing pipeline built with PySpark on DataBricks, running in an Azure cloud environment. Though that is a particularly powerfull data processing environment, the process still took over eight hours for each run. To improve the experience of the users, the goal was to speed up that process significantly.
Usually only data from the current quarter, and sometimes the previous, or the next are changed. I implemented the necessary logic to detect which quarters are affected, and process only those. I also took some measurements, to optimize the cluster size, and the node size for the specific workload. Apart from only performance oriented optimizations I also developed several approaches to improve the over all code quality.
Together with some changes, other team members implemented in parallel, my changes reduced the processing time to around two hours.
Wealth Management
- Python
- CVXpy
- numPy
- FastAPI
- Microservices
- OpenShift
Many Credit Suisse customers seek advice for their wealth management. To support them, we developed a portfolio optimization system that uses mathematical optimizations with high dimensional functions to determine an optimal investment strategy.
We developed a microservice system for reliability and scalability. I was responsible for some of the more mathematically challenging quantitative computing services, as well as for the framework and deployment infrastructure for those services written in Python.
The project was successfully delivered.
BI system
- PostgreSQL
- Azkaban
- Pentahoo Kettle
- Tableau
PPRO had a lot of data spread over several systems and aspired to analyze it in order to improve its marketing and product development decisions.
As technical lead, I set up a data warehouse with my team in PostgreSQL because PostgreSQL allows to leverage remote tables from other database systems such as Cassandra. This in turn allowed for a smooth transition at a later date when PostgreSQL was no longer sufficient. For scheduling, I 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 decision support tool, was highly regarded by management.
Sanction management
- Python
- XML
- MySQL
As a financial institution, PPRO is obliged to obey the sanction regimes in all jurisdictions it is operating in. The authorities distribute the list of sanctioned people as XML files, which contain the sometimes sparse information available, to identify sanctioned persons, or organizations.
In this project I developed not only the import and update of these sanction lists, but also the matching of customer requests to entries on these lists. The result was a risk score, which reflected the probability that the customer might match an entry on one of the lists. With that risk score, the system either decided to allow, or deny the customer, or to delegate the decision to a human in unclear cases.
The system was applied to every new customer, and regularly to the whole customer base. For the customer base, I stored a list of human decisions, so that we didn’t have human staff members decide again.
With this decision support system, PPRO was able to reduce the work load on the staff, while at the same time reducing the risk of failing to comply with the sanction regimes.
Direct Debit Payment System
- 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 at his account.
Together with a second developer, I analyzed 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.
Since my coworker and I implemented this system in a short time, PPRO was able to improve its position in the market significantly.
Big Data Low Latency Complex Event Processing System
- 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 decentralized 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 hundreds of them already implemented.
Not only have I written big parts of the code. I was also responsible for the design of the main components and, together with the technical lead, the main architecture decisions. 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. The code had to be 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. The applications I designed 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 all issues that were not part of the processing itself asynchronously, like e.g. logging, or metrics collection. To give the compiler the best chances to optimize the code, I relied on the most modern C++ techniques of the time, like template meta programming.
While I was on the project, we managed to successfully deploy a prototype to production.
References
In this section I’ve collected reference texts from my LinkedIn and Xing profile. For your convenience I’ve translated the German texts to English. Xing no longer shows references.
I can highly recommend Christof as a Senior Software Engineer. He worked in our team on quantitative aspects of portfolio construction software (mainly in Python), but his skills and wealth of experience far exceed what a typical Python developer has to offer. At heart, Christof is a C++ expert, well versed in low-latency, performance critical software and Linux operating systems. Despite his “low-level” programming background, he easily adapts to all project requirements and can introduce quality “high-level” libraries when appropriate. I really enjoyed working with him, and many times I benefited from constructive criticism and advice he provided.
Christof is a senior developer with a wealth of experience. His proficiency in Python has been pivotal for our projects.
He has a good understanding of the bigger picture and helped shaped several important aspects, such as the design of our
services. I am particularly grateful for his contribution to improve code quality, testing and help refining our dev
ops.
Christof’s amiable demeanor, willingness to assist others, and commitment to his principles made him a great addition to our team. He possesses a keen ability to provide constructive criticism, which contributes to the improvement of projects and fosters a positive working environment.
I am pleased to write this letter of recommendation for Christof Donat. As the Team Lead for Avelon Cetex, I worked closely with him.
Christof Donat demonstrated from early that he is an exceptional software engineer. Christof proved himself to have very good problem solving skills and a very solid C++ knowledge. He is up-to-date on the latest techniques in software development and is passionate about writing quality code.
In our team, he was the one caring the most about code quality and always finding and fixing issues just by reading the code. Also his code review was very meticulous and full of instructive comments for our junior team member. The younger member of our team considered him a mentor and felt that there is lot to learn from Christof. He was always glad to ask Christof for advice because he knew there is a lot he can learn from him and also because Christof proved himself very friendly and helpful.
Christof integrated in the team very quickly and started to help. His help was very valuable for me, at a time when I had a lot of work. The presence of Christof made a big difference. For example he took over and finished a project that I was working on, quickly and with very few explanations from my side. Also he helped my junior colleague with some important design decisions and gave him some very good advice for optimizations. He did this right from the beginning.
Also, Christof understands instructions quickly and is flexible when changes have to be made in the original plan.
I considered him a very valuable member of our team and I can’t recommend him highly enough.
Christof has a broad range of technical knowledge. In 2013 he joined the engineering team at PPRO because of his C++ and Python skills in particular.
He also has an impressive command of SQL and the ability to quickly comprehend code and data structures. This helped him especially when he took on his new role as technical lead of the newly shaped BI team in 2015.
Christof is fearless when facing complex challenges.
I had the pleasure of working with Christof at the PPRO organization. Christof is a talented and creative BI developer.
He’s especially adept at distilling complex technical topics into simple terms. Additionally, he’s a team player who
jumps at the chance to assist his colleagues in solving problems.
Original Words in German: Christof Donat hat sehr gute technische Fähigkeiten und Knowhow. Er kann den ganzen Software-Entwicklungszyklus in einer hohen Qualität abdecken. Ich habe gerne mit Christof zusammengearbeitet.
Christof Donat is very much skilled in technical abilities and knowledge. He is able to cover the complete process of software development in high quality. I enjoyed collaboration with Christof.
Original Words in German: Christof Donat war von Beginn an aktiv als Software Entwickler im Magellan Programm beteiligt. Er hat elementare Teile des neuen Marktdaten Verarbeitungssystem (MPP) entwickelt und mitgestaltet. Dies, in einem sehr dynamischen und Anspruchsvollen Umfeld, wo sich Ziele, Vorgaben und die Organisation zeitweise täglich änderten. Christof hatte stets eine klare Vision, nach der er sich in seiner täglichen Arbeit ausrichtete. Dank seinem hohen Innovationsvermögen und den außerordentlichen Sachkenntnissen war es möglich komplexe technologische Problemstellungen in wenigen Schritten zu lösen und zu implementieren. Im Team war er ein kompetitiver Mitspieler, der seine Kollegen stets inhaltlich herausforderte, was eine kompromisslose und dennoch auf Qualität bedachte Zusammenarbeit ermöglichte.
Christof Donat has been an active part as software developer of the Magellan program from the very begining. He developed and designed fundamental parts of the new market data processing system (MPP). He did that in an extraordinarily dynamical and demanding environment, with sometimes daily targets, requirements and organizational changes. Christof always maintained a clear vision as alignment of his daily work. Thanks to his high innovation potential and his extraordinary expertise he was able to solve and implement complex technological problems in a few steps. As team member he was a competitive teammate, who always challenged his colleagues in substance, which enabled an uncompromising, yet quality oriented cooperation.
I met Christof as a proficient C++ senior software developer at SIX Telekurs. As an extremely quick learner and rapid developer, he used to be one step ahead in designing and implementing our software application.
Thanks to all our fruitful discussions about high-performance issues and design principles in C++ programming, I learned a lot about the insights of C++. I enjoy his company when meeting him after work for a beer.
Original Words in German: Überdurchschnittliches Fachwissen, arbeitet äußerst effizient und zielorientiert. Sehr angenehme, freundliche und offene Person.
Superior expertise, works extremely efficient and targeted. Very pleasant, friendly and open person.
Christof is a high-rated software engineer with very deep knowledge of C++ language and good communication skills.
Extensive knowledge of programming with deep commitment in providing the best solution. Christof is a doer by excellence with emphasis on getting things done in agreed time scope. I can only testimony about his knowledge in C++ programming in linux environment but I can only find reasons why any company would be proud to have him as employ or collaborator.
I have been very impressed by Christof’s combination of managerial and technical skills, his breadth of industry experience and his ability to quickly come up to speed in situations with limited information and hard deadlines. Works well under pressure, yet is able to maintain his sense of humor. Smart, insightful and easy to work with. An asset to any team. He is a highly skilled technical architect, with a keen ability to quickly identify the most challenging aspects of an application design, and the best approaches in tackling them. Very broad and deep knowledge of latest development technologies. I look forward working with Christof in the future.
Christof was one our most experienced software specialists at Met@box. He was very much in demand because of his analytical skills, creativity and ability to set targets and deliver great results when needed. I would recommend Christof any time, not just as a software engineer, but also as someone who makes the effort to glue a team together under stressful circumstances.
Original Words in German: Ein super kreative Kopf. Eine technische Bereicherung und menschliche Unterstützung.
A super creative head. An enrichment in technologies and a humane support.