freiberufler C++ R trading machine learning auf freelance.de

C++ R trading machine learning

zuletzt online vor wenigen Stunden
  • 89€/Stunde
  • 50931 Köln
  • DACH-Region
  • de  |  en  |  fr
  • 04.04.2024

Kurzvorstellung

Softwareentwicklung mit C++ unter Linux, Windows, MacOS, aber auch anderen Programmiersprachen R, Python, für datamining und machine learning. Experte mit viel Erfahrung in modernem C++; Erfahrung im Schreiben von Tradingalgorithmen.

Qualifikationen

  • C++
  • Data Mining
  • Softwareentwicklung (allg.)

Projekt‐ & Berufserfahrung

Backup-System für Rechnerpark (bash, rsync, cron)
A. M., Köln, Köln
12/2023 – 3/2024 (4 Monate)
IT & Entwicklung
Tätigkeitszeitraum

12/2023 – 3/2024

Tätigkeitsbeschreibung

Um Backup-Strategien für einen umfangreichen Computerpark zuverlässig umsetzen zu können, wurde ein zentrales Bash-Skript geschrieben, das die Hardlink-Funktion von Rsync nutzt. Der Backup-Server erstellt Cron-gesteuert von den zu sichernden Maschinen inkrementelle Backups mit Versionierung im Sinne einer Zeitmaschine, über mehrfach gesicherten Root-Zugriff, auch auf externe Speichermedien. Ein Testmodus, der die Backups validiert und die Erstellung einer Backup-Strategie runden das Thema ab.

Eingesetzte Qualifikationen

Software Architektur / Modellierung

Design und Implementierung einer Handelsschnittstelle als Ersatz für C# Komponenten (Visual C++ 17, range-v3, IBM MQ
DWS Investment GmbH, Frankfurt, Frankfurt
10/2022 – 10/2023 (1 Jahr, 1 Monat)
Banken
Tätigkeitszeitraum

10/2022 – 10/2023

Tätigkeitsbeschreibung

Die von einer Nachrichtenwarteschlange gelieferten Preis- und Handelsdaten im XML-Format werden umgewandelt, nachverarbeitet und in der Datenbank gespeichert. Um sicherzustellen daß die Daten trotz massiver Parallelverarbeitung in der richtigen Reihenfolge in der Datenbank landen, werden die Verarbeitungsschritte von Workern eines Threadpools durchgeführt und per C++ Futures/Promises synchronisiert. Dadurch ist eine freie Skalierung der Verarbeitungskapazität möglich. Die entstandenen zahlreichen C++ Klassen sind modular und auf Wiederverwendbarkeit ausgerichtet. (Visual C++ 17, range-v3, IBM message queue, PugiXML, OracleDB, Stored Procedures, Multithreading, Threadpool, Futures/Promises).

Eingesetzte Qualifikationen

C++

