logo

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: , , , , , , , , ,

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).

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 des outils pour aider à tester avec jUnit:
    • Outil de chargement de données JSON pour comparer les résultats désirés.
    • Outil pour valider les formats des requêtes et réponses REST.
    • Outil pour valider le contenu de la base de données après un test.
  • 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 les données.
  • Créer les classes métier et les mappers de ces classes aux classes de base de données.
    • Possède la logique des règles d’entreprises pour calculer les données pertinentes.
  • Accéder à des services web en utilisant RestTemplate pour obtenir des informations tels les points équivalents à un voyage et les informations sur les prix des trajets.
  • Créer des XSLT pour transformer une requête JSON en message SOAP et l’inverse pour la réponse.
  • Créer une application web pour aider à tester manuellement:
    • Voir toutes les valeurs des tables pour une entrée spécifique dans la base de données.
    • Effacer toutes les valeurs des tables pour une entrée spécifique dans la base de données pour pouvoir essayer de la réinsérer.
    • Comparer les vues et les tables dans la base de données.
    • Poster une requête dans les queues (le point d’entré du service développé).
    • Voir les messages dans les queues.
Technologies: , , , , , , ,

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre aux étudiants gradués de postuler à la maîtrise ou au doctorat.

La version 2 couvre tout le processus:

  • Permettre aux administrateurs de créer des formulaires à remplir par les applicants selon le programme
  • Permettre aux applicants de créer leur profil et de soumettre des applications
  • Permettre à des personnes d’appuyer la candidature d’un appliquant en téléversant un fichier
  • Permettre aux réviseurs d’applications internes à McGill et aussi externes de faire des recherches et de visualiser les applications selon leurs permissions
  • Permettre aux administrateurs de McGill de gérer les permissions

Responsabilités:

  • À l’occasion
    • Créer les fichiers pour l’installation de la base de données, les configurations et le paquet à déployer
    • Déployer l’application sur les environnements de tests
    • Guider et répondre aux questions des testeurs

Spécificités:

  • Application Grails
  • Créer et accéder à des services web avec CXF et Groovy wslite
  • Créer des tâches quotidiennes de maintenances activables par un appel à un service web
  • Coder des points d’intégrations:
    • Avec des services web
    • Avec des stored proc dans la base de données Oracle
    • En créant des vues dans la base de données Oracle
    • Créer des stubs à utiliser pour le développement et l’environnement de tests
    • Avec CAS via SAML pour obtenir des attributs de l’utilisateur connecté
  • Générer des PDF avec Flying Saucer
  • Créer des pages applicatives avec ZKUI
    • Gestion des modèles de courriels et de documents PDF contenant des variables
    • Gestion des règles pour l’approbation automatique d’une application
  • Créer des scripts SQL pour faire une migration de la structure et des données de la version 1 à la version 2 de l’application
  • Créer un filtre pour vérifier qu’un administrateur a la permission requise pour effectuer certaines tâches. Chaque contrôleur et action peut choisir sa permission avec une annotation
Technologies: , , , , , , , , , ,