Proven track record designing, implementing, and maintaining software that is high throughput, low latency, highly available, and easy to maintain. Creative problem solver that understands the larger business and customer needs.

Yext

Software Consultant, January 2019 – November 2020

Staff Software Engineer, November 2020 – March 2022

  • ElasticSearch / Open Search / Vector Search.  Yext Answers AI / machine learning search features required extensive use of vector search, which Elastic did not support well.  Analyzed various options, discussed pros and cons with stakeholders, and migrated indexing and serving to use Amazon's Open Search, which supported 5 orders of magnitude more vector queries as well as provided richer query options.

  • Query Suggest.  Architect and lead developer on a custom built query autocomplete system for Yext Answers. Indexer merged organic user queries and client supplied prompts. Server was trie-based with an in-memory custom cache. Compared to Elastic Search's autocomplete, this system had significantly lower latency (6ms median, 24ms 99%). This system also handled >10x the QPS of every other Yext system.
    https://engblog.yext.com/post/scaling-query-suggest

  • Spell Check.  Architect and lead developer on a custom spell check algorithm for Yext inspired by Peter Norvig’s paper.  Dictionary used a combination of Wikipedia language data, inferred weightings based on customer data, and customer-specific brand terms.  This provided each of Yext's thousands of customers with a unique spell check experience.  After a successful launch, experimented with more complex algorithms like a symmetric delete language model, custom built dense hash map, multi-threading, and bloom filters in order to get a 10x decrease in latency, 45% reduction in server memory footprint, and small increase in accuracy.

  • Kafka.  Wrote much of Yext's initial Java library code, tools, and load tests for the initial Kafka instance.

  • Mentoring. Taught, supported, and encouraged junior engineers to take ownership of projects.

Google

Senior Software Engineer

July 2005 – November 2017

  • Search Infrastructure.  Analyzed critical path latency that spans Google Search's Super Root, Root, and Leaves.  Refactored legacy code to support cross-request metadata that makes follow-up requests more efficient, and allowed for other teams to use it as well.  Identified ways to reduce critical path latency in a small subset of queries from 294ms to 105ms without impacting quality.

  • FOMO (Fear of Missing Out).  Helped design and implement a high TTL cache system for social data where recency is paramount.  Using Prospective Search (below), this system invalidated cache entries when new data arrived that satisfied the cached query.  This resulted in significant efficiency gains, without any risk of stale data being served by the cache.

  • Prospective Search.  This system was colloquially described as "backwards search".  We started by indexing a very large data set of queries, then for a new document, we efficiently determined which indexed queries would retrieve the document.  The most straightforward use case of this technology was Google AdSense.  Additional uses involved AdWords, cache priming, and cache invalidation.  For display ads, switching from Retrospective Search to Prospective Search resulted in a savings of 120k CPU cores and a 50% reduction in latency, while maintaining quality parity.

  • Google Maps Indexing Tech Lead.  Responsible for the Maps data indexing pipeline, and coordinating with dozens of teams that wished to add, mutate, and/or consume Google Maps data. Taught other teams how to integrate their code/data and mediated disputes among teams with conflicting goals, all while focusing on the "put the user first" Google doctrine. Continued to implement improvements to the pipeline in addition to the cross-team and cross-functional organization.

  • Google Maps Indexing Speed.  Index changes required 4-6 weeks of processing.  I designed an instant index that allowed high priority changes to go live in less than 10 seconds, and was tech lead of the team that implemented and launched these new indexing and serving systems.

  • Google Maps Internationalization.  Launched in France, Italy, Germany, Spain, and the Netherlands (FIGS+NL).  This was the first non-English internationalization effort and involved major changes to data ingestion, indexing, clustering, geocoding, query rewrite, ranking and serving.

  • Mentoring / Interviewing.  Mentored several new employees and interns.  Interviewed ~1000 candidates, where my feedback score highly correlated with offer decisions.

  • Presentations.  Given numerous presentations, planned and impromptu, to audiences large and small.

Massachusetts Institute of Technology

  • Master of Engineering, Computer Science and Electrical Engineering, 2005

  • Bachelor of Science, Computer Science and Engineering, 2004

  • Bachelor of Science, Mathematics, 2004

Miscellaneous

  • Draper Laboratory.  Applied research work for Masters thesis as part of a NASA contract.

  • Patents.  Awarded several patents for work performed at Google.  Provided technical consultations with Google attorneys about patents they were considering buying and/or that were subjects of lawsuits.

  • Time Magazine. Person of the Year 2006.