Wiederbelebung einer 13 Jahre alten Applikation zur Datenaktualisierung (ksh, Powershell
DWS Investment GmbH, Frankfurt, Frankfurt
3/2022 – 9/2022 (7 Monate)
Banken
Tätigkeitszeitraum

3/2022 – 9/2022

Tätigkeitsbeschreibung

DWS Investment GmbH, Frankfurt: Wiederbelebung einer 13 Jahre alten Applikation zur Datenaktualisierung (ksh, Windows Powershell, sftp, WinSCP, Java, Spring Framework).

Ein altes, nur noch in einer Instanz korrekt laufendes und kaum dokumentiertes System aus Unix Shell-Skripten und einer Java Anwendung wurde durch ein flexibles Framework aus Powershell Scripten ersetzt; die Java Anwendung wurde angepaßt, um mit modernen Bibliotheken und Compiler gebaut werden zu können. Das verbleibende Altsystem konnte dabei aus rechtlichen Gründen nicht im Betrieb untersucht werden. Zur Sicherstellung der vollen Code-Abdeckung war daher die Implementierung mehrerer Daten-Umwandlungschritte einschließlich -Tests notwendig.

Eingesetzte Qualifikationen

PowerShell

Leistungssteigerung der Handelssimulation (C++20 gcc, clang, Sqlite, MariaDB, PostgresDB, TimescaleDB, ZeroMQ, range-v3
A. M., Köln
9/2021 – 2/2022 (6 Monate)
Trading
Tätigkeitszeitraum

9/2021 – 2/2022

Tätigkeitsbeschreibung

Um schnellere Simulationen zur ermöglichen wurden alle in R geschriebenen und der Datenaktualisierung dienenden Komponenten durch C++ Code ersetzt. Für die verbleibenden Berechnungen in R, die nicht ersetzt werden konnten, wurde die Datenbank-Schnittstelle um einen Berechnungen-Cache erweitert. Der Anschluß weiterer Datenbanktypen, u.a. für Zeitserien, der Einbau eines schnelleren Loggers sowie die Verwendung binärer Serialisierung als weiteren Datenbank-Cache runden das Paket zur Leistungssteigerung ab. C++20 (gcc, clang), Sqlite, MariaDB, PostgresDB, TimescaleDB, ZeroMQ, range-v3, spdlog, bitsery

Eingesetzte Qualifikationen

C++

Konzepte und Softwarewareentwicklung für intelligentes Batteriesteuerungssystem C++ 14, Google Test, MQTT, Mosquitto ..
be.storaged GmbH, Oldenburg, Oldenburg
2/2021 – 7/2021 (6 Monate)
Energieversorger
Tätigkeitszeitraum

2/2021 – 7/2021

Tätigkeitsbeschreibung

Für das in der Entstehung befindliche intelligente Batteriespeicher-Betriebssystem okean.os wurden Konzepte für neue Komponenten sowie deren über diverse Protokolle ablaufende Kommunikation untereinander erstellt, in Software umgesetzt und durch Tests verifiziert. Hervorzuheben ist die Schaffung und Inbetriebnahme einer Schnittstelle zur Anbindung von Fernwirkanlagen über IEC 104 an das etwas eigenwillige API-Schema des Kunden. C++ 14, Google Test, MQTT, Mosquitto, Paho, Modbus, IEC 104, CMake, Git, AWS, Docker, CLion, Jira, embedded software

Eingesetzte Qualifikationen

C++

Erweiterungen für Straßenbau-Planungsprogramm MaViS (C++, C#, Visual Studio, MFC
fpi fuchs Ingenieure GmbH & Co. KG, KÖLN
1/2020 – 12/2020 (1 Jahr)
IT & Entwicklung
Tätigkeitszeitraum

1/2020 – 12/2020

Tätigkeitsbeschreibung

In diversen Einzelaufgaben wurden Erweiterungen gemäß Kundenwunsch realisiert, hauptsächlich in C++, teilweise in C#/.NET, teileweise mit SQL-Scripten. Als besondere Herausforderung kann die Einarbeitung in eine gänzlich undokumentierte, über 20 Jahre gewachsene Software angesehen werden.

Eingesetzte Qualifikationen

Softwareentwicklung (allg.)

Entwicklung, Test und Simulation von Handelssystemen (C++17, Range-v3, R, Rcpp,
A. M., Köln
8/2019 – 12/2019 (5 Monate)
Finanzdienstleister
Tätigkeitszeitraum

8/2019 – 12/2019

Tätigkeitsbeschreibung

Diverse Handelssysteme wurden auf der selbstentwickelten Simulations- und Handelsplattform geschrieben und simuliert. Dabei wurden unterschiedliche Handelsideen umgesetzt. Allen gemein ist ein Kalmanfilter zur Glättung von Kursdaten, eine Statusmaschine, die verschiedene Markzustände abbildet sowie machine learning Komponenten, die automatische Anpassungen ermöglichen. In R geschriebene Komponenten wurden teilweise durch C++ ersetzt.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Steuerungsplattform für Server-Prozesse (Node.js, R, Swagger, Agenda, MongoDB, V
VTB Bank (Europe) SE, Frankfurt, Frankfurt
11/2018 – 3/2019 (5 Monate)
Banken
Tätigkeitszeitraum

11/2018 – 3/2019

Tätigkeitsbeschreibung

Um langlaufende serverseitige Prozesse von IT-unerfahrenen Benutzern sowie Anwendungsprogrammierern steuerbar zu machen, wurden Server und Webclient einer Steuerungsplattform entwickelt. Als technischer Projektleiter wurden zunächst diverse Prototypen hinsichtlich Stabilität und Leistung getestet und schließlich eine auf Node.js basierende Lösung geschaffen. Der Server bietet Anwendern über ein REST-API die Möglichkeit, R-Scripte zeitgesteuert zu starten und ihre Ergebnisse einzusehen. Die den Server steuernde Weboberfläche, die auch als Entwicklungsumgebung genutzt werden kann, basiert auf den Frameworks Vue und Quasar.

Eingesetzte Qualifikationen

Softwareentwicklung (allg.)

Übertragen von Risikoberechnungen von Excel nach R (R, Excel)
VTB Bank (Europe) SE, Frankfurt, Frankfurt
7/2018 – 10/2018 (4 Monate)
Banken
Tätigkeitszeitraum

7/2018 – 10/2018

Tätigkeitsbeschreibung

Die bisherige tägliche Berechnung von Kreditausfallrisiken mittels Excel-Sheets sollte aus Performancegründen mit R bewerkstelligt werden. Dazu wurde ein erweiterbares mehrschichtiges Framework geschaffen, das die Quelldaten normiert und typisiert, die zahlreichen Risikoberechnungen durchführt und diese bei Bedarf gegen die Original-Excel-Berechnung testet. Es wurden u.a. die R Bibliotheken 'drake', 'dplyr' und 'testthat' verwendet.

Eingesetzte Qualifikationen

Data Mining

Erweiterung einer Arztpraxensoftware (C++, C++14, C, Qt3/4/5, SOAP, STL, GIT, Ge
CompuGroup Medical, Koblenz, Koblenz
4/2017 – 12/2017 (9 Monate)
IT & Entwicklung
Tätigkeitszeitraum

4/2017 – 12/2017

Tätigkeitsbeschreibung

Im Zuge der Einführung der elektronischen Gesundheitskarte wurde eine betagte Arztpraxensoftware um ein eigenständiges Modul erweitert, das Gesundheitskarten ausliest und über SOAP mit der Kocobox kommuniziert. Das Modul, in modernem C++14 geschrieben, interagiert mit diversen Komponenten aus der Softwaregeschichte der letzten 30 Jahre.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Manuelles und automatisiertes Testing von Cloud-Systemen (OpenStack, Elastic Sta (Festanstellung)
Swisscom, Bern, Bern
8/2016 – 12/2016 (5 Monate)
Telekommunikation
Tätigkeitszeitraum

8/2016 – 12/2016

Tätigkeitsbeschreibung

Als "embedded tester" wurden manuelle Tests von Cloud-Systemen durchgeführt. Zur Automatisierung wurden Python und Windows Powershell Skripte geschrieben, die auf verschiedene REST APIs zugreifen. Die Tätigkeit fand in zwei parallel arbeitenden Teams statt. Projektsprache war Englisch.

Eingesetzte Qualifikationen

Softwareentwicklung (allg.)

Entwicklung einer Bibliothek zur Erstellung kryptografischer Anwendungen sowie z
Robert Bosch GmbH, Salzgitter, Salzgitter
12/2014 – 8/2015 (9 Monate)
Automobilindustrie
Tätigkeitszeitraum

12/2014 – 8/2015

Tätigkeitsbeschreibung

Die Bibliothek wurde offen konzipiert und kann beliebige Verschlüsselungsalgorithmen aufnehmen, realisiert wurden OpenGPG, SecureblackBox-PGP und RSA. Die beiden Anwendungen sorgen als Service für das gesicherte und protokollierte Versenden, Bestätigen und Freigeben von WFS-Schlüsseln im Austausch mit Audi. Die gesamte Software ersetzt ein altes Visualbasic-Programm.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Entwicklung einer Datenbereitstellungs-Schnittstelle für ein Produktionslinien-S
Robert Bosch GmbH, Salzgitter, Salzgitter
7/2014 – 11/2014 (5 Monate)
Automobilindustrie
Tätigkeitszeitraum

7/2014 – 11/2014

Tätigkeitsbeschreibung

Um mobile Clients mit Daten über Störfälle in Produktionslinien zu versorgen, wurde zunächst ein objektorientiertes Datenbankmodell entworfen. Die anschließend in C++ 11 geschriebene Schnittstelle konvertiert Oracle OCCI direkt in die im Client benötigten hierarchischen Json-Objekte. Die Code-Erzeugung erfolgt weitgehend automatisch, da neben Oracle OTT ein weiterer eigener Codegenerator eingesetzt wird; Änderungen/Erweiterungen im Datenbankdesign erfordern später nur minimale manuelle Code-Änderungen.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

EIOPA (European Insurance and Occupational Pensions Authority), Frankfurt
Entwicklung eines Konvertierungs-Tools zum Im- und, Frankfurt
10/2013 – 2/2014 (5 Monate)
Öffentliche Verwaltung
Tätigkeitszeitraum

10/2013 – 2/2014

Tätigkeitsbeschreibung

Für ein proof-of-concept wurde eine C++ Dll inclusive Kommandozeilen-Bedienprogramm entwickelt, die Solvency II Daten einer SQlite Datenbank in und aus XBRL Dokumenten konvertiert. Für eine schnelle Verarbeitung auch großer Dokumente wurde der Streaming Parser XmlLite verwendet. Aufgrund des nicht vollständig vorhandenen Applikationsdesigns zu Beginn der Entwicklung wurde ein flexibler und modularer Ansatz gewählt, der alle während der Entwicklung auftretenden Designänderungen möglich machte. Über hinzugefügte .NET und VBA Schnittstellen kann die Dll auch von anderen Anwendungen benutzt werden. Projektsprache war Englisch.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Interface für DFS-Anflugplaner AMAN zur Verbindung mit dem Tower-Simulator NARSI
Deutsche Flugsicherung GmbH, Langen, Langen
11/2011 – 6/2012 (8 Monate)
Luft- und Raumfahrtindustrie
Tätigkeitszeitraum

11/2011 – 6/2012

Tätigkeitsbeschreibung

Zur Herstellung der Verbindung auf Transport-Ebene wurde zunächst ein spezieller Socket (2-Byte-Header) entwickelt. Für die Weiterverarbeitung der vom NARSIM gelieferten FMTP-Flugplan- sowie ADEXP-Radardaten wurde ein Parser angepaßt sowie ein Sende-Modul für ein Simulations-Tool erstellt. Anschließend wurden weitere Anwendungen auf Basis des erwähnten Sockets realisiert: Ein Sender für AMA-Nachrichten sowie ein internes Modul, das Benutzer-Ereignisse umwandelt und anschließend über die Schnittstelle schickt. Bei allen Aufgaben galt es, die vielfältigen internen Corba-Verbindungen sowie Laufzeitanforderungen der Multi-Prozeß und -Threading Anwendung AMAN (Anflug-Manager) zu berücksichtigen.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Definition und Entwicklung einer Preview-Schnittstelle für das vorhandene Fernse
Hessischer Rundfunk, Frankfurt, Frankfurt
3/2003 – 3/2004 (1 Jahr, 1 Monat)
Medienbranche
Tätigkeitszeitraum

3/2003 – 3/2004

Tätigkeitsbeschreibung

Um ein Video-Vorschausystem einer externen Firma an das bestehende Fernseh-Datenbanksystem (FESAD) anzubinden, wird zunächst eine Webservice-Schnittstelle definiert, die die verschiedenen möglichen Arbeitsabläufe beim Erfassen von Videos berücksichtigt. Anschließend wird diese Schnittstelle in Java unter Verwendung von Javabeans und Webservices implementiert; außerdem erfolgen Hilfestellungen für die externe Firma, ihre Seite der Schnittstelle (in .NET) zu implementieren und anzupassen.

Eingesetzte Qualifikationen

Java (allg.), Softwareentwicklung (allg.)

Entwicklung eines Programmes zur Erfassung von Musik-CDs und Administration der
Deutsches Rundfunkarchiv, Frankfurt, Frankfurt
10/2001 – 3/2003 (1 Jahr, 6 Monate)
Medienbranche
Tätigkeitszeitraum

10/2001 – 3/2003

Tätigkeitsbeschreibung

Unter Benutzung eines vorhandenden Host-APIs wurde ein in Java geschriebender CD-Client entwickelt, der den Archivaren ein komfortables Erfassen von Musik-CDs und das Eintragen der Daten in einer DB2-Datenbank ermöglicht. Der Client arbeitet dabei mit Stored Procedures und Triggern auf der Datenbank Hand in Hand. Wesentliche Elemente der Anwendung sind die Benutzung eines OCXes, das den Hardwarenahen Zugriff (Kopierschutz) auf das CDRom-Laufwerk gestattet sowie die Verwendung von Internet-Musikdatenbanken; das Programm ist zur Bedienung durch Sehbehinderte geeignet.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Entwicklung einer Client/Server-Anwendung zur Verwaltung von Sendebändern (Visua
RTL Television, Köln, Köln
5/1996 – 12/1997 (1 Jahr, 8 Monate)
Medienbranche
Tätigkeitszeitraum

5/1996 – 12/1997

Tätigkeitsbeschreibung

Auf der Basis einer vorhandenen hauseigenen Netzwerk/Datenbank-Bibliothek wurde ein 32/16 Bit Windows-Client (MFC-Anwendung) geschrieben, der auf einer Sybase SQL Open Server Datenbank operiert; diese Datenbank ist via Replikation/Stored Procedures/Triggern mit anderen Systemen verbunden. Bei der anschließenden Einführung des (Produktiv-)Systems waren diese Verbindungen ebenso zu berücksichtigen wie eine Übernahme von Altdaten aus einem Vorgängersystem. Die Anwendung wurde im Dialog mit ausgesuchten Anwendern erweitert und optimiert.

Eingesetzte Qualifikationen

C++, Softwareentwicklung (allg.)

Ausbildung

Elektrotechnik
Diplom
1993
Braunschweig

Über mich

Softwareentwicklung mit C++ unter Linux, Windows, MacOS, aber auch anderen Programmiersprachen R, Python, für datamining und machine learning. Experte mit viel Erfahrung in modernem C++; Erfahrung im Schreiben von Tradingalgorithmen.

Weitere Kenntnisse

Programmiersprachen: C++, C++11, C++14, C++17, C++20, C++23, R, Java, C#, .NET, Vb.net, Mono, SQL, PL/SQL, C, Python, Visual Basic, Delphi, Pascal, PHP, Html, XML, VBA, JSP, FCL, XBRL, Json, JavaScript (Node.js)
Bibliotheken, APIs: STL, Boost, range-v3, Qt3, Qt4, Qt5, ACE, POCO, XmlLite, Eigen, Armadillo, LAPACK++, OpenBLAS, OpenCV, Rcpp, Shark Machine Learning Library, ATL, MFC, FIX, Flex, Qt, wxWidgets, OpenMP, Soci, Oracle OCCI, Android SDK, Android Support Library, Shiny, JavaFX, AngularJS, ioBroker, OpenHAB, FHEM, Vue, Quasar, Metatrader MQL5, Mosquitto, Paho
Anwendungen: Visual Studio, PlatformIO, JBoss, Tomcat, Struts; Excel, Matlab, Rapidminer, Cran R, MS Office; IntelliJ, Eclipse, SourceSafe, ClearCase, CVS, Subversion, Git, BitBucket, CMake
Betriebssysteme: Windows (alle Versionen), Unix, Linux (Debian, CentOS, Arch, Scientific, Ubuntu, SuSE SLES 11, OpenHabian)
Datenbanken: MySQL, MariaDB, Sybase, Oracle, DB2, SQLite, ISAM, MSSQL, ADO.NET, SQL Server, PostgresDB, TimescaleDB, MongoDB, Stored Procedures, Trigger, Microsoft Membership-Modell
Scripting: Unix Shells, bash, ksh, awk, sed, Perl, lexx, yacc, rsync, cron; WSH, Windows Powershell; jQuery
Networking: TCP/IP, UDP, Sockets, CORBA, Multicast, OLE, COM, DCOM, .NET Remote, EJB, J2EE, ISAPI, IIS, Xmlrpc, Webservices, ZeroMQ, IBM MQ, REST, MQTT, Modbus, IEC 104
Hardware: Raspberry Pi, Banana Pi, Arduino, ESP8266, ESP32, STM32, 8051, RAID
Technologien: OOA/OOD, Entwurfsmuster MVC/MVVM, UML, BPMN, Solvency II; Multithreading, Futures/Promises, Realtime-Anwendungen, Netzwerke, Windows Services, Clustersysteme, Leistungsaspekte von Anwendungen; Genetische Optimierer, Fuzzylogik, "künstliche Intelligenz", Machine Learning, Datamining, Bigdata, Neuronale Netze, Entscheidungsbäume, Support Vector Machines, AdaBoost, PGP, Kryptografie, dm-crypt, LUKS, Docker
Build & Test: IntelliJ, CLion, Eclipse, Jenkins, CMake, GNU make, unix build chain (configure, make, gcc, clang), nmake, MSBuild, Ant, Maven, CruiseControl, Graddle, Jira, continuous integration, embedded software; SourceSafe, ClearCase, CVS, Subversion, GIT; CppUnit, Junit
Cloud: AWS, OpenStack, ElasticStack, VMware vSphere, Puppet, OpenAM, NSX/ESG, HAProxy, RabbitMQ, Splunk, Storm, Icinga, Graylog, Logstash, Elasticsearch, Apigee, Zookeeper

Persönliche Daten

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Fließend)
  • Französisch (Grundkenntnisse)
Reisebereitschaft
DACH-Region
Arbeitserlaubnis
  • Europäische Union
  • Schweiz
Home-Office
bevorzugt
Profilaufrufe
1928
Alter
57
Berufserfahrung
31 Jahre und 3 Monate (seit 01/1993)

Kontaktdaten

Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.

Jetzt Mitglied werden