Voici les façons de me contacter. Je suis généralement disponnible du lundi au vendredi, de 10:00 à 20:00.
Vous pouvez télécharger mon C.V. au format de votre choix en utilisant les liens suivants :
Voici les projets sur lesquels j'ai travaillé récement. Cliquez sur le nom du projet pour plus de détails.
Le défi principal de ce projet consistait à créer un système de gestion de magasins qui pouvait se synchroniser à travers plusieurs succursales. Le système devait pouvoir fonctionner même si la connection internet du magasin n'était pas disponnible, mais être synchronisé en temps réel quand elle l'était.
La solution que nous avons choisie consiste à installer un service Windows sur un serveur dans chacune des succursale, et de les faire communiquer via des messages envoyés à travers des queues MSMQ.
Le coeur du projet est son système de membres. Un client peut décider de s'inscrire et ainsi obtenir des dollars bonis lors de ses achats. De plus, il peut référrer d'autres membres et ainsi recevoir des bonis additionnels pour leurs achats. Les dollars bonis peuvent être utilisés dans tous les magasins reliés au système.
Un autre besoin était que nous devions être en mesure de faire des mises à jours des logiciels de gestion et de points de service très rapidement. Étant donné que les logiciels sont déployés sur de nombreux ordinateurs, à des endroits différents, il était impensable de faire les mises à jour manuellement pour chaque ordinateur. Nous avons donc utilisé la technologie Click Once, de Microsoft. Ainsi, pour faire une mise à jour, il suffit de publier une nouvelle version depuis Visual Studio.
Finalement, nous avions besoin d'être informé si une partie du système encontrait un problème. Nous avons développé un système modulaire nous permettant de surveiller l'état des composantes clés du système. Ainsi, dès qu'une anomalie est détectée, nous en sommes informé par courriel. Le système est conçu de façon à pouvoir surveiller plusieurs ordinateurs à partir d'un point central.
Ce site, destiné au publique, a pour but d'offrir un service gratuit de partage de photos d'évenements. Une personne qui se présente à un évenement (spectacle de musique, évenement sportif, festival, etc.) et qui prend des photos peut les envoyer sur le site afin de les rendre disponnibles à tous. Un visiteur du site verra d'abord les nouveaux évenements qui ont été créés, ainsi que les évenements récents et à venir. Il peut chercher un évenement particulier dans un calendrier, ou encore faire une recherche par mots clés.
Le défi principal de ce projet était de faire en sorte que le contenu inaproprié puisse être filtré efficacement, sans demander une énorme charge de gestion de la part des administrateurs. La solution implantée est un système de votes basé sur la crédibilité des membres. Chaque photo envoyée doit être approuvée par les membres du site avant d'être visible à tous.
Pour qu'une photo soit approuvée, elle doit recevoir un certain nombre de points. Chaque vote rapporte un nombre de points relatif à la crédibilité du membre. Le nombre de points nécessaire est également déterminé selon la crédibilité du membre qui l'a envoyée. Cette crédibilité est établie selon l'historique du membre. Ainsi, un membre qui vote presque toujours correctement sur les photos (c'est à dire, qui vote pour les photos qui finissent par être approuvées, et contre les photos qui sont rejetées) gagnera de la crédibilité et ainsi du poids sur son vote. À l'inverse, un membre qui vote de façon inconsistante au résultat verra ses votes ignorés.
Une autre fonctionnalité de ce service est d'offrir l'information EXIF des photos. Pour chaque photo envoyée, cette information est extraite du fichier et est stockée dans la base de données. L'information peut par la suite être affichée lorsqu'un visiteur parcours les photos.
Une des caractéristiques importante du site est que la majorité des fonctionnalités sont disponnibles même sur les navigateurs ne supportant pas Javascript. Le site a été développé de façon à utiliser le moins de scripts possible. Nous avons ensuite ajouté des scripts en prenant soin de garder le tout fonctionnel dans les cas où les scripts ne serraient pas exécutés.
Malheureusement, j'ai dû quitter la compagnie pour laquelle je développais ce projet avant qu'il ne soit terminé. Toutes les fonctionnalités décrites ici étaient implémentées, et il ne restait que quelques détails mineurs à régler.