Michael Krause Software Development

  • PDF
  • DOC
Michael Krause
Auf der Horst 11
33829 Borgholzhausen
Allemagne

Objectif

Creation d'applications innovantes pour iOS ainsi que d'applications Cocoa pour Mac OS X en Objective-C. Utiliser Python et son écosystème fantastique partout si possible.

Langages

Python, Objective-C, C, Assembler (68k), JavaScript, HTML, CSS, Java, Perl, Tcl/Tk, LaTeX, SQL, Shell scripts (sh, ksh, bash)

Bases de données

IBM DB2, Oracle, Informix, MySQL, PostgreSQL, SQLite

APIs/Frameworks

wxWidgets (wxWindows), PySide/PyQt, Cocoa, OpenGL, Django, jQuery, POSIX, J2EE

Competences

Debian GNU/Linux, LAMP, Apache, Lighttpd, nginx, perlbal, memcached, Docker, SSH, RCS, CVS, Subversion, Mercurial, Git, PyCharm, Eclipse, Xcode, OptimizeIt, JProbe, YourKit, Sawmill, InnoSetup

Projets Open Source sur GitHub

Langues

Allemand (langue maternelle), Anglais (courant), Français (courant), Espagnol (niveau B1)

Expériences Professionnelles

  • Construction de machines
    septembre 2016 - octobre 2016
    Avancé le développement d'une application Python/PyQt s'exécutant sur Linux en démarrant l'intégration de la logique métier dans l'interface graphique. Implémentation du lancement et de la communication avec les programmes graphiques Python de longue durée. Introduction des tests BDD avec behave et QTest qui documentent également les effets des récits utilisateurs sous forme visuelle. Création de wrapper scripts pour les scripts build et test afin qu'ils puissent s'exécuter dans des instances Jenkins.
  • VFX Pipeline
    février 2015 - mai 2015
    Création d’application pour trouver et renommer des identifiants comme des composants de voitures par exemple dans la pipeline 3d photo-réalistes. Les identifiants se retrouve dans les scenes 3ds Max, des scripts Nuke, des base de données SQL, des fichiers XML et ainsi de suite. Les details de chaque renommage sont enregistrée dans une base de données MySQL. Avec ces enregistrements l’application permet d’annuler chaque changement et restaurer les ressources dans l’état initial. L’application a été écrit en Python avec PySide (PyQt) pour l’interface graphique. J’ai utilisé SQLAlchemy pour l’indépendance de base de données et pour le mapping objet-relationnel. Le déploiement de l’application est un logiciel sur Windows au format .exe fourni avec PyInstaller.
  • Traitement image
    septembre 2008 - septembre 2014
    Création d'application TiltShift pour iPhone/iPod Touch en Objective-C qui transforme une scène d'une photo en miniature comme un trompe-l'œil. Cette application est disponible dans le iPhone App Store.
  • Traitement image
    décembre 2007 - septembre 2014
    Creation d'application RealArtist pour iPhone/iPod Touch en Objective-C et OpenGL ES qui permet de transformer des photos en caricature. Ce logiciel a été installé plus de 200000 fois.
  • Publicité en ligne
    juin 2008 - septembre 2008
    Création d'une plateforme de publicité en ligne avec Python/Django. Modélisation du partage de revenu avec Excel. Transformation des cas d'utilisation en tests unitaires. Dessiné, implémenté et exécuté un test de charge qui simule l'usage de plusieurs mois pendant quelques minutes. Implémentation des processus qui transfère des fichiers journal entre les serveurs de Amazon EC2 (Elastic Compute Cloud) via Amazon S3 et SQS. Développement de l'import des fichiers journal dans la base de données ainsi que l'agrégation de ces données. Génération des factures PDF avec des formulaires PDF. Documentation du système avec Sphinx.
  • Assurance
    novembre 2007 - décembre 2007
    Avancé le processus du déploiement automatique d'un environnement WebSphere 6.1/AIX par la création des scripts shell et Jython. Les sujets étaient l'installation d'aptateurs de ressources et source de données, journalisation et traçage, paramétrage de la session et traitement des patches.
  • Assurance
    décembre 2006 - juin 2007
    Migration des applications J2EE de ATG Dynamo 6/7 vers IBM WebSphere 6. Pour cela j'ai créé un outil avec Django/Python qui permet de collecter des informations (serveurs, applications, bibliothèques et dépendances) sur les environ quatre-vingts applications et de les stocker dans une base de données pour recenser l'existant dans l'environnement ATG Dynamo. Création de scripts shell, Perl et Jython pour la création du serveur WebSphere, les connexions de base de données et l'installation d'application. Pour qu'on puisse estimer l'effort de la migration totale j'ai migré plusieurs d'applications de ATG Dynamo/Solaris vers WebSphere/AIX.
  • Assurance
    octobre 2005 - mai 2006
    Réalisation de tests de charge avec Grinder 3 pour plusieurs applications web. Développement de scripts Python pour la synchronisation de tests de charge clients et le paramétrage avec les données d'essais. Mise en place du profil des applications web fonctionnant sur Tomcat 4.1.x et JBoss 4.0.x avec YourKit. Création de plusieurs scripts Perl et shell pour déboguer des applications web sur Solaris 8. Mise en œuvre de processus de transfert de fichiers avec SSH. Mise en place d'un système de contrôle et de gestion des activités du site web avec Sawmill 7.2.x.
  • Banque
    mai 2005 - septembre 2005
    Amélioration de l'architecture technique d'une application web pour le financement de projets immobiliers. Configuration et administration occasionnelles de serveurs d'application (JBoss 3.2.x et IBM WebSphere 5.1). Résolution de problèmes liés aux cookies, à HTTP/S (avec certificats), au comportement incompatible du navigateur, aux interblocages de bases de données (IBM DB2 base de donnée universelle), au trafic réseau, à la performance Java, aux conflits de version et autres divers comportements spécifiques d'environnement. Conseil pour l'incorporation d'applets Java dans Internet Explorer en respectant les politiques de sécurité standard de l'entreprise.
  • Banque
    février 2005 - avril 2005
    Construction, configuration, mise en application et administration d'applications J2EE complexes pour des services bancaires en ligne. Le serveur d'application était ATG Dynamo. Conseil pour une intégration sécurisée de l'application web d'une autre banque via Internet.
  • GIS
    septembre 2003 - août 2004
    Développement de plusieurs applications GIS à l'aide de Python et OpenGL. Platforme cible était Windows, avec une spécialisation sur la livraison professionnelle des programmes en tant qu'exécutables installables. Pour cette tâche, j'ai créé un processus de construction automatique.
  • Industrie du verre
    avril 2003 - juillet 2003
    Création d'une application permettant de calculer la transmission de la lumière des valeurs similaires de vitres à épaisseurs multiples. Le projet a été conduit en utilisant Python. Native Look&Feel du GUI sur Windows et Linux a été conduite en utilisant wxPython. Mise en application professionnelle sur Windows en utilisant InnoSteup. l'installation et les textes descriptifs de l'application sont intégralement traduits en allemand, anglais et français. Prévisualisation et impression des feuilles de calculs dans un style attrayant en format PDF. La communication client-serveur par le protocole HTTP est utilisable avec tous les types communs de serveurs proxy.
  • Banque
    novembre 2002 - mars 2003
    Introduction d'une application de groupe (Wiki) pour créer et metre à jour la documentation concernant la construction, la mise en application et l'administration d'applications J2EE complexes pour des services bancaires en ligne. Création de scripts Perl et shell solide et facile à administrer sur Solaris pour la configuration, l'l'installation, et l'administration d'une application J2EE incluant des problèmes complexes comme les liaisons processeur. Analyse CLASSPATH du fonctionnement d'une application J2EE en cours grâce à un script Perl autoprogrammé. Développement et intégration d'un module web J2EE pour inspecter les fichiers de demande sur les systèmes de développement et de classification en utilisant Eclipse et Intellij IDEA. Mise en oeuvre opérationnelle des profileurs Java OptimizeIt, JProbe and JProfiler pour l'établissement d'un profil à distance l'application J2EE sur Solaris depuis Windows NT. Conseil concernant les mesures nécessaires, les possibilités et les conséquences de la transformation d'une application J2EE monolithique en des service web indépendants.
  • Banque
    octobre 2001 - novembre 2001
    Etablissement du profil d'une application Java-Swing pour la gestion de contrats de location avec Optimizelt. Mise en oeuvre de mesures pour augmenter les performances et la réactivité de l'application client (par l'utilisation de la mise en commun d'objets par exemple). Modification d'un programme client afin de générer des chargements sur le serveur d'application Java. Mise en œuvre de mesures visant à améliorer les performances (comme la mise en cache de résultats déjà calculés) dans la partie serveur de l'application. Evaluation quantitative des pilotes Oracle JDBC (thin, OCI) avec différents paramètres de configuration dans l'outil de mapping objet TopLink (e.g. BatchWriting, ParameterBinding). Analyse de scripts SQL en utilisant des scripts Python autoprogrammés et de la documentation sur les rapports critiques performance. Transformation de rapports saisis par SQL dans une application JDBC et dans un script SQL exécutable pour mesurer les surcharges d'information respectives de CORBA, du réseau et du pilote JDBC.
  • Banque
    janvier 2001 - septembre 2001
    Portage d'une application de courtage en ligne J2EE depuis IBM Websphere vers ATG Dynamo. Création de mise en application conforme de décrypteurs de servlet J2EE et EJBs (Enterprise Java Beans) et configuration des connexions de base de données associées. Mise en œuvre du développement et du processus de construction incluant l'initiation des développeurs aux outils de débogage et à IDE Kawa. Aide aux développeurs pour les problèmes techniques concernant le processus de développement, les outils et le système de contrôle de version Continuus. Configuration, exécution et mise en œuvre de construction d'applications.
  • Gestion des connaissances
    septembre 2000 - décembre 2000
    Introduction de méthodes et d'outils pour améliorer le processus de développement des logiciels et la formation des employés. Analyse et modification des programmes Java et des lots de script pour faciliter la mise en application. Analyse de la couche de persistance basée ODBMS (ObjectStore) et transmission du savoir-faire aux autres développeurs. Développement du processus de construction automatique en utilisant l'outil XML karta-Ant et Windows NT batch scripts. Evaluation de plusieurs outils pour la gestion de configuration, l'introduction et l'administration d'un outil SCM (StarTeam). Formation des employés sur l'utilisatin de StarTeam. Configuration de StarTeam afin de permettre son utilisation depuis plusieurs sites. Création de lots de construction automatique de projets Visual C++6.0. Extension de la configuration “InstallShield pour Windows Installer” pour la mise en application du logiciel sur Windows 2000. Documentation sur la création, la mise en application et les tests du logiciel en utilisant MS Word 2000.
  • Banque
    juillet 2000 - septembre 2000
    Refractionnement de programmes Java partiellement générés pour l'importation de données dans une base de données Oracle8 en utilisant VisualAge (via JDBC et SQL*Loader). Contrôle séquentiel de scripts SQL multiples et de programmes Java utilisant le ksh shell Unix. Ajustement des performances via la parallélisation des importations de données partiellement dépendantes avec un synchronisateur de tâches dynamique rédigé en ksh. Installation d'un Serveur Sun Entreprise incluant le partitionnement de disque, la création de comptes d'utilisateur, la configuration de NFS. Installation et configuration d'outils de surveillance de système et de réseau. Création de scripts Perl pour une vérification automatique de programmes de migration PL/SQL pour l'exhaustivité concernant les protocoles transformés. Débogage de programme PL/SQL. Etablissement du profil du serveur d'application de base Java en utilisant JProbe sur Solaris et Windows NT pour les performances et l'utilisation de la mémoire. Accélération de l'application en la faisant passer de JDK 1.1 à JDK 1.3.
  • Transports & Logistique
    août 1999 - mai 2000
    Maintenance et développement d'un logiciel de centre d'appel Java/Oracle7. Création d'un concept pour étendre le cadre Java existant en intégrant des éléments de CRM. Conversion d'applets MSIE multiples en une application Java pure et cohérente. Intégration de DCOM et Java pour générer des modèles de lettres en utilisant Mail Merge dans Word97. Intégration d'un navigateur Java pur pour visualiser des pages HTML standard dans l'application. Introduction d'un concept et de la mise en application de tests de régression Java sur JUnit. Création de script shell pour importer des données vers le SQL*Loader. Extension d'une liste générant un programme C++ (avec Oracle Pro*C). Extension de documents Word97 en utilisant des points de liaisons et des macros. Mise en place de scripts Perl afin de documenter les dépendances hiérarchiques des documents Word97 documents en tant que rapport HTML.
  • Agence de crédit
    mai 1998 - mai 1999
    Création d'un modèle de données, d'un schéma de base de données et de requêtes SQL en ESQL/C (informix) pour une application de simulation de crédit utilisant des sources d'information imprécises. Mise en application de scripts Perl afin d'inverser la base de codage des programmes C et les modèles de données associés.
  • Industrie Prépresse
    décembre 1997 - mars 1998
    Analyse orientée objet, conception et mise en oeuvre d'un cadre de communication Java 1.1 pour une application répartie servant à inspecter et contrôler à distance via connexion sur bandes étroites des machines de configuration d'images pour des plaques d'impression. (Des illustrations de ce projet sous la forme de code source et de documentation sont disponibles sur demande.)
  • Médias en ligne
    juillet 1997 - décembre 1997
    Développement d'un système client-serveur avec une connectivité de base de donnée (Informix) pour la création de publicités animées ciblées dans des pages web tierces. La mise en application a été effectuée en C avec des sockets Unix, des threads POSIX, des modules datablade Informix et en ESQL/C pour les requêtes SQL. Création à mon initiative de hacks Apache et Squid pour soulager les serveurs de base de données pendant les heures les plus chargées.
  • Médias en ligne
    décembre 1996 - mars 1997
    Création de plusieurs applications graphiques dont des applets Java. Affichage de cartes vectorielles (système d'information géographique) en formats multiple (2D et 3D) dans un style visuel agréable ressemblant à des images faites à l'aide d'aérographe.

Projets Personnels

  • Transport public
    juillet 2007 - avril 2008
    Creation de mashup Google Maps trom.fr qui permet de trouver les routes les plus rapide à Paris. Le site a été créé avec Python/Django, JavaScript, AJAX, jQuery.

Formation

Université de Bielefeld
octobre 1991 - juin 1997
Diplôme allemand en informatique avec une spécialisation en sciences naturelles. Ce diplôme équivaut à un bac+5 en informatique.

Copyright © 2016 Michael Krause