Profil professionnel
Titre - Architecte logiciel
Expertise - Architecture Orientée Objet, Traitement des langues naturelles, représentation des connaissances, travail collaboratif
Expérience - Total de 35 ans
Aptitudes de recherche
- Systèmes de représentation pour les technologies hypertexte
- Algorithmes et architecture Orientée Objet (UML et Design Patterns)
- Modèles formels des langues naturelles
Aptitudes techniques
- Langages Orientés Objet: Python, JavaScript, Java, Typescript, C++, Perl 5, C#, ...
- Technologies XML: XSLT, XML-RPC, RNG, sérialisation d'objets, GXL, SVG, ...
- Engins de développement Web: Pyramid, Django, Plone, Apache Turbine, Cocoon, TWiki, ...
- Développement Web: Marionette, D3, Bluebird, jQuery, Annotator, Underscore, Chai, ...
- Technologies de bases de données (Sémantiques, graphes, XML, OO ou relationnelles): SQLAlchemy, Virtuoso, Tinkerpop, Jena, SPARQL, RDFLib, SQL, Oracle, ObjectStore, LDAP, eXist, XMLDB, XUpdate, XQuery, ...
- Interfaces utilisateur indépendantes de la plateforme (wxWidgets...)
- Systèmes de programmations par agents (Swarm, RePast, AScape)
- Conception des interfaces vocales (Nuance Speech Objects)
- Systèmes d'exploitation: MacOS X, Solaris, Mac OS, Linux, Windows NT, XP
Travail de consultant
2012-2013 | Cancer Science Institute, National University of Singapore |
- Outil de visualisation d'intéraction génomique basé sur la distortion (D3, Typescript)
2009 | RealWorld Systems |
- Déployment de site web (Plone)
- Prototype pour une requête de base de données dynamique (jQuery)
2007 | Centre Shambhala d'Ottawa |
- Conception de la base de données et mise en place d'une application pour le calendrier et l'horaire (Django)
2005 - 2006 | OpenConcept |
2003-2005 | Goa Technologies |
Closer Look - Engin d'extraction de données à partir de pages web
Expérience Professionnelle
2016 - | Président | Conversence |
- Développement de IdeaLoom, une plateforme d'intelligence collective basée sur Assembl. De la vision du produit au design, à l'architecture et à l'implantation.
- Architecture (en cours) pour HyperKnowledge, un protocole de nouvelle génération, à base d'événements, pour un écosystème de graphes de connaissances multi-perspectives
2013 - 2016 | Responsable R&D intelligence collective | Bluenove |
Rôle de Recherche et développement pour Assembl, un outil d'intelligence collective. Assembl a été développé en partie dans le cadre du projet Catalyst par Bluenove et Imagination for People, avec des contributions initiales de Caravan et l'Institut du Nouvau Monde.
- Co-développé (avec Benoit Grégoire) la majeure partie du modèle de données et de l'architecture d'information.
- Développé l'infrastructure d'interopérabilité dans le cadre du projet Catalyst, basé sur une ontologie OWL, avec des liens vers d'autres ontologies telles SIOC, OpenAnnotation et AIF.
- Développé un pont entre l'ORM (SQLAlchemy), et le pont relationnel-sémantique de Virtuoso, afin de synchroniser trois modèles de données (relationnel-OO-sémantique: voir article)
- Développé une couche REST générique basée sur la traversée des liens relationnels de l'ORM.
- Développé une couche de synchronisation client-serveur en temps réel basé sur les Websockets.
- Développé le modèle de sécurité et la couche d'authentification.
- Développé en grande partie le modèle de synchronisation à des sources de données externes.
- Développement général de l'application.
- Aide aux partenaires Catalyst pour l'interopérabilité: Contributions à Edgesense de Wikitalia, aide pour DebateHub du Knowledge Media Institute (Open University), et pour l'engin de métriques d'intelligence collective de Mark Klein du MIT.
2010 - 2015 | Chargé de projet pour le secrétariat technologique | GTN-Québec. |
Support à la communauté des technologies d'information et de communication en éducation pour l'utilisation les standards
- Contribué à l'évolution de la plateforme Eureka, un catalogue de métadonnées sur les ressources d'enseignement et d'apprentissage.
- Conseillé DECclic quant à l'emploi de standards pour l'évolution de leur plateforme de cours en ligne
- Vérifié l'applicabilité de IMS-QTI 2.1 comme format de données cible pour des données venant de ExamStudio
- Vérifié que la plateforme Moodle pouvait supporter des questionnaires QTI, grâce à la passerelle de QTItools
- Recommandé l'emploi de technologies libres hétérogènes: gadgets, identité distribuée, collaboration, etc. pour éviter l'enfermement dans une plateforme unique
- Mise à jour du validateur de Normetic (Java, Schematron, XSD)
- Assisté à la réflexion sur le modèle conceptuel du standard MLR
- Responsable de la section Normetic du site du GTN-Québec
2007 - 2008 | Développeur logiciel |
Projet non révélé
- Développement général (serveur Java, client C++)
- Conception et réalisation d'extensions au protocoles de communications
- Acquis de l'expérience avec des outils et méthodes de développement libres ou spécifiques à Google.
- Protocoles client-serveur avec Protocol buffers
- Outils internes de gestion des processus distribués et de communication inter-processus
- Développement piloté par les tests avec jUnit/GoogleTest
- Revues de code avec Mondrian et Perforce
- Templates et STL
- SQLite
- SCons
- Contribué à l'infrastructure d'internationalisation (Python)
2003 - 2004 | Architecte logiciel et Développeur | HandCastles inc. |
DistriBistro - Système de commande sans fil pour restaurants, sur Palm
- Spécifications des besoins, conception de l'interface et architecture
- Architecture de communication d'égal à égal
- Prototype complété (SuperWaba.) Nous avons décidé de ne pas passer en production.
2000 - 2001 | Architecte logiciel et Développeur | Mitel Networks inc. |
Speak@Ease Messager - Messagerie unifiée à commande vocale
1999 - 2000 | Architecte logiciel | Logiciels Panteor inc. |
Translateor - Système de traduction automatique pour l'anglais et le français (projet)
1997 - 1998 | Conseiller | Centre de Recherche Informatique de Montréal (CRIM) |
Giza - Architecture OO pour la représentation polymorphe de données structurées à l'aide d'attributs contextuels dynamiques
- Conception et programmation (Java) d'un nouveau Motif Logiciel
- L'approche a été publiée à OOPSLA
1997 | Agent de recherche senior | CRIM, pour Bunyip |
Radio Insite - Générateur de pages HTML dynamiques pour les comptes rendus des émissions de radio de la CBC.
- Programmation (Perl5) d'un parseur de fichier log, qui s'ajuste à un fichier de méta données et met les données en forme dans des gabarits HTML
1996 - 1997 | Agent de recherche senior | CRIM |
GAA - Interface Web pour un Guide d'Auto-Apprentissage
- Architecture et programmation (C++) d'un système de gabarits HTML
1995 - 1996 | Agent de recherche senior | CRIM |
Francoroute - Prototype d'un système de classification des sites internet francophones
- Coordination de l'équipe, architecture et programmation (Java, Perl5, Oracle) of un des premiers engins de recherche hybrides sur le Web (utilisant à la fois la classification par catégories et la recherche par mots-clefs), basé sur l'approche Cheops
- Programmation (Perl5 et Oracle) d'un robot Web qui identifiait et explorait les sites francophones
- Programmation (Perl5) d'un outil de classification (à interface Web) pour les sites Web, basé sur la classification de Dewey
1995 - 1996 | Agent de recherche senior | CRIM |
CHEOPS - Un outil de navigation pour des données hiérarchiques
- Programmation (Java) d'un outil de navigation unique basé sur l'élision visuelle
1994 - 1995 | Agent de recherche | CRIM, pour Alis technologies |
Lys - Client de courriel multilingue
1992 - 1994 | Analyste | Les Logiciels Machina Sapiens inc. |
Le Correcteur 101 v.2.0 - Correcteur grammatical du français
- Coordination de l'équipe entre linguistes et programmeurs, recherche en linguistique computationnelle, algorithmes, programmation en C++
- Prix octroyés au logiciel (version 1.0 ou 2.0):
- 1993, Prix Octas, de la Fédération d'Informatique du Québec
- 1994, Prix du Français en Informatique du GIRICO
1991 - 1992 | Programmeur | Les Logiciels Machina Sapiens inc. |
Le Correcteur 101 v1.0b - Correcteur grammatical du français
- Premier correcteur grammatical de l'industrie à traiter la syntaxe globale de la phrase française
- Conception et programmation (C++) de l'interface utilisateur sur un canevas logiciel indépendant de la plateforme
1988 | Assistant de Recherche | Hôpital Général de Montréal |
Système d'acquisition de données neurobiologiques en temps réel
- Réingénierie (Vector Basic) d'un système de visualisation de graphes
1986 | Programmeur | O.C.C. Informatique, pour la Banque Nationale |
Logiciel d'estimé de FÉER
- Programmation (MS-Basic) d'une méthode d'analyse itérative
- Interface utilisateur graphique sur un écran textuel
1984 | Programmeur | La société Québit logiciel inc. |
Méga-Texte - traitement de texte pour les élèves du primaire
- Conception et programmation (6502) d'un traitement de texte avec graphiques évolués sur Apple II+
1982 | Programmeur | Société Logidisque enr. |
Têtards - Jeu vidéo à deux joueurs, de type labyrinthe
- Programmation (6502 sur Apple II+)
- Premier jeu vidéo conçu et réalisé au Québec
Études et bourses
Déc 2008 | Certification comme praticien | Cognitive Edge |
2002 - 2006 | M.Sc. en Science des Systèmes | Université d'Ottawa |
- Premier récipiendaire d'une bourse départementale en 2003
- Mémoire: Construction des normes, entre stratégie et communication: un cas de négociation collective.
1989 - 1990 | Propédeutique en Mathématiques | Université McGill |
- Bourse du F.C.A.R. pour une maîtrise
1986 - 1989 | B.Sc. Programme de faculté conjoint en Biologie et Mathématiques | Université McGill |
- Grande Distinction
1983 | Compétition de mathématique | Association Mathématique du Québec |
- Mention pour la compétition de secondaire V
Expérience d'enseignement
2003 | Assistant d'enseignement | Université d'Ottawa |
Economic Systems Design (SYS5140)
Conçu et présenté une introduction à la programmation par agents
2002 | Assistant d'enseignement | Université d'Ottawa |
Concepts des langages de programmation (CSI3525)
Participé à la conception des laboratoires et exercices
1994 - 1995 | Instructor | CRIM |
Séminaire d'Introduction à l'hypertexte
1989 | Assistant d'enseignement | Université McGill |
Differential calculus (189-121A)
1984 | Instructeur | Collège Mont-Saint-Louis |
Initiation à l'informatique - cours du soir
Publications et ateliers
Rapport: Harnessing the Power of Collective Intelligence: Communities & Technologies, Collectif, rapport final du projet Catalyst, Novembre 2015
Rapport: Project Testbed: Argument Mapping & Deliberation Analytics, Marc-Antoine Parent, Anna de Liddo, Mark Klein, Thomas Ullman, dans le cadre du projet Catalyst, Novembre 2015
Poster: Objects as results from graph queries using an ORM and generated semantic-relational binding Présenté lors de la 13ème International Semantic Web Conference, 19-23 octobre 2014, Riva del Garda, Italie; proceedings chez Springer, Suisse, 2014. Poster.
Rapport: Architecture and Cross-Platform Interoperability Specification, Marc-Antoine Parent et Benoit Grégoire, dans le cadre du projet Catalyst, Mars 2014
Présentation: Outside the box : Tinderbox XML Tools, lors de la fin de semaine Tinderbox à Boston, 2004
Tech Note: On-the-fly contextual adaptation with the RoleAdapter Pattern, in Proceedings of OOPSLA'98 (Vancouver BC, 1998), ACM Press
Démonstration : Applications of the RoleAdapter Pattern: Representing class inheritance and aggregation hierarchies with the Giza framework, in Proceedings of OOPSLA'98 (Vancouver BC, 1998), ACM Press
Rapport: État des technologies de stockage d'objets en Java, CRIM, 1997
Présentation: GIZA : A framework for visualization, par Marc-Antoine Parent et Louis Vroomen, comptes rendus de Graphical User Interfaces for Hierarchies (Human-Computer Interaction Laboratory, University Of Maryland, 1997)
Article: Cheops: A Compact Explorer For Complex Hierarchies, par Luc Beaudoin, Marc-Antoine Parent et Louis Vroomen, in Visualization '96, San Francisco, USA, Oct 1996, pp. 87-92
Article: Font Selection and Font Composition for Unicode, par Martin J. Dürst et Marc-Antoine Parent, in Proceedings of the Seventh Unicode Conference, San Jose, CA, 1995
Langues parlées et écrites
Excellente maîtrise du français et de l'anglais parlés et écrits
Compréhension de base de l'italien et du portugais
Intérêts
Mon cheminement peut s'énoncer comme un déplacement graduel d'un intérêt pour les processus de cognition individuelle vers les processus collectifs. Après des études en neurobiologie et en logique mathématique, et après une carrière en linguistique computationnelle et en représentation de l'information, je me concentre maintenant sur la façon dont les outils de communication peuvent former et enrichir la dynamique des groupes, de façon à aider des groupes diversifier à se doter d'objectifs communs.
Afin de supporter cet objectif, j'ai expérimenté avec un ensemble d'outils logiciels variés: systèmes de gestion du contenu, wikis, carnets web, éditeurs collaboratifs en temps réel, logiciel relationnel (social software)... Je travaille également sur de nouvelles méthodes qui entrelacent texte et représentations formelles de la pensée. Mais, au-delà des outils, lors de mes études en science des systèmes, j'ai analysé comment les questions de confiance, de face et de justification affectent la communication, et comment des processus de communication peuvent être conçus spécifiquement de façon à minimiser ces impacts.