Professional profile
Title - Software Architect
Expertise - Object-Oriented architecture, Natural language processing, Knowledge representation
Experience - Total 16 years
Research skills
- Representation systems for hypertext technologies
- Algorithms and Object-Oriented architecture (UML and Design Patterns)
- Formal models of natural languages
Technical skills
- Object-Oriented languages: , , , , , ...
- technologies: , , , object marshalling, , , ...
- Web development frameworks: , , , , , ...
- : , , ...
- Database technologies (XML, OO, or relational): , , , , , , , , ...
- Platform-independent graphical user interfaces (, others.)
- Agent-based programming (, , )
- Natural speech application design ()
- Operating systems: , , , ,
Consultancy
- Web site deployment ()
- Prototype for dynamic database query ()
- Database design and implementation of the event calendar and schedule application ()
- Work on the web-scraping for e-Petitions in the Back-End web engine (, )
Closer Look - Search engine that identifies data in web databases
- Proof of concept for identification of web page structures based on XPaths for data mining (, )
Professional experience
| 2007 - 2008 |
Software Developer |
Google |
Undisclosed project
- General development ( server, client)
- Design and implementation of extensions to the communication protocol
- Gained experience with both Google-specific and open-source tools and development methods.
- Client-server protocols with
- Internal tools for distributed process management, interprocess communication
- Test-driven programming with /
- Code reviews with Mondrian and
- Templates and
- Contributed to internationalization infrastructure ()
DistriBistro - Palm-based wireless ordering system for restaurants
- Requirements, UI design and architecture
- Peer-to-peer communication architecture
- Prototype completed (.) We decided not to proceed with production.
Speak@Ease Messager - Speech-enabled Unifed Messaging
- Initial architecture draft
- Advanced natural-language dialogue designs using pronoun reference
- Integration with Microsoft Exchange 2000 using CDO objects through XML
- Other components : web back-end (), upgrades, inter-process messaging
| 1999 - 2000 |
Software Architect |
Logiciels Panteor inc. |
Translateor - Automatic translation system for English and French (project)
- Developed a robust meta-data architecture using XML for storage of linguistic information in an object-oriented database
- Participated in the development of a OO model for abstract semantic representation of text (, )
| 1997 - 1998 |
Advisor |
Centre de Recherche Informatique de Montréal (CRIM) |
Giza - OO architecture for polymorphic representation of structured data using contextual, dynamic attributes
- Conception and programming () of a new Design Pattern
- Approach was published at OOPSLA
| 1997 |
Senior Research Agent |
CRIM, for Bunyip |
Radio Insite - Dynamic HTML page generator for logs of CBC radio shows.
- Programming () of a log file parser that adjusts to a meta-data file and stores the results in HTML templates
| 1996 - 1997 |
Senior Research Agent |
CRIM |
UKAT - Web interface to a knowledge assessment tool.
- Architecture and programming () of a HTML template-based system
| 1995 - 1996 |
Senior Research Agent |
CRIM |
Francoroute - Prototype of a classification system for francophone Internet sites
- Team coordination, architecture and programming (, , ) of one of the first hybrid web search engines (using both keyword search and category classification), based on the Cheops approach
- Programming ( and ) of a web spider that explored French sites
- Programming () of a web-based site classification tool based on Dewey
| 1995 - 1996 |
Senior Research Agent |
CRIM |
CHEOPS - A navigation tool for hierarchical data
- Programming () of a unique data navigation tool based on visual elision
Lys - Multilingual mail agent
- Architecture and programming (, ) of a Unicode-based mail agent able to handle Arabic, Chinese, Japanese and Korean scripts using font composition
Le Correcteur 101 v.2.0- French grammar analyzer and checker
- Team coordination between linguists and programmers, research in computational linguistics, algorithms, programming in
- Awards won by the software (version 1.0 or 2.0):
- 1993, Prix Octas, from the Fédération d'Informatique du Québec
- 1994, Prix du Français en Informatique, from GIRICO
| 1991 - 1992 |
Programmer |
Les Logiciels Machina Sapiens inc. |
Le Correcteur 101 v1.0b - French grammar analyzer and checker
- First grammar checker of the industry to do global parsing of French syntax
- Design and programming () of the user interface on a platform-independent framework
| 1988 |
Research Assistant |
Montreal General Hospital |
Real-time neurobiology data acquisition system
- Reengineering (Vector Basic) of a graph display system
| 1986 |
Programmer |
O.C.C. Informatique, for National Bank |
FéER estimate software
- Programming () of an iterative analysis method
- Graphical user interface on a text-based display
| 1984 |
Programmer |
La société Québit logiciel inc. |
Méga-Texte - word processor for primary school students
- Design and programming () of a graphic-display based word processor on the Apple II+
| 1982 |
Programmer |
Société Logidisque enr. |
Têtards - Labyrinth-type two-player video game
- Programming ( on Apple II+)
- First video game designed in Québec
Education and awards
| 2002 - 2006 |
M.Sc in Systems Science |
Ottawa University |
- First recipient of a departmental bursary in 2003
- Thesis: Construction des normes, entre stratégie et communication: un cas de négociation collective. (Construction of norms, between strategy and communication: a case of collective negociation.)
| 1989 - 1990 |
Qualifying year in Mathematics |
McGill University |
- Scholarship from F.C.A.R. for a Masters' degree
| 1986 - 1989 |
B.Sc. Joint faculty program in Biology and Mathematics |
McGill University |
| 1983 |
Québec Mathematics Competition |
Québec Mathematics Association |
- Mention for the secondary V competition
Teaching experience
| 2003 |
Teaching Assistant |
University of Ottawa |
Economic Systems Design (SYS5140)
Designed and presented an introduction to agent-based programming
| 2002 |
Teaching Assistant |
University of Ottawa |
Concepts des langages de programmation (CSI3525)
Participated to the design of laboratory demonstration and problems
| 1994 - 1995 |
Instructor |
CRIM |
Séminaire d'Introduction à l'hypertexte
| 1989 |
Teaching Assistant |
McGill University |
Differential calculus (189-121A)
| 1984 |
Instructor |
Collège Mont-Saint-Louis |
Initiation to Computer Science - evening course
Publications and workshops
Presentation: Outside the box : Tinderbox XML Tools, at the Boston Tinderbox Weekend, 2004
Tech Note: On-the-fly contextual adaptation with the RoleAdapter Pattern, in Proceedings of OOPSLA'98 (Vancouver BC, 1998), ACM Press
Demonstration : 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
Report: état des technologies de stockage d'objets en Java, CRIM, 1997
Presentation: GIZA :
A framework for visualization, by Marc-Antoine Parent and Louis Vroomen, in the workshop:
Graphical User Interfaces for Hierarchies
(Human-Computer Interaction Laboratory, University Of Maryland, 1997)
Article: Cheops: A Compact Explorer For Complex Hierarchies, by Luc Beaudoin, Marc-Antoine Parent and Louis Vroomen, in Visualization '96, San Francisco, USA, Oct 1996, pp. 87-92
Article: Font Selection and Font Composition for Unicode, by Martin J. Dürst and Marc-Antoine Parent, in Proceedings of the Seventh Unicode Conference, San Jose, CA, 1995
Languages
Fluent in spoken and written French and English
Basic level of reading and speaking Italian and Portuguese
Interests
My path can be described as a gradual shift of interest from individual to collective cognition processes. After studies in neurobiology and mathematical logic, and after a career in computational linguistics and data visualization, I am now focusing on how software communication tools can shape and enhance group processes, so diverse groups can achieve a common purpose.
To support this, I have experimented with a diverse set of software tools: content management systems, wikis, blogs, real-time collaborative editors, social software... I am also working on new methods that interweave text with more formal representations of human thought. But beyond tools, during my studies in systems science, I have analysed how issues of trust, face and justification affect communication, and how specific communication processes can be designed in a way that helps alleviate those issues.