Matt Nemenman 640 De Haro St San Francisco, CA 94107 510-366-4153 (c) mattn@menem.com http://www.linkedin.com/in/mattn Summary and Objective Software engineer, architect, and manager with over 10 years of expertise in high performance, distributed, scalable, back-end systems. Fanatical about code quality and good object oriented design, as well as about lightweight software development processes that make them possible. Seeking a technical leadership position in a company working on making the world a better place. Technical Skills * Languages: Advanced C++ (including STL/Boost), C, Python, UNIX shell scripting; some Ruby, Java, and Perl. * UNIX System Programming: Sockets, Asynchronous I/O, Multithreading, Shared memory. * Software Engineering: Design patterns, OOP/OOD, Refactoring, Unit testing. * Distributed Computing: Clustering, Redundancy and high availability, Map/Reduce, Distributed storage. * Computer Science Background: Algorithms and data structures, Operating systems, Programming languages and compilers, Machine learning, Databases. * Miscellaneous Buzzwords: GCC, GDB, Pthreads, Build/release (CVS, SVN, GMake), HTML, Databases/SQL (Oracle, MySQL), Apache, XML, Xerces/Xalan, Flex/Bison, CPPUnit. Work Experience Yahoo!, Inc Sunnyvale, CA Sr. Engineering Manager - Sponsored Search 10/05 - present * As an architect, lead the design of the matching and ranking system for search advertising based on Yahoo! web search technology. The system consists of several C++ applications (Crawler, Indexer, Searcher, Data Store, and Proxy), running on multiple clusters of 100+ Linux server nodes, communicating via proprietary TCP- and UDP-based protocols. Focus on high-availability and scalability, with exposure to the Machine Learning Ranking process. * As a manager of team of 7 engineers, carry overall responsibility for the above system's success. This includes operational stability, growth and capacity planning, prioritization, revenue commitments, and cross functional project management duties, as well as hiring, and managing employee career growth. Under my leadership, team has successfully delivered second generation of the system in 2006/2007 and is currently on track for launching a third generation into production. * As a lead engineer, enforce good software development practices in the team, such as unit tests, embedded code documentation (Doxygen), and peer code reviews. Also evaluate and select tools and libraries to be used by the team, conduct design reviews, refactor code, train new team members, and do everything else that otherwise falls through the cracks. Sr. Software Engineer - Paid Inclusion 5/03 - 10/05 * Led a team of three engineers responsible for Yahoo! Paid Inclusion crawling, indexing, and content acquisition. Carried the Paid Inclusion content system through more than 100x growth in document count. * Designed a next generation of XML advertiser interchange format and feed scheduling system. Implemented it using Xerces-C++/Xalan, and integrated it with customer facing UI and reporting layer. Inktomi Corporation Foster City, CA Software Engineer 01/02 - 05/03 * As a member of web search division, worked on various crawling and indexing problems (C++/Perl, Solaris/Linux). Became an in house expert on handling of paid content in the Inktomi search engine. * Provided support to Paid Inclusion account managers and sales engineers with technical issues around crawling and ranking of customer-submitted content. * Was part of the team behind "Best Paid Inclusion Service of 2002" award by Search Engine Watch. Cogit Corporation San Francisco, CA Sr. Software Engineer 7/99 - 11/01 * Played key role in design, and implementation of server-side of Cogit's web analytics product (C++, Oracle). Over time assumed technical leadership of the back-end subsystem. * Performed UNIX system and network development using C++. Participated in design and implementation of database cache layer, extensible plugin-based analytics core, network and C++ APIs, and database schema. Also worked on OS/compiler compatibility layer (C++, Solaris/Window/Linux), developed several internal tools (Perl) including distributed load test tool, and maintained cross-platform C++/Java build system (CVS, GMake, Perl). Software Engineer 7/97 - 6/99 * Defined and implemented CORBA interfaces for a C++/Java-based data mining client/server application. Completely took over server maintenance and was solely responsible for several bug-fix releases. * Worked on several smaller C++ projects, including a parser for a proprietary language (Flex/Bison), an abstract data access layer (Oracle / Flat File), a basic class library, and some analytical algorithms useful for data mining applications (e.g. geo distance). Informix Software, Inc. Menlo Park, CA Product Development Engineer 8/94 - 6/97 * Developed internal tools to be used by QA and Dev groups for the Informix NewEra product. Among them, developed a GUI framework for running, analyzing, and maintaining test suites on Windows 95/NT (MFC/C++). * Designed and implemented automated test cases for complex scenarios, such as multi-user, load, stress, and performance testing. Education * Bachelor of Arts in Computer Science from University of California at Berkeley, May 1998. * Several graduate level classes supporting my research interests, including Operating Systems and Human/Computer Interaction. * Various courses and workshops in Software Engineering, Object-Oriented Design, and Engineering Management at UC Berkeley Extension, industry conferences, and Yahoo! on-site training. Miscellaneous * US citizen. * Co-applicant on US Patent 20060161534, "Matching and ranking of sponsored search listings incorporating web search technology and web content". * Personal interests include rock climbing, randonnee skiing, jazz, mountaineering, DJing, and world travel.