Jean Tessier    
Software craftsman with experience in agile practices and Java development of large scale web-based applications, looking for agile team doing Grails, Java or Ruby.

Test-Driven Development Java Servlet / JSP / WebWork
Pair Programming Groovy / Grails HTML / HTTP
Object-Oriented Ruby / RSpec XML / XSLT
Design Patterns Shell Scripts / Perl JDBC / email

Work Experience

INSIDR (San Francisco, CA) 12/2010 - present

Co-Founder & Lead Software Engineer
Keywords Groovy, Grails, Spring Security, Git, MySQL, LiquiBase, Scrum, Test-Driven Development, Estimation Poker, Jenkins, Amazon EC2, MacOS X

Software developer in an early stage startup (2 co-founders and me). Develop backend, middle layer, and front-end software for features of the user-facing site at INSIDR.net, such as user management including Facebook Single Sign-On integration, user commenting, event notifications, and tips & tricks. All development done in 2-week sprints using Scrum and TDD.

ShopWell Solutions Inc. (Palo Alto, CA) 10/2009 - 11/2010

Software Engineer
Keywords Groovy, Grails, Solr, Spring Security, Git, Subversion, MySQL, LiquiBase, Scrum, Test-Driven Development, Estimation Poker, Hudson, Amazon EC2, MacOS X

Software developer in an early stage startup (employee #3). Develop backend and middle layer software for features of the user-facing site at ShopWell.com, such as user management, tagging, food ingredient analysis logic, early Solr integration, and Facebook Single Sign-On integration. All development done in TDD and on 2-week sprints using Scrum. Early experimentation with Google Website Optimizer for A/B testing.

Google Inc. (Mountain View, CA) 08/2005 - 10/2009

Software Engineer
Keywords Test-Driven Development, Pair Programming, Estimation Poker, Java, Guice, WebWork, jWebUnit, Selenium, Perforce, Git, Ruby, RSpec, Python, Sawzall, MapReduce, MySQL, Linux

Backend developer on Google Apps' business offering, integrating distributed services using Google-proprietary asynchronous RPC technology.

Agile coach on many Java-based projects (Calendar, Docs, Orkut, AdSense). Coach teams on making developers more productive. Help refactor the code for maintainability and testability. Improve continuous build systems. Give training on code quality, including public articles on jMock and Guice.

Front-end developer on Google Base. Design, implement, and maintain a reporting feature for publishers resulting in 20% increase in dashboard views. Provide overall production support. Implement spot improvements for the main search front-end server. Mentor one summer intern in 2006 and one in 2007.

LinkedIn Corp. (Palo Alto, CA) 08/2004 - 08/2005

Senior Software Engineer
Keywords TDD, Java, JSP, XML, HtmlUnit, MaxQ, CVS, Oracle, XeriL, MacOS X

One of five developers of the software the company uses to run its public website. Most development items require code in the presentation layer as well as the business logic and persistence layers, and appropriate unit and acceptance tests. Short release cycles.

Dependency Finder (dependencyfinder.jeantessier.com) 01/2001 - present

Principal
Keywords Test-Driven Development, Design Patterns, Java, JSP, XML, XSLT, Subversion, Git, SourceForge, Ant

Design, implement, and maintain an analytical library in Java to inspect compiled Java code for dependencies, API evolution, and OO metrics. Support multiple presentation modes: command-line, GUI, Ant tasks, and web application. Software Development magazine listed Dependency Finder as one of ten open source projects to watch in 2004.

Vignette Corp. (San Francisco, CA) 12/2002 - 07/2004
Epicentric, Inc. (San Francisco, CA) (acquired by Vignette Corp.) 05/2000 - 12/2002

Software Architect
Keywords TDD, Pair Programming, Design Patterns, Java, JDBC, Servlets, JSP, XML, XSLT, UML, JRun, Tomcat, Oracle, SQL Server

Design, implement, and maintain core features of the Vignette Portal Server product. These features deal with scalability, clustering, and persistence of resources in the portal.

Project lead for reengineering of in-memory cache resulting in simpler design, plugin architecture, configurable and extensible caching behavior, and improved performance (test-driven development, iterative development, iteration planning game, 10 man-months). A 33% workforce reduction halfway and high interruption rate meant it was delivered on time but with reduced scope.

Lead developer for reengineering of hierarchical file system in relational database resulting in simpler design and improved performance (test-driven development, pair programming, planning, stand-up meetings, 20 man-months).

Lead developer for portal import/export feature to aggregate, serialize, parse, and recreate portal resources between installations (test-driven development, pair programming, planning, stand-up meetings, 12 man-months). US patent 7,293,070.

Lead developer for resource aggregration management in portal server (test-driven development, pair programming, planning, 10 man-months).

AT&T (Menlo Park, CA) 01/1999 - 05/2000
AT&T (Holmdel, NJ) 11/1995 - 12/1998

Senior Technical Staff Member
Keywords Design Patterns, Java, Servlets, SDS, Parlay, RMI, HTML, HTTP, CGI, Perl, Yados, CORBA, C++, Netscape Servers, Oracle, IRIX, 5ESS, CPDL, DOSS

On project "Unified Alerting", was key to the analysis, design, and implementation of a scalable real-time notification system for user communications. Also participated in an international, multi-corporation demo with the Parlay Consortium and mentored a summer intern.

On project "Click AT&T" (B2C E-Commerce), analyze, design, implement, and maintain all aspects of a distributed system for B2C E-Commerce, including core systems, user interfaces, and testing tools. Developed a distributed object prototyping platform in Perl. Mentor summer interns and new team members. US patent 6,047,268.

Téléglobe Canada Inc. (Montréal, Canada) 01/1993 - 10/1995

Contractor
Keywords Design Patterns, C++, Messaging, CMIS, ATM, Layla, xCoop

Responsible for analysis, design, and implementation of a C++ framework for OSI network management interfaces (X.700).

Editor of a standard on logging information, as part of the X.400 suite of standards on OSI email. Canada's delegate to ISO/IEC JTC 1/SC 18/WG 4 and ITU-T SG7 Q14 on OSI email.


Publications

Two-Stage Guice Provider
jeantessier.com, January 28, 2009
Mocking in Java: jMock vs. EasyMock
jeantessier.com, May 29, 2008
Method and system for deploying web components between portals in a portal framework
Moses, Petersen, Harbaugh, Chaston, Åkesson, Shue, Chauhan, Tessier
U.S. Patent No. 7,293,070, November 6, 2007
Method and apparatus for billing for transactions conducted over the internet
Bartoli, Griesmer, Lidor, Ronen, Tessier
U.S. Patent No. 6,047,268, April 4, 2000
Layla: Network Management Interfaces Framework
R. K. Keller, J. Tessier
Sidebar in Domain-Specific Application Frameworks, M. E. Fayad & R. E. Johnson, Wiley, 2000, pp 489-490
A Pattern System for Network Management Interfaces
R. K. Keller, J. Tessier, G. von Bochmann
Communications of the ACM, Sept. 1998, Vol. 41 No. 9

Education

MSc in Computer Science (Design Patterns in C++ for Network Management)
BSc in Computer Science
University of Montréal (Montréal, Canada)

Other Work

University of Montréal 05/1990 - 06/1995
Dept. of Computer Science
Assistant system administrator of UNIX network. Intern in the VLSI Laboratory programming CAD applications. Teaching assistant for Data Structures class and Operating System Theory class, both undergraduate classes with close to 100 students. Secretary (junior year) and president (senior year) of the student body.
Dept. of Classical & Medieval Studies
"Map of Paris In The XIVth Century": in a team of two, handled all information technology-related aspects of hypermedia software to help teachers of medieval studies present the city of Paris in the XIVth Century.