Mark Rohrbacher

Mark Rohrbacher

Senior System Developer / System Architect


Erfahrung

  • Oktober 2008 - heute
    System Architect / Software Developer, Maintainer
    expand_more

    IBM / Deutsche Telekom AG, Frankfurt am Main

    Seit Juni 2009 bin ich verantwortlicher Komponenten-Maintainer bzw. Co-Maintainer sowie Software-Architekt für diverse Haupt-Komponenten der VoIP-Plattform der Deutschen Telekom AG, insbesondere für P-CSCF, I-CSCF, S-CSCF sowie SLF und HSS des IMS-Netzwerkes, aber auch für Hintergrund-Services wie der Konfigurations-Server, Verbindungs-Limitierungs-Server und den Nummern-Portierungs-Server.

    Meine Aufgaben beinhalten unter anderem Repository Maintenance (git), Code-Reviews (gerrit), Fehleranalyse und -fixing, aber auch Planung, Design und Implementierung neuer Features. Einige der in dieser Zeit umgesetzten Features:


    • Umstellung der gesamten Plattform auf 64 Bit
    • Implementierung von IPv6-Unterstützung in der gesamten Plattform
    • Optimierung des Kommunikations-Pfades zwischen P-CSCF und Media-Gateway
    • Re-Implementierung des Nummern-Portierungs-Server
    • Diverse “CeBIT-Features”, z.B. ein ISC Application-Server für AoC (Advice of Charge)
      oder eine ACD (Automatic Call Distribution)

    Eingesetzte Programmiersprachen:

    C/C++
    Bash
    Perl
    Lua
    Python
    SQL (DB/2, PostgreSQL)
    PL/Perl

    Protokolle:

    SIP
    MGCP / Megaco
    Radius
    Diameter
    TCP/IP
    UDP/IP
    SCTP

    Produkte, Standards:

    STL
    TLS (OpenSSL)
    git
    gcc (Intel)
    xlC (PowerPC)
    Scons
    gmake
    Gerrit
    Jenkins
    ClearQuest
    Linux
    AIX

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Skalierbarkeit
    Hochverfügbarkeit
    Concurrency / RCU
    Lastverteilung
    Linux Kernel-Treiber

  • Februar 2015 - heute
    System Architect / Software Developer
    expand_more

    Deutsche Telekom AG, Frankfurt am Main

    Meine Aufgabe in diesem Projekt war das Design und die Entwicklung eines Transaction-Stateful SIP Session Border Controller, um Geschäftskunden und Interconnection-Partner AG mit dem IMS-Netzwerk der Deutschen Telekom AG zu verbinden. Das Produkt verfügt über intelligente Load-Balancing Mechanismen, sowohl zu den externen Kommunikationspartnern, als auch zum inneren IMS-Cluster der Deutschen Telekom AG, DoS-Attacken-Abwehr über firewall-artige Mechanismen sowie eine Debugging-Schnittstelle zur Analyse von verschlüsseltem Datenverkehr (TLS). In diesem Projekt übernahm ich die Leitung eines kleinen Teams von 3 Personen.

    Eingesetzte Programmiersprachen:

    C/C++

    Protokolle:

    SIP

    Produkte, Standards:

    STL
    TLS (OpenSSL)
    gcc (Intel)
    xlC (PowerPC)
    Linux
    AIX

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Skalierbarkeit
    Hochverfügbarkeit
    Lastverteilung
    Low-Lewel Socket-Programmierung (TCP_REPAIR, RAW-Sockets)

  • Januar 2016 - März 2016
    IOT integrator
    expand_more

    IBM, Frankfurt am Main

    In diesem Projekt musste ein 24/7-lauffähiges IOT-Netzwerk aufgebaut werden. Hierfür wurde auf das bestehende IBM-Research-Projekt LRSC (http://www.research.ibm.com/labs/zurich/ics/lrsc/) zurückgegriffen. Die Integration beinhaltete neben der Installation der Software auch die Analyse und Bugfixing sowie Erweiterung des bestehenden Sourcecode, Installation von LoRa-Gateways (embedded Systeme von Semtech und Kerlink), Anpassung der Gateway-Firmware.

    Meine Aufgaben beinhalten unter anderem Repository Maintenance (git), Code-Reviews (gerrit), Fehleranalyse und -fixing, aber auch Planung, Design und Implementierung neuer Features. Einige der in dieser Zeit umgesetzten Features:

    Eingesetzte Programmiersprachen:

    C/C++
    JavaScript

    Protokolle:

    MQTT
    HTTP

    Produkte, Standards:

    TypeScript
    NodeJS
    SASS/SCSS
    Ajax
    LoRa
    git
    gcc (Intel, ARMv6)
    gmake

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Netzwerk-Programmierung
    Skalierbarkeit
    Hochverfügbarkeit
    Embedded
    Cross-Compiling (ARMv6)
    ESX Server

  • Dezember 2013 - Dezember 2014
    System Architect / Software Developer
    expand_more

    Deutsche Telekom AG, Frankfurt am Main

    In diesem Projekt war ich zuständig für die Architektur und Implementierung eines Nummern-Portierungs-Server für die Deutsche Telekom AG, um den bestehenden - nicht mehr hinreichend performanten - Portierungs-Server abzulösen.

    Der Rufnummernportierungs-Server besteht aus einer Backend-Applikation, das alle Datensätze (~300 Millionen Telefonnummern) aus einer DB/2 Datenbank liest und diese der Frontend-Applikation zur Verfügung stellt. Alle Datensätze werden während der gesamten Laufzeit im Speicher gehalten und stehen selbst nach einem Neustart der Applikation mit minimaler Reorganisations-Zeit nahezu unmittelbar wieder zur Verfügung. Der Speicherbedarf der internen Datenstruktur liegt bei vollständiger Befüllung von 300 Mio. Datensätzen bei <400 MB und erlaubt mehr als 20.000 Anfragen pro Sekunde und CPU-Kern. Die genutzte Datenstruktur benötigt zum Lesen keinerlei Locking-Mechanismen und nutzt ein eigenes Speichermanagement. In diesem Projekt übernahm ich die Leitung eines Teams von 5 Personen.

    Eingesetzte Programmiersprachen:

    C/C++
    SQL

    Produkte, Standards:

    Google Protobuf
    git
    ODBC
    ClearQuest
    gcc (Intel)
    xlC (AIX)
    Scons

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Skalierbarkeit
    Hochverfügbarkeit
    Concurrency / RCU

  • Januar 2013 - Juni 2015 (Freizeitprojekt)
    Software Architect / Software Developer
    expand_more

    Rohrbacher Development, Ottweiler/Saar

    In diesem Projekt habe ich das ts3overlay (s. vorangegangenes Projekt) weiterentwickelt (https://projectkryptonite.com). Die neue Software wurde dahingehend erweitert, dass die darzustellenden Informationen in HTML-Form in einem separaten Prozess mit Hilfe des Chromium Embedded Framework (https://en.wikipedia.org/wiki/Chromium_Embedded_Framework) gerendert werden, und dort über einen gemeinsamen Speicherbereich in die Spiele transferiert und dort dargestellt werden.

    Eingesetzte Programmiersprachen:

    C/C++
    JavaScript

    Protokolle:

    HTTP

    Produkte, Standards:

    Qt
    MFC
    Direct3D
    OpenGL
    Chromium Embedded Framework
    git
    Microsoft Visual Studio

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Assembler (Intel)
    Interception / Hooking
    IPC (Shared Memory)

  • Januar 2010 - Dezember 2012
    Software Architect / Software Developer
    expand_more

    TeamSpeak Systems, Krün

    In diesen zwei Jahren habe ich eine generisches Overlay für Direct3D8 - Direct3D11 und OpenGL-Applikationen entwickelt, das als ein Plugin für TeamSpeak (http://www.teamspeak.de) eingesetzt wurde. Ziel war es, in Spielen zusätzliche, vom Spiel nicht vorgesehene, Informationen darzustellen - in diesem speziellen Fall handelte es sich dabei um die Darstellung der Namen der TeamSpeak-Teilnehmer, die aktuell am sprechen sind. Teil der Software ist ein integrierter Dis- und Re-Assembler für Intel (32 und 64 Bit), der genutzt wird, um Funktionsaufrufe in die Grafik-Engine abzufangen und in den eigenen Code umzulenken (Interception / Hooking). Die darzustellen Grafiken wurden mit Hilfe von CeGUI (http://cegui.org.uk) im Spiel gerendert und dargestellt.

    Eingesetzte Programmiersprachen:

    C/C++

    Produkte, Standards:

    MFC
    Direct3D
    OpenGL
    CeGUI
    git
    Microsoft Visual Studio

    Technologien, technische Schwerpunkte, Spezialkenntnisse:

    Assembler (Intel)
    Interception / Hooking

  • 2000 - Oktober 2008
    Software Developer
    expand_more

    ASC Technologies AG, Hösbach

    Entwurf und Implementierung eines Spachaufzeichnungssystems für traditionelle Telefonie (z.B. PRI / BRI) und SIP / H.323.

    Aufgaben:

    • Entwurf und Implementierung eines Voice-Recorders
    • Entwurf und Implementierung einer plattformübergreifenden Bibliothek für Threading und Kommunikation (Sockets, Pipes, serielle und parallele Schnittstelle, shared memory)
    • Objektorientierte Programmierung in C++
    • Portierung von OS/2-Treibern nach Linux
    • Entwurf und Implementierung einer grafisch konfigurierbaren Grammatik und deren Konfigurationsoberfläche zur Interpretation binärer Datenströme (Telefon-Events) und Interaktion mit dem Voice-Recorder
    • Integration von PBX/PABX (NEC, Siemens, Nortel, Avaya, ...)
    • Integration von CTI-Schnittstellen (TAPI, Genesys, ...)
    • Integration von CDR-Schnittstellen (IPC, Nortel)
    • Endkundenspezifische Anpassungen
    • Schulungen

    Eingesetzte Programmiersprachen:

    C/C++
    PHP
    Perl
    Shell-Scripting

    Datenbanken

    MS-SQL
    MySQL
    Oracle

    Tools

    KDE
    gcc
    g++
    Microsoft Visual Studio/C++
    Bugzilla
    Mantis
    SourceSafe
    cvs
    Perforce (P4V)

    Protokolle:

    TCP/IP
    UDP/IP
    SIP
    H.323
    DSS1
    DASS2
    RBS
    PCM30
    PRI

  • 2004 - Oktober 2008
    Software Developer
    expand_more

    ASC Technologies AG, Hösbach

    Entwurf und Implementierung eines web-basierten Quality Monitoring Systems für Contact Center.

    Aufgaben:

    • Entwurf und Implementierung eines web-basierten Quality Monitoring Systems für Contact Center.
    • Integration des Voice-Recorders
    • Entwurf und Implementierung eines Aufzeichnungsplaners
    • Endkundenspezifische Anpassungen
    • Integration der Software in die IT-Umfelder der Kunden
    • Schulungen

    Eingesetzte Programmiersprachen:

    C/C++
    PHP

    Datenbanken

    MS-SQL
    MySQL
    Oracle

    Tools

    KDE
    gcc
    g++
    Microsoft Visual Studio/C++
    Bugzilla
    Perforce (P4V)

    Protokolle:

    TCP/IP
    HTTP
    HTTPS
    Kerberos

  • 2004 - 2005
    Software Developer
    expand_more

    EUROKEY Software GmbH, Saarbrücken

    Erweiterung eines Autorensystems für Sprachlernsoftware.

    Aufgaben:

    • Erweiterung eines Autorensystems für Sprachlernsoftware
    • Portierung der GUI von GDI nach DirectX

    Eingesetzte Programmiersprachen:

    C/C++

    Tools

    Microsoft Visual Studio/C++
    SourceSafe

  • 1998 - 2000
    Software Developer
    expand_more

    ASC Technologies AG, Hösbach

    Implementierung einer Sprachlern-Software basierend auf den Funktionalitäten eines LTS-Kassettenrecorders.

    Aufgaben:

    • Implementierung einer Sprachlern-Software basierend auf den Funktionalitäten eines LTS-Kassettenrecorders.
    • Objektorientierte Programmierung in C++
    • Integration der Software in ein softwarebasiertes Pädagogisches Netzwerk (PädNet)

    Eingesetzte Programmiersprachen:

    C/C++

    Tools

    Microsoft Visual Studio/C++
    SourceSafe

    Protokolle:

    TCP/IP
    UDP/IP
    CAN