MK
verfügbar

Letztes Update: 28.12.2022

Software-Entwickler und Berater

Abschluss: Diplom-Informatiker
Stunden-/Tagessatz: anzeigen
Sprachkenntnisse: deutsch (Muttersprache) | englisch (verhandlungssicher) | französisch (gut) | spanisch (Grundkenntnisse)

Dateianlagen

ResumeMK_de.pdf
ResumeMK_en.pdf

Skills

Programmiersprachen Python, Objective-C, C, C++, Assembler (68k), JavaScript, HTML, CSS, Java, Perl, Tcl/Tk, SQL, Scheme, Bash Shell scripts
Datenbanken PostgreSQL, MySQL, SQLite, Oracle
  Python Tools PyCharm, Django, Flask, SQLAlchemy, PySide/PyQt, pytest, Jupyter notebooks, NumPy, pandas, Matplotlib, PyTorch, pydot, PyParsing, PyAutoGUI, NetworkX, pybind11, z3
Sonstige Kenntnisse GNU/Linux, macOS, Windows, Apache, nginx, Docker, SSH, Git, CMake, Xcode, Cocoa, Metal, OpenGL, GLSL, J2EE, VMWare, Docker, Ansible
Sprachen Deutsch (Muttersprache), Englisch und Französisch fließend, Spanisch
Open Source-Projekte auf GitHub
https://github.com/mikr
  Ausbildung
Universität Bielefeld, Oktober 1991 - Juni 1997
Dipl.-Informatiker im Bereich angewandte Informatik mit naturwissenschaftlichem Hintergrund.
Erfahrungen
Persönliche Weiterbildung, Juni 2022 -
Studium der aktuellen JavaScript/TypeScript Technologien wie React, NextJS, Electron, Tauri, Design Systems, Serverless Deployment

Machinenbau, Oktober 2021 - November 2021
Erstellung von Blender-Skripten in Python die eine Vielfalt von 3d-Modellen (Personen und Tiere) in unterschiedlichen Ausrichtungen, Stellungen und Beleuchtungen zur Einblendung in reale Landschaftsphotos rendern. Erweiterung von 3d-Modellen mit Texturen und Vertexgruppen zur programmatischen Anpassung von Kleiderfarben und Kleidergrößen mit Blender-Skripten.

Bildbearbeitung, März 2021 - Juli 2021
Implementierung von Metal-Rendering und Catalyst-Unterstützung für die iOS-Applikation TiltShift.

Persönliche Weiterbildung, Dezember 2019 - Mai 2020
Studium der 3d-Modellierung mit Blender sowie Blender-Skripting mit Python.

Persönliche Weiterbildung, Oktober 2018 - April 2019
Modernes C++17 inklusive vieler Open Source libraries und CMake gelernt. Viele kleine C++ Programme implementiert.

Telekommunikation, Januar 2018 - August 2018
Erstellung von Python-Skripten zur Automatisierung von Anwendungen über Maus- und Tastaturaktionen mit pyautogui/pywinauto durch Citrix-Sitzungen. Erstellung eines SMS-Servers und der Client/Server-API zum Versand von SMS über SMPP. Implementierung von Dateidownloads von auf dem ESB verfügbaren Dateien über SFTP mit Bastion-Host-Unterstützung mit Hilfe von Paramiko. Parallelisierung eines Pyro-basierten Topologie-Servers für die gleichzeitige Verwendung durch Dutzende unabhängiger Clients. Erstellung von Python-Skripten um Cisco IOS XR-Konfigurationsdateien mit Vorlagen im Word-Format zu vergleichen. Automatisierte Ticketerstellung durch Abrufen von E-Mails von einem Exchange Server über EWS, Extraktion relevanter Informationen mit Fuzzy-Adreßvergleich und weiterer Datenbankverarbeitung.

