logo

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

Hadoop:

  • Pouvoir copier des fichiers entre utilisateurs et clusters selon les permissions de chacun.
  • Créer des exemples de projets utilisant Scala, Spark et Greenplum.
  • Pouvoir gérer les roles Sentry, les bases de données Hive et les permissions Sentry+Hive.

Support de WebIntel:

  • Créer une file sur le disque dur au lieu de garder les items en mémoire lorsque l’insertion à certaines bases de données est lente.
  • Créer des scripts pour aider à rejouer certains messages.

Service REST de métadonnées des bases de données:

  • Toute l’information utile pour gérer les bases de données (leur nom, emplacement physique, configuration, etc.) sont dans une base de données et j’ai créé un service REST pour exposer ces détails.
  • Créé en Python avec la librairie Flask.
  • Contient une interface Web en AngularJS pour naviguer entre les entités et faire des recherches.

MongoDB:

  • Analyser et préparer un plan pour un site libre service et pour les intégrations dans l’environnement de Morgan Stanley pour gérer des bases de données en utilisant l’API de Ops Manager .

Autre:

  • Ajouter de la documentation dans tous les projets que j’ai participé.
  • Créer une librairie Java commune avec plusieurs points d’intégration sur les différents services chez Morgan Stanley.
  • Créer une application web qui permet de chercher dans plusieurs fichiers logs en ordre chronologique entre ces fichiers. Cela permet de voir une action lancée par un service et l’exécution sur un autre.
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 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: , , , , , , , , , ,

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 0 est un développement rapide pour couvrir quelques parties du processus:

  • 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 coordinateurs de McGill de gérer les permissions

Responsabilités:

  • Gérer et faire le suivit des tâches pour l’équipe
  • 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
  • Sécuriser l’accès à l’application en utilisant Spring security (base de données locale et LDAP pour les réviseurs internes)
  • Implémenter un système qui bloque les gens qui essayent de se connecter avec plusieurs mots de passe invalides de suite. Ils sont bloqués pendant une heure
  • Crypter tous les mots de passe dans le fichier de configuration
  • Permettre de gérer des réviseurs externes (créer, assigner des applications à regarder, changer leur mot de passe)
  • Communiquer avec un service web SOAP pour sauvegarder les documents téléversés à Documentum
  • Tâches exécutées quotidiennement pour notifier et rappeler les personnes références pour des applications par courriels que le système attend leur réponse
  • Les réviseurs internes et externes peuvent chercher et afficher les applications qui leurs sont assignées par département et par liste d’applications

Le site web (besoin de se connecter)

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

Dans le cadre de mon travail chez CGI, j’ai participé à la création d’une application web pour permettre à des utilisateurs externes à McGill de créer des comptes pour accéder à plusieurs systèmes de McGill.

McGill avait besoin d’un système qui permet de se connecter à plusieurs applications web avec un compte local, LDAP, OpenId et autres. C’est pourquoi ils ont choisi d’utiliser CAS qui permet d’utiliser beaucoup de comptes de différents services.

Responsabilités:

  • Gérer et faire le suivit des tâches pour l’équipe
  • 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:

  • Système de connexion
    • Personnalisation du logiciel CAS
    • Intégration du design en HTML et CSS
    • Créer une configuration de base pour permettre la connexion d’utilisateurs dans une base de données locale et d’utilisateurs internes à McGill
  • Système de gestion d’utilisateurs dans la base de données locale
    • Application Grails
    • Intégration du design en HTML et CSS
    • Sécuriser l’accès à l’application en utilisant Spring security
    • Section administration
      • Visualiser les utilisateurs et les activer/désactiver
      • Faire une recherche dans les évènements (audit)
    • Section de création de comptes
      • Enregistrement
      • Oublie de mot de passe
    • Section de gestion d’un compte
      • Modifier son nom, courriel et mot de passe
  • Créer des tâches quotidiennes de maintenances activables par un appel à un service web
  • Permettre de se connecter avec des « providers » différents du plugin Spring Security selon la page accédée
    • Selon la page, soit LDAP est utilisé ou CAS
    • Les pages de connections sont différentes selon le cas
Technologies: , , , , , , , , , , , ,