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.