Ladenbau, Oktober 2017 - Dezember 2017
Restrukturierung des Prototypen eines Python-Skript zur Generierung gerenderter Bilder von Warenträgern und Schildhalterungen mit KeyShot. Erweiterung der Logik zur Auswahl von Oberflächenmaterialien für Artikelteile auf Basis von Daten aus einer SQL-Datenbank und der Fachlogik. Erstellung einer visuellen Darstellung der Protokollierung um den Auswahlprozeß der Materialien zu den fachlichen Regeln und den Datenquellen zurückzuverfolgen. Implementierung des fortlaufenden Renderns neu eintreffender 3D-Modelle mit der Windows Aufgabenplanung.

Maschinenbau, September 2016 - Oktober 2016
Weiterentwicklung einer in Python/PyQt geschriebenen Applikation durch Beginn der Integration der Fachlogik mit der GUI. Implementierung des Starts und der Kommunikation mit langläufigen grafischen Python-Programmen. Einführung von BDD-Tests mit behave und QTest, die außerdem die Auswirkungen von User Stories in grafischer Form dokumentieren. Erstellung von Wrapper-Skripten für die Build- und Testskripte, damit diese in Jenkins-Instanzen laufen können.

VFX Pipeline, Februar 2015 - Mai 2015
Erstellung einer Applikation um Bezeichner von z.B. Autoteilen in einer 3d Produktionspipeline für fotorealistisches Rendern zu finden und umzubenennen. The Bezeichner erscheinen in 3ds Max-Szenen, Nuke-Skripten, SQL-Datenbanken, XML-Dateien und so weiter. Die Details jeder Umbenennung werden in einer MySQL-Datenbank protokolliert. Mit dieser Protokoll-Datenbank kann jede Umbenennung rückgängig gemacht und jede betroffene Resource in ihren Ursprungszustand zurückversetzt werden. The Applikation ist in Python mit PySide (PyQt) als GUI-Toolkit geschrieben. Ich habe SQLAlchemy für Unabhängigkeit von speziellen Dankbanken und als objektrelationalen Mapper eingesetzt. Die Applikation wird durch PyInstaller als Windows executable ausgeliefert.

Bildbearbeitung, September 2008 - September 2014
Erstellung der Bildbearbeitungsapplikation TiltShift, die eine Landschaft in einem Photo derart verwandelt als handle es sich um ein Photo einer Miniatur-Landschaft wie bei einer Modelleisenbahn. Die Applikation für iPhone/iPod Touch ist in Objective-C geschrieben und ist im iPhone App Store verfügbar.

Bildbearbeitung, Dezember 2007 - September 2014
Erstellung der heiteren Bildverfremdungsapplikation RealArtist für iPhone/iPod Touch in Objective-C und OpenGL ES. Dieses Program wurde mehr als 400000 Mal auf iPhones mit Jailbreak installiert und ist jetzt offiziell im iPhone App Store verfügbar.

Online Marketing, Juni 2008 - September 2008
Erstellung einer auf Python/Django basierenden Online-Marketing-Plattform. Modellierung der Gewinnverteilung mit Excel. Transformation der Anwendungsfälle in Komponententests. Design, Implementierung und Durchführung eines Lasttests, der die Benutzung über mehrere Monate in wenigen Minuten simuliert. Implementierung von Prozessen, die Logdateien zwischen auf Amazon EC2 (Elastic Compute Cloud) laufenden Servern via Amazon S3 and SQS transferieren. Entwicklung des Datenbankimports von Logdateien und Aggregation der Logdaten. Generierung von PDF-Rechnungen mit PDF Formularen. Documentation des Systems mit Sphinx.

Versicherung, November 2007 - Dezember 2007
Erweiterung des automatischen Deployment-Prozesses in einer WebSphere 6.1/AIX-Umgebung durch Erstellung von Jython und Shell-Skripts. Die Themen waren Installation von Ressourcenadaptern und Datenquellen, Traceerstellung und Protokollierung, Sitzungsverwaltung und Behandlung von Patches.

Versicherung, Dezember 2006 - Juni 2007
Migration von J2EE-Anwendungen von ATG Dynamo 6/7 nach IBM WebSphere 6. Zur Bestandsaufnahme der aus über achtzig Applikationen bestehenden Anwendungslandschaft wurde mit Django/Python eine Datenbank aller verwendeten Server, Applikationen, Bibliotheken und Abhängigheiten aufgebaut und ausgewertet. Für die Einrichtung der WebSphere-Server, Datenbank-Anbindungen und Anwendungsinstallationen habe ich einige Shell-, Perl- und Jython-Skripte erstellt. Zur Aufwandsabschätzung der Gesamtmigration habe ich mehrere Applikationen von ATG Dynamo/Solaris nach WebSphere/AIX migriert.

Versicherung, Oktober 2005 - Mai 2006
Durchführung von Lasttests mit Grinder 3 für mehrere Web-Anwendungen. Entwicklung von Jython-Scripts zur Synchronisaton vieler Lasttest-Clients und Parametrierung mit Testdaten. Profiling von Web-Applikationen unter Tomcat 4.1.x und JBoss 4.0.x mit YourKit. Erstellung einiger Shell- und Perl-Skripte zum Debugging von Web-Applikationen unter Solaris 8. Implementierung von Filetransfer-Prozessen mit SSH. Bereitstellung einer dauerhaften Lösung zur Weblog-Analyse mit Sawmill 7.2.x.

Bank, Mai 2005 - September 2005
Weiterentwicklung der technischen Architektur einer Webapplikation zur Baufinanzierung. Konfiguration und gelegentliche Administration der Applikationsserver (JBoss 3.2.x und IBM WebSphere 5.1). Fehleranalyse in Bereichen von Cookies, HTTP/S (mit Zertifikaten), Browserinkompatibilitäten, Datenbank-Deadlocks (IBM DB2 Universal Database), Netzwerkverkehr, Java-Performance, Versionskonflikten und allen umgebungsabhängigen Unterschieden. Beratung zur Einbindung sicherheitsbeschränkter Java-Applets im Internet-Explorer nach Konzern-Richtlinien.

Bank, Februar 2005 - April 2005
Build, Konfiguration, Deployment und Administration komplexer J2EE-Applikationen zum Online-Banking. Verwendeter Applikationsserver ist ATG Dynamo. Beratung zur sicheren nahtlosen Integration der Webapplikation einer weiteren Bank über das Internet.

GIS, September 2003 - August 2004
Entwicklung diverser GIS-Anwendungen auf Basis von Python und OpenGL. Zielplatform ist Windows, der Schwerpunkt liegt dabei auf der professionellen Auslieferung der Programme als installierbares Executable. Dazu wurde ein vollautomatischer Buildprozeß erstellt.

Glasindustrie, April 2003 - Juli 2003
Erstellung einer Applikation zur Berechnung der licht- und strahlungstechnischen Werte von Scheibenaufbauten. Die Realisierung erfolgte mit Python. Native Look&Feel der GUI auf jeweils Windows und Linux wurde durch wxPython erreicht. Professionelles Deployment unter Windows mit InnoSetup. Die Installation und Beschriftungstexte der Anwendung ist vollständig internationalisiert (Deutsch, Englisch, Französisch). Ansicht und Ausdruck der berechneten Datenblätter in ansehnlicher Form wurde durch den Einsatz des PDF-Formats erzielt. Client-Server Kommunikation über das HTTP-Protokoll wobei alle gängigen Proxy-Typen unterstützt werden.

Bank, November 2002 - März 2003
Einführung einer Groupware-Anwendung (Wiki) zur Erstellung und Pflege der Dokumentation im Bereich Build, Deployment und Administration komplexer J2EE-Applikationen zum Online-Banking. Erstellung robuster und wartbarer Shell- und Perlskripte unter Solaris zur Konfiguration, Installation und Administration einer J2EE-Anwendung unter Berücksichtigung komplexer Thematiken wie CPU binding. CLASSPATH-Analyse der laufenden J2EE-Anwendung durch ein selbsterstelltes Perl-Skript. Entwicklung und Integration eines J2EE-Webmoduls zur Einsicht der Logdateien auf Entwicklungs- und Stagingsystemen mit Hilfe von Eclipse und Intellij IDEA. Schlüsselfertige Bereitstellung der Java-Profiler OptimizeIt, JProbe und JProfiler für das Remote-Profiling der J2EE-Anwendung unter Solaris von Windows NT aus. Beratung zu notwendigen Tätigkeiten, Möglichkeiten und Auswirkungen der Umstellung einer monolithischen J2EE-Anwendung auf unabhängige Web-Services.

Bank, Oktober 2001 - November 2001
Profiling einer Java-Swing-Applikation zur Bearbeitung von Finanzierungsverträgen mit OptimizeIt. Erarbeitung und Implementierung von Maßnahmen zur Steigerung der Performance und der Responsivität des Clients (z.B. Object Pooling). Anpassung eines Client-Programms zur Lasterzeugung auf dem in Java geschriebenen Applikationsserver. Implementierung performanceverbessernder Maßnahmen (z.B. Caching berechneter Werte) im Serverteil der Anwendung. Vergleich der Oracle-JDBC-Treiber (thin, OCI) unter verschiedenen Konfigurationsmöglichkeiten des objekt-relationalen Mapping Tools TopLink (z.B. BatchWriting, ParameterBinding). Analyse protokollierter SQL-Skripte mit selbsterstellten Python-Skripten und Dokumentation der zeitkritischen Statements. Transformation protokollierter SQL-Statements in eine JDBC-Anwendung und in ein ausführbares SQL-Skript zur Messung des Overheads von CORBA, Netzwerk und des JDBC-Treibers.

Bank, Januar 2001 - September 2001
Portierung einer J2EE-Applikation für Online-Brokerage von IBM Websphere auf ATG Dynamo. Erstellung J2EE-konformer Deployment-Deskriptoren von Servlets und EJBs (Enterprise Java Beans) und Konfiguration der zugehörigen Datenbankverbindungen. Implementierung eines Entwicklungs- und Build-Prozesses mit Einweisung der Softwareentwickler in Debugging-Tools und die IDE Kawa. Entwicklersupport für technische Probleme im Umgang mit dem Entwicklungsprozeß, Entwicklungswerkzeugen und dem Versionskontrollsystem Continuus. Konfiguration, Durchführung und Deployment von Applikationsbuilds.

Wissensmanagement, September 2000 - Dezember 2000
Einführung von Methoden und Tools zur Verbesserung des Softwareentwicklungsprozesses sowie Coaching der Mitarbeiter. Untersuchung und Veränderung von Java-Programmen und Batch-Skripten zur Erleichterung des Deployments. Analyse der ODBMS-basierten (ObjectStore) Persistenzschicht mit Know-How-Transfer an weitere Entwickler. Weiterentwicklung des automatischen Build-Vorgangs mit dem XML-basierten Make-Tool Jakarta-Ant und der Windows NT-Batchskripte. Evaluation mehrerer Tools zum Konfigurationsmanagement sowie Einführung und Administration eines SCM-Tools (StarTeam). Schulung der Mitarbeiter im Umgang mit StarTeam. Konfiguration von StarTeam für den Zugriff durch die Entwickler mehrerer Standorte. Erstellung eines automatisierten Batch-Builds von Visual C++ 6.0-Projekten. Erweiterung von 'InstallShield für Windows Installer'-Setups für das Deployment der Software unter Windows 2000. Erstellung von Dokumentation über Build, Deployment und Test der Software mit MS Word 2000.

Bank, Juli 2000 - September 2000
Refaktorierung teilweise generierter Java-Programme zum Import des Datenbestands in eine Oracle8-Datenbank mit VisualAge (über JDBC und SQL*Loader). Erstellung einer Ablaufsteuerung zur Koordination mehrerer SQL-Skripte und Java-Programme mit der ksh-Shell. Performance-Tuning durch Parallelisierung teilweise abhängiger Datenimporte durch eine dynamische Jobsteuerung mit der ksh-Shell. Installation eines Sun Enterprise Servers mit Plattenpartitionierung, Einrichten von Usern, Konfiguration von NFS. Installation und Konfiguration von System- und Netzwerküberwachungswerkzeugen. Automatische Überprüfung der PL/SQL-Migrationsprogramme auf Vollständigkeit der transformierten Attribute mit selbsterstellten Perl-Skripten. Debugging von PL/SQL-Programmen. Profiling des in Java geschriebenen Applikationsservers mit JProbe auf Solaris und Windows NT in Bezug auf Performance und Speicherbedarf. Beschleunigung der Anwendung durch Portierung von JDK 1.1 auf JDK 1.3.

Transport & Logistik, August 1999 - Mai 2000
Pflege und Weiterentwicklung einer Java/Oracle7-basierten Call-Center-Software. Erstellung eines Konzepts zur Erweiterung des vorhandenen Java-Frameworks um CRM-Ansätze. Umwandlung mehrerer MSIE-Applets in eine zusammenhängende Pure Java-Applikation. Integration von DCOM und Java zur Generierung von Serienbriefen mit Word97. Einsatz eines Pure Java-Webbrowsers zur Anzeige von HTML-Seiten aus der Java-Applikation. Konzeption und Implementierung von Java-Regressionstests basierend auf JUnit. Erstellung mehrerer Unix-Shell-Skripte zum Import von Daten in Oracle7 (Einsatz des SQL*Loaders). Erweiterung eines C++-Programms (in Verbindung mit Oracle Pro*C) zur Listengenerierung. Erweiterung von Word97-Dokumenten mit Auswertung von Datenbankfeldern durch Makros. Implementierung von Perl-Skripten zur Dokumentation der hierarchischen Abhängigkeit von Word97-Dokumenten mit Ausgabe in HTML

Auskunftei, Mai 1998 - Mai 1999
Erstellung des Datenmodells und Datenbankschemas einer Auswertungsdatenbank unter Informix sowie Implementierung der SQL-Abfragen in ESQL/C zur Bonitaetspruefung mit ungenauen Informationsquellen. Implementierung von Perl-Skripten zum Reverse Engineering der bestehenden Programme und des zugehoerigen Datenmodells.

PrePress-Bereich, Dezember 1997 - März 1998
Objektorientierte Analyse, Design und Implementierung eines Kommunikationsframeworks in Java 1.1 für eine verteilte Anwendung im Bereich Teleservice zur Überwachung und Steuerung von Druckplatten-Belichtungsmaschinen über schmalbandige Verbindungen. (Arbeitsproben in Form von Quelltext und Dokumentation dieses Projekts sind auf Anfrage erhältlich.)

Online-Medien, Juli 1997 - Dezember 1997
Entwicklung eines Client-Server Systems mit Datenbankanbindung (Informix) zur dynamischen Generierung personalisierter Werbeeinblendungen in Webseiten mehrerer Kunden (Werbeschaltsystem). Die Implementierung ist in C unter Verwendung von Unix-Sockets, POSIX-Threads, Informix Datablade Modulen sowie in ESQL/C für die SQL-Abfragen erfolgt. Spontane Erstellung von Apache und Squid-Hacks, um die Datenbankserver vor dem Ansturm zur Spitzenzeit der Mittagspause zu retten.

Online-Medien, Dezember 1996 - März 1997
Erstellung mehrerer grafischer Anwendungen als Java-Applets. Grafische Darstellung von Vektorkarten (GIS) mehrerer Formate (2D und 3D) im Airbrush-Stil.

Projekthistorie

Reisebereitschaft

Verfügbar in den Ländern Deutschland
Profilbild von Anonymes Profil, Software-Entwickler und Berater Software-Entwickler und Berater
Registrieren