Post Job Free
Sign in

Engineer Software

Location:
Mountain View, CA
Posted:
December 28, 2012

Contact this candidate

Resume:

Alex Feinberg

Mountain View, CA

****@******.***

http://afeinberg.github.com

Objectives

To develop reliable distributed systems.

Skills

Knowledge of and experience with C, C++, Java and Perl

programming languages (particularly in a UNIX environment).

Knowledge of and interest in functional programming languages:

Scala, OCaml, Lisp (Clojure, Common Lisp and Scheme). Some knowledge

of Python.

Knowledge of and experience with reliable distributed systems

and their design principles (fault tolerance,

replication/consistency, event ordering, consensus/distributed

commit). Understanding of operating systems concepts, specific

knowledge of the Linux operating system.

Five years (after Bachelors degree) of software development in

both software engineering and operations teams. Large scale

production operations experience (including being in an on-call

rotation).

Understanding of core protocols

at the application (HTTP/web-services, SMTP, DNS, DHCP), transport

(TCP, UDP) and network/Internet layers (IP, Multicast/IGMP).

Understanding of good software engineering practices: iterative

development, unit testing, version control systems (CVS, subversion,

git, Perforce). Experience with many software development tools

(make, automake/autoconf, gdb, valgrind, ant, maven, hprof,

YourKit).

Experience

LinkedIn Corporation

Senior Software Engineer

September 2009 - CurrentMember of the Data Infrastructure team. Working on Project

Voldemort: a highly available, distributed data store

(http://project-voldemort.com/; key principles: consistent

hashing, virtual nodes, quorum reads/writes, vector clocks for

conflict resolution).

Implemented a metadata Gossip protocol and data streaming to

support dynamic cluster membership and on-line

rebalancing. Implemented support for replaying failed write

operations, including over high-latency cross-datacenter WAN

links. Re-wrote, debugged, tested and gradually rolled out a new

failure detection algorithm, resulting in five-fold decrease in

latency and an orders of magnitude decrease in the error

rate. Performance tested and on-boarded mission critical use-cases

onto Voldemort, helping with data model and application design as

needed. Extensive Java systems/network programming: use of Protocol

Buffers, BerkeleyDB Java Edition (BDB-JE), NIO, multi-threading/ java.util.concurrent.

Proofpoint, Inc

Senior Software Engineer, Core Server

September 2008 - September 2009Worked on the Proofpoint Protection Server (PPS) and Network

Content Sentry (NCS) - an industry leading suite of inbound (spam,

virus detection) and outbound (encryption, regulatory compliance)

email and web security products. Development of core server (NCS

and PPS) in (Object Oriented) Perl, C and C++, extensively using

multi-threading, native sockets event-driven/non-blocking I/O.

Development of the appliance OS integration in OO Perl and UNIX

shell (bash).

Sped up evaluation of large rulesets ten times. Implemented an

asynchronous DNS resolver. Diagnosed and fixed a contention related

bug in the Linux kernel's eventpoll facility, instrumenting

several portions of the Linux kernel (eventpoll, task scheduler) to

aid debugging.

Initiated the adoption of Hadoop. Developed a

service for efficient storage of structured data in Hadoop using

Jetty, Guice, Jersey (JSR 311), Avro and HDFS API.

SocialMedia Networks, Inc

Platform Engineer

January 2008 - September 2008Worked on ad server backend which was responsible (over the

course of 2008) for serving of 100 million impressions on a daily

basis, delivering advertising content to applications on the biggest

social networks. Developed a log copying, processing and archiving

systems. Initiated and drove adoption of Hadoop: setup a cluster,

trained other engineers and analysts. Built tools for event

gathering, analytics and web crawling on top of Hadoop.

Yahoo! Inc

Production Engineer, Sponsored Search Serving

April 2006 - January 2008Member of the team (originally three people, including a

manager) responsible for running ~10,000 machines that comprised

Yahoo's Sponsored Search (formerly Overture/Goto and Inktomi

products) Serving component. Worked closely with the ad server and

search engine development teams towards ``production readiness'':

automated configuration, release packaging and deployment.

Extensive development of automation and monitoring tools in

Perl, Python and (occasionally) C. Developed many new platform and

operations tools and contributed to existing platform tools ( e.g., system installation tools, a cfengine-like

configuration system). Automated the delivery of appropriate

advertiser data on a daily basis from the data warehouse to the

serving backends in multiple datacenters. Modified a BitTorrent

client to act as a transport mechanism for large datasets (the

system later evolved to a tool used by multiple teams at Yahoo).

BindKey Technologies (Dupont Photomasks Subsidiary)

Systems Administration/Development Consultant (Contract)

January 2003 - March 2005Created a development and build environment, gaining extensive

experience with the gcc/g++ compiler, GNU linker and assembler and

misc. third party libraries. Circumvented unfixed bugs in the GNU C

compiler (gcc) and linker (GNU ld).

Integrated FlexLM licensing into production software (by

creating a multi-threaded C++ wrapper class for FlexLM's C API) and

developed a Perl and MySQL based license management and generation

web application. Development portions of the product UI code using

GTK+-/GTK- (in C and C

ActiveBuddy, Inc (Renamed Colloquis,

acquired by Microsoft in 2006)

UNIX Systems Administrator/Developer (Contract/Internship)

November 2000 - August 2002Administered a network of 50+ Linux and FreeBSD servers in a

production environment. Developed a system for automatic

installation of the Linux operating system over the network, using

PXEboot. Participated in software development, extensively using

Perl, MySQL and a specially developed internal programming language.

Presentations

Guest lecture in UC Berkeley CS194-17: Programming the Cloud. Pdf:

http://behemoth.strlen.net/~alex/voldemort-cs194-017.pdfProject Voldemort: Reliable Distributed Storage. Presented at the

27th International Conference on Data Engineering (ICDE '11), Hannover, Germany, April 2011. Pdf:

http://behemoth.strlen.net/~alex/voldemort-icde2011.pdf

Education

Santa Clara University2006 - 2009Completed MS in Computer Engineering while working

full-time. Pursued computer networks track, additional coursework

along the software engineering track.

Santa Clara University2004 - 2006BS in Computer Science (BSCS).

De Anza College2002 - 2003

Cupertino, CA

Miscellaneous

References are available upon request. Hobbies and interests include:

computer programming/computer science, photography, music, history and

philosophy. Bilingual: Russian and English. US Citizen.



Contact this candidate