| 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 |
| 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 XSoftware 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 XSoftware 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, LinuxBackend 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 XOne 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, AntDesign, 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 ServerDesign, 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, DOSSOn 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, xCoopResponsible 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.
- 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
- MSc in Computer Science (Design Patterns in C++ for Network Management)
- BSc in Computer Science
- University of Montréal (Montréal, Canada)
| 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.