Experience leading project teams in all phases from inception to release.
|Server:||Linux, AWS, Node.js, Apache, JSON, XML, HTTP, RESTful APIs, J2EE, Oracle, MySQL, MongoDB/DynamoDB|
|Mobile:||iOS, Android, Symbian, PalmOS|
|Desktop:||Many years of developing desktop applications using modern development tools and frameworks|
|Adobe Systems, Inc., San Jose, CA||November 2004 - present|
Project Lead, Innovation Team - I was selected to lead a small group of talented engineers to advance the company's efforts in developing entirely new product ideas. We were given complete autonomy in technology selection with the primary goal of creating a lean and agile team capable of responding rapidly to user feedback through the use of analytics. We started with Lean Startup principles and have refined our processes to create a balance of speed, agility and robust development practices. We've proven we can build large scale online services faster than the company has been capable of in the past.
FormsCentral Product Senior Engineer - Joined the company's new online forms team to add my server and distributed application development experience and help expand the product's reach. Instituted detailed, real-time usage monitoring to facilitate more informed business decisions; implemented the all-new PayPal payments feature for collecting money from forms submitters; assisted in the effort to integrate the team's desktop forms application with the online product.
Acrobat Product Senior Engineer - Made signifcant contributions to three successive Acrobat product releases, including an entirely new synchronization feature to facilitate distributed, asynchronous document reviews; web services integration between the desktop application and Acrobat.com, the company's online document service; architectural reviews and detailed code analyses aimed at improving application performance and addressing critical customer issues.
Intelligent Documents Senior Engineer - Hired on to a new team and tasked with developing a web services API and implementation for a new product aimed at satisfying an emerging market demand for documents that combine information and interactivity. Used my server development experience to configure a web services server with an XML-based protocol for accessing a relational database, along with client implementations to demonstrate sample products like smart statements and interactive forms.
|VerdiSoft Corp., Palo Alto, CA||June 2002 - November 2004|
Server Lead, Protocol Team - Hired to lead a team responsible for designing and building server side components in company's J2EE product for handling communication between client devices and back end server systems. Built comprehensive XML handling and data transcoding libraries for managing core requirements of the protocol components. Played an instrumental role in the design and implementation of the company's second generation server. Also responsible for mentoring younger engineers as well as creating and maintaining project schedules with extremely aggressive timelines. Worked closely with team in Hamburg, Germany during design, implementation and product roll-out phases. Acted as primary technical contact for third party partner companies.
|fusionOne, Inc., San Jose, CA||November 1999 - June 2002|
SyncML Program Manager - Promoted to software architect and program manager as part of a company restructuring that moved development work overseas. Tasked with managing a group of offsite engineers while interfacing more directly with product marketing and upper management. Wrote requirements documents and functional specifications, developed and maintained project schedules, tracked and reported project status. Continued role as company representative in SyncML standards body.
Senior Software Engineer, SyncML Team Lead - Responsible for researching and planning company involvement in SyncML, an open standard, XML-based synchronization technology. Designed and built SyncML server demonstration in two months for exhibition at the first public SyncML event in May, 2000. Continued as team lead for company's SyncML server product, worked with third party developers to ensure highest level of interoperability, and attended industry conferences for specifications development and conformance certification. Developed an automated verification test tool for ensuring conformance to SyncML protocol specification. Chair elect for SyncML Object Expert Group, responsible for coordinating solutions to interoperability issues.
Senior Software Engineer, Devices Team - Hired to develop company's Palm synchronization product, which included a device application, desktop conduit and server component. Led work on all three through release of device application and desktop conduit, then shifted full-time to server development. Developed cross-platform database access framework for use in the device application and desktop conduit. Assisted sync architecture team in researching difficult sync problems posed by Palm database design.
|Claris Corp./FileMaker, Inc., Santa Clara, CA||January 1995 - November 1999|
Senior Software Engineer, Team Lead for Database Design and Connectivity - Led a small team of engineers in adding key features to FileMaker Pro 5.0, a major product release. Features included data entry aids, new database views and database administration enhancements. Responsible for maintaining schedules, monitoring bugs and implementation duties as well as assisting other engineers in design and implementation issues. Instigated work on an HTML import feature to parse data in tables as well as use regular expressions for highly flexible data selection.
Senior Software Engineer, Engineering Lead for ODBC Connectivity Project - Designed and implemented ODBC import feature that was the basis for the FileMaker Pro 4.1 release. Worked closely with marketing, the interface design group and the software quality assurance team to deliver a stable, cross-platform ODBC solution on time. Completion of this project led to promotion to team lead position.
Senior Software Engineer, Application Framework Team - Worked on key areas in a large scale, cross platform application framework. Used MFC as the basis for the framework, adding extensions and adapting it to work on secondary platform. Also designed and implemented class hierarchies to support application specific features in a robust, highly maintainable manner. Used lex and yacc to develop an automated, script-based testing engine for verifying stability of framework code.
|Oceania, Inc., Palo Alto, CA||January 1990 - January 1995|
Software Engineer, Object Model Group - Promoted to object model (server) team when decision was made to port company's Computer-based Patient Record product to Windows. Responsibilities included specification of functional requirements and application architecture using C++ for core product modules. Relational database design and implementation with Watcom and Sybase SQL servers, physical DB schemas and logical DB interface classes written in C++. Special attention given to performance and scalability requirements for very large patient information databases.
Software Engineer, UI Lead - Point person for client team in charge of application user interface and functionality of NeXTSTEP product. Used rapid prototyping techniques for investor recruitment demonstrations. Developed object-oriented user interface toolkit for use throughout company products. Played a major role in testing, quality assurance and bug-tracking efforts prior to product go-live. Succesfully architected, from database to user interface, "structured sentence building and direct editing" system for clinical knowledge representation (patent pending). Completion of this key product area led to promotion to server team.
Bachelors of Science degree in Cognitive Science (AI)
University of California, San Diego (1990)
Available upon request.