logo

Dans le cadre de mon travail chez Morgan Stanley, je m’occupe de plusieurs produits dans l’équipe de Business Intelligence (BI).

Hadoop:

  • Permettre de gérer les utilisateurs dans les différents services: Cloudera Manager, Cloudera Navigator, Hue, etc.
  • Créer de la documentation pour expliquer comment utiliser Java avec Hadoop dans Morgan Stanley.
  • Créer des scripts pour tester l’état de chaque service disponible. (ex: exécuter une application yarn, exécuter des requêtes dans Impala et Hive, etc.)
  • Permettre de copier des données en utilisant « distcp » si l’utilisateur a la permission de toucher le répertoire source et celui de destination.

Business Object:

  • Créer un service web pour englober toutes les fonctionnalités de nos outils au lieu d’utiliser le SDK de BOXI dans tous ces outils.
  • Réécrire en Java un des outils qui publient les rapports générés en temps réel dans les différents clusters.

Data Security Exception:

  • Application web pour gérer des formulaires de demande d’exception pour différents services que notre équipe offre.
  • Gère le processus d’approbation en utilisant Activiti.
  • Envoie automatiquement des rappels lorsque l’exception va bientôt expirer.
  • Permet de renouveler une exception et voir tout l’historique. L’ID global de l’exception reste le même.

Support de WebIntel:

  • Application interne ressemblant à Google Analytics.
  • Créer une application web pour gérer les différentes facettes de la plate-forme.

Démarrer un nouveau service REST pour l’équipe de base de données:

  • Application Python utilisant Flask .
  • Connecte à Sybase .
  • Utilise Swagger pour documenter l’API .

Autre:

  • Ajouter de la documentation dans tous les projets que j’ai participé.
  • Créé une librairie Java commune avec plusieurs points d’intégration sur les différents services chez Morgan Stanley.
  • Faire des présentations techniques des différents projets.
  • M’occuper d’un stagiaire durant 6 mois
Technologies: , , , , , , , , , , , , , , , , , , , ,

Suite de logiciels pour gérer des serveurs Ubuntu.

Ce projet est pour me permettre d’offrir plusieurs services partagés.

C’est un changement de la version utilisant Chef à un logiciel 100% interne fait en Java.

Applications de base installées sur tous les serveurs:

  • Page de maintenance commune lorsqu’un site est retiré.
  • Surveillance des services (httpd, mysql, …) pour qu’ils soient automatiquement redémarrés s’ils plantent.
  • Application de sauvegarde quotidienne de tous les utilisateurs, bases de données, job cron et services upstart.

Ressources gérées par le site web:

  • Gère
    • les utilisateurs,
    • les certificats et clés SSL,
    • les sites web,
    • les bases de données,
    • les services upstart,
    • les tâches cron.

Logiciels complémentaires:

  • Système d’envoi d’entrées DNS au serveur DNS
    • Association automatique de l’adresse IP de la machine qui contient le site.
    • Création automatique des entrées DNS basées sur les sites Apache configurés et les adresses courriel utilisées.
    • Permet de facilement migrer un site sur un nouveau serveur sans avoir à manuellement changer le DNS.
    • Permet de distribuer la charge d’un site sur plusieurs machines: ajout et retrait automatique si une machine s’ajoute ou quitte.
  • Système surveillance
    • Envoie les statistiques de chaque machine régulièrement.
    • [En cours] Envoie l’espace disque utilisé par chaque utilisateur (sites web, courriel, bases de données, …)
  • Site web pour gérer les comptes par l’administrateur et les utilisateurs
    • Gérer les sites.
    • Gérer les courriels.
  • Redirection des connexions locales à MySQL vers un autre serveur MySQL centralisé
    • Permet de déployer le même code sur plusieurs machines en conservant localhost comme base de données.
    • La connexion est cryptée entre les serveurs.
Technologies: , , , , , , , , , , , , , ,

Dans le cadre de mon travail chez Morgan Stanley, je m’occupe de plusieurs produits dans l’équipe de Business Intelligence (BI).

Hadoop:

  • Application web libre service pour gérer des projets sur des distributions d’Hadoop Cloudera et MapR.
  • Permettre d’accepter ou refuser l’accès aux grappes aux différents projets.
  • Permettre aux utilisateurs de se créer un répertoire personnel.
  • Gérer les quotas et les permissions des répertoires.
  • Intégration avec des services REST utilisant SPNEGO
  • Créer des scripts pour vérifier l’état des différents services sur les grappes.
  • Créer des exemples de code pour Hive, Impala, HBase, …

Support de WebIntel:

  • Application interne ressemblant à Google Analytics.
  • Créer une application web qui permet de noter les visites vers des urls externes et rediriger vers ces urls.
  • Créer une suite de tests incluant des tests de charges.

Preuve de concept d’une application sur Hadoop:

  • Faire des milliers d’insertions de messages dans une table en format Parquet en utilisant Impala (via le pilote JDBC d’Hive).
  • Simuler les messages quotidiens en temps réel en plus de permettre d’augmenter la charge:
    • Télécharger les vrais messages envoyés les dernières journées et les conserver en format JSON compressés.
    • Générer une liste de messages pour l’heure présente en utilisant les messages conservés et en utilisant un multiplicateur.

Support des outils pour SAP Business Object:

  • Aider à résoudre quelques bogues.
  • Rendre une application Flex listant tous les répertoires et sous répertoires plus rapide en chargeant le contenu des sous-dossiers sur demande seulement.

Autre:

  • Faire passer des entrevues techniques.
  • Ajouter de la documentation dans tous les projets que j’ai participé.
  • Créé une librairie Java commune avec plusieurs points d’intégrations sur les différents services chez Morgan Stanley.
  • M’occuper d’un stagiaire pour une réécriture d’un service utilisant Business Object. Le service passe de C# à Java.
  • Aider un autre stagiaire pour tester les performances d’une grappe Hadoop.
  • Participer à des foires de carrière.

 

Technologies: , , , , , , , , , , , , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à un projet chez Aimia (Aéroplan) pour aider à créer un service qui évalue la valeur d’un point Aéroplan versus la récompense demandée (vols d’avion). Ceci est la suite de la phase 2.

Responsabilités:

  • Analyser les besoins de l’entreprise versus les données qui peuvent être obtenues et utilisées.
  • Élaborer des règles d’entreprise selon les données disponibles.
  • Concevoir et développer une partie de la solution.

Spécificités:

  • Application Java utilisant Spring Framework.
  • Créer des tests jUnits pour tout ce qui est développé.
  • Améliorer certains tests unitaires écrits précédemment pour utiliser les outils de Spring.
  • Améliorer la gestion des erreurs puisque certains problèmes se sont ajoutés en changeant la tactique entre les phases 1 et 2.
  • Améliorer l’orchestration de la solution puisqu’elle est devenue trop grosses suites aux nombreux ajouts de fonctionnalités.
  • Documenter la possibilité d’avoir un outil qui teste continuellement le nouveau code par rapport à la production.
Technologies: , , , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à un projet chez Aimia (Aéroplan) pour aider à créer un service qui évalue la valeur d’un point Aéroplan versus la récompense demandée (vols d’avion). Ceci est la suite de la phase 1. La phase 2 consiste à avoir une job qui vérifie toutes les nouvelles réservations de vols et ajoute celles qui n’ont pas fonctionné ou qui n’ont pas été trouvées. Elle ajoute toutes les entrées dans la file.

Responsabilités:

  • Analyser les besoins de l’entreprise versus les données qui peuvent être obtenues et utilisées.
  • Élaborer des règles d’entreprise selon les données disponibles.
  • Concevoir et développer une partie de la solution.

Spécificités:

  • Application Java utilisant Spring Framework.
  • Créer des tests jUnits pour tout ce qui est développé.
  • Créer le DAO de la base de données DB2:
    • Créer les classes liées au domaine.
    • Utiliser JDBC Template avec des RowMappers pour lire les données.
    • Utiliser JDBC Template pour écrire, mettre à jour et effacer les données.
  • Créer des services web REST et des clients qui:
    • liste toutes les réservations à ajouter à la queue.
    • modifie une réservation pour dire qu’elle a été auditée ou non.
  • Modifier quelques règles métiers suite à l’analyse des données par les auditeurs.
  • Ajouter des fonctionnalités à l’application web pour aider à tester manuellement:
    • Permettre d’obtenir les données en production en groupe et les zipper pour les utiliser avec un Mock.
    • Afficher le contenu de la nouvelle table listant les réservations à auditer

À côté:

  • Créer un script Perl pour générer un fichier qui liste les aéroports et leurs villes pour résoudre un bogue d’un autre système qui affecte l’audit.
Technologies: , , , , , , , , ,