Product Architect, Principal Engineer2018 - PRESENTCasetext
- Contributed as a senior full-stack developer in an extremely fast-paced startup environment, mentoring other developers, interfacing with the data science team and other groups, and increasing technical responsibilities.
- Collaborated with a team to port the flagship casetext.com application from AngularJS to Angular 3, including significant rewrites and additional features.
- Added UI-facing features for mobile and desktop browsers: complex document uploads, multi-faceted auto-complete, an API for managing court dockets, key passages, user highlighting, user notes, search-within document, and show similar issues.
- Played a key role in developing Casetext’s second major product, a SPA and MS Word add-in running on office.com and desktops. Solo features included search results, WYSIWYG content to .docx, and SSO to SAML2/ADFS identity providers via Passport-SAML.
- Created the back-office integration with Pipedrive CRM.
- Proved out the productivity of remote development as the first work-from-home developer on the applications team, which led to hiring several other remote developers.
Software Architect, Director of Engineering2011 - 2017Planview
- Advanced from a technical leader to the director of a completely distributed team of developers building UI features in Sencha’s Ext JS client library while expanding our multi-tenant, cloud-hosted service to over 500 SaaS customers.
- Hired and managed 13 direct reports and contractors as the engineering team grew from four people writing code to 29 full-time engineers distributed in five US states and four other countries.
- Continued writing code and providing mentoring and technical direction in addition to management duties such as hiring, mentoring, and evaluating team members.
- Oversaw the rollout of countless new features in a variety of capacities: project manager, architect, designer, and developer.
- Helped establish Agile development best-practices such as TDD, continuous integration, monthly release cycles, and code quality standards.
Senior Software Developer2011 - 2011EndPlay
- Functioned remotely and in-person as a senior member of a growing team of developers creating a SaaS web-hosting solution, primarily for media companies with streaming video content.
- Architected EndPlay’s microsite platform and led the development team to implement the corporate website (www.endplay.com) on the new platform.
- Delivered the first implementation of Intelligently Rendered™ content, with tailored experiences for mobile and tablet form factors, including a different embedded high-quality video experience on each device type.
Staff Software Engineer2007 - 2011Autonomy
- Started at Interwoven as a senior member of a distributed development team responsible for enhancements to Interwoven’s enterprise web content management offering. Continued as a technical lead after Interwoven was acquired by Autonomy in 2009.
- Implemented social computing components for incorporating ratings, polling, helpfulness, and other visitor feedback into web pages built in a web-based WYSIWYG page editor.
- Created proof-of-concept integrations from Interwoven LiveSite to various social media and user-generated content partners.
- Assisted in creating the Interwoven Component Guide, an interactive website for showcasing the library of out-of-the-box visual page components.
- Created a RESTful component framework used to access external services. After the Autonomy acquisition, this became the foundation for integrations between Interwoven LiveSite and Autonomy IDOL.
Senior Software Engineer2006 - 2007Bazaarvoice
- Joined as an early-startup senior member of a stellar development team responsible for implementing new product features and scaling a software-based service to keep up with huge growth in customers and overall web traffic.
- Implemented and delivered major product features, end-to-end, while reviewing and mentoring developers on the overseas development team.
- Added support for uploading and linking videos when posting reviews of products sold online. This feature can be seen on Bazaarvoice client sites such as petco.com.
- Designed and implemented Bazaarvoice’s Merit Badging feature to rank/reward frequent contributors of user-generated content (e.g., “Top 1000 Reviewer”). This feature could be seen at most Bazaarvoice client sites such as walmart.com and bestbuy.com.
- Designed and developed Bazaarvoice’s RESTful web service for ratings and reviews, used as an integration API by clients such as dell.com and sears.com.
Senior Software Developer2004 - 2006Infoglide Software
- Introduced software process best-practices and brought senior development experience to the development team. Served as a senior Java developer on the path to a product architect role, providing mentoring and contributing to the hiring process.
- Served as a designer and developer for Secure Flight, the end-to-end software solution for the Department of Homeland Security’s next-generation airline passenger screening system.
- Designed and developed the web user interface for Infoglide’s retail loss prevention product offering, based on an SOA for back-end services. This also included designing an Ajax-enabled web component framework, using the open-source Dojo Toolkit.
- Brought expertise to software design and development in every area of Infoglide’s business: back-end servers, front-end Swing GUIs, traditional web applications, thin-client applets, and Ajax-enabled, cross-browser web applications.
Software Engineer2000 - 2004WhisperWire
Technologies: CVS, TCP, Sockets, Code Architecture, Genetic Algorithms, Python, Catalogs, Technical Hiring, Jini, RMI, Java RMI, Databases, Web Architecture, Applets, XML, JSP, Java
- Progressed from a mid-level Java developer position on a web application software team into a senior/lead role.
- Completely redesigned the web-based maintenance tool for catalog data and led a team of three full-time and five part-time developers to implement it.
- Designed and led the development of a reporting system for analyzing application usage and activity. This included auditing events into a transactional database and then extracting that data into a data warehouse for reporting.
- Designed and implemented an automated process for publishing data from a maintenance system to various runtime systems, using RMI and Jini for seamlessly discovering distributed services.
- Conducted technical interviews and contributed to team hiring decisions.
- Created a facility for handling evolving catalog data in historical quotes.
- Implemented a JSP-based user interface for a Python-based guidance engine for recommending web hosting products.
- Implemented a data network design engine for delivering upgrade recommendations using genetic mutation algorithms and network topology heuristics.
- Implemented a database abstraction layer for persistently storing business objects, a core technology used in all company applications.
- Redesigned and implemented the third version of the core infrastructure for handling page navigation/flow and managing session state, which is still in use for all company applications.
Consultant, Software Developer1995 - 2000JJT Inc.
Technologies: Statistical Analysis, Image Manipulation, SQL, Data Visualization, Statistics, Images, Stream Processing, Microsoft Foundation Class Library (MFC), C++, Robotics, Hardware, Visual SourceSafe, Writing & Editing, APIs, Sockets, TCP Networking, TCP/IP, Databases, Enterprise Java Beans (EJB), MVC Design, Java Digital Image Processing (DIP), Image Processing, HTML, Leadership, Software Architecture, OS/2, IBM Db2, IBM Informix, Microsoft SQL Server, Sybase, Oracle RDBMS, SAS SQL, Base SAS, SAS
- Started as an entry-level SAS consultant and advanced into multiple simultaneous roles as a senior SAS consultant, SAS software developer (SAS/AF and SCL), Java software developer, senior Java consultant, C++ software developer, and project lead.
- Designed and developed a customer profile database GUI client-server application for worldwide use at IBM PC.
- Co-designed JJT's Maestro™, an object-oriented statistical analysis software suite for the SAS System.
- Designed and developed an object-oriented, optimized Metabase system that extracted and joined requested data from multiple databases such as SAS, Oracle, Sybase, SQL Server, Informix, and DB2. Originally implemented in SAS/AF; rewritten in Java.
- Co-developed Convert™, a custom-built digital imaging software suite for professional production environments, built in C++ using Microsoft Foundation Classes (MFC).
- Designed and developed JJT's Opus™, a Java client reporting application for statistical analysis and information visualization.
- Created a secure, internet image publishing system for the National Geographic Society.