Alfred Perlstein - Résumé
Contact Information:
Alfred Perlstein
San Francisco, CA
Email: alfred at freebsd dot org
URL: http://freebsd.org/~alfred/
Professional Objective:
Seeking challenging technical position as an architect in software
development dealing with operating system programming, scalable
internet applications or systems operation, preferably on FreeBSD
based UNIX systems.
Highly adaptive and experienced kernel programmer and UNIX system
administrator with management experience. Experienced in distributed
computation, low level programming, optimization and device driver
programming.
Expertise programming with C, C++, shell, perl and python in the
UNIX environment.
Languages::
C (Unix and PC environment 10+ years) (expert), UNIX shell
programming (sh/zsh) (10+ years) (expert), C++ (OOP/STL) (7 years)
(expert), Perl (highly skilled), SQL, php, 80x86 Assembly (MS-DOS),
Python, Ruby+Rails, basic HTML.
Development tools::
make (Berkeley and GNU) (expert), CVS (highly skilled), gprof
(highly skilled), lex/flex, yacc/bison, GDB, Subversion, Valgrind,
Purify, Coverity.
Development environments::
FreeBSD (expert), OS X (highly skilled), Redhat Linux.
System administration:
FreeBSD (expert), NetBSD, OpenBSD, SGI IRIX 6.x, Sun Solaris
(sparc/x86: 2.6), Sun-OS 4.1.1, Redhat Linux.
Protocol and driver knowledge:
TCP/IP (expert), UDP (expert), NFS (expert), RPC (expert), HTTP,
FTP, SMTP, Ethernet Drivers.
Employment History:
BSD Kernel Programmer
Juniper Networks
January 2007-August 2010
Responsible for scaling JUNOS (FreeBSD based OS) to a 32 processor
router blade.
FreeBSD Liason.
Ported cutting edge FreeBSD features to in-house version of OS.
Projects:
* Scaling work: Added a reader/writer lock over the JUNOS networking
stack to allow multiple networking flows to run in parallel.
Achieved 5x speedup when processor was configured with 8 cores.
Required back porting of FreeBSD 7.x rwlocks to FreeBSD 6
including turnstiles and sx locks and rwlocks. Required adding
writer priority to the FreeBSD rwlocks. User space critical
sections to prevent latency when contending against spin locks on
cores running real-time processes. Flow affinity. Network
processor pins flows to particular CPUs. By exporting this
information to user space applications can exhibit much better
cache and locking effects by assigning flows to threads already
bound to the same CPU.
* FreeBSD liaison: Take non-core intellectual property modifications
to FreeBSD and add them to FreeBSD to ease further upgrades of our
code base. Recruited several strong FreeBSD developers into
Juniper.
* Subversion deployment: Setup CVS to subversion gateway for team
members to have branches. System tracked our CVS top of tree by
committing to Subversion.
* Warlock: Created a tool to assist developer check-in of code.
Reduced number of build breaks by using this tool to 0%. Saves
developers many hours per-day by streamlining and pipelining the
commit process for the common case. Nominated for distinguished
tool of the year.
CTO
Humor Rainbow Inc, OkCupid.com
July 2005-August 2006
Chief technical officer. Responsible for all technical aspects of
Okcupid's direction. Duties included managing the software team (3
developers), recruiting, data center management and deployment,
office deployment, release engineering, source control, UNIX
administration and developing code. Responsible for software
development and web site uptime.
Projects:
* Match server: Created an linearly scalable system to replace a
failure prone and non-scalable solution. Using two servers (but
scalable to the hundreds) I fit a large subset of the users into
physical ram using a custom R-star tree to locate users that are
adjacent. Additionally a distributed cache (modeled after the
memcached project) was modified to allow for distributed
computation of match results. This system replaced a mysql backed
system and was able to perform a better job using half the
hardware of the old system at a fraction of the complexity and
maintenance of the old system. Additionally this system allowed
for "fast path" access for several important data points for
users.
* Image server migration and reliability: Our image servers were
located at a separate hosting facility. Reliability problems at
the hosting facility prompted me to move the machines to our local
co-location facility. To maximize reliability, once the servers
were made local, they were put behind a load balancer and made
100% redundant. Prior to this work, if an image server went down
we lost images on the site until a manual switch over was done.
Achievements:
* Engineered a number of improvements to key services and monitoring
systems such that the number of incidents has gone from multiple
incidents per week to less than one incident per month.
* Created bidding war between ISPs which allowed us to get three
free months of 40 megabit egress and reduced our hosting costs to
less than half.
FreeBSD committer
FreeBSD
August 1999-
Authorized to add/change code in the FreeBSD operating system.
Projects:
* Autofs implementation: Completed a filesystem that supports
dispatch of kernel filesystem operations to user land to
facilitate dynamic browsing. This facilitates user land direction
of the kernel policy presented to VFS consumers.
* Working on bug fixes and SMP support. Interests include NFS
performance, software RAID, Symmetric Multiprocessing (SMP), the
Linux emulator, kernel vm/buffer-cache, network subsystems and
threads libraries.
* Assisted in the design of the multiprocessor safe (MP safe)
network buffer allocator, currently working on making the socket
subsystem MP safe.
* Made file allocation subsystem MP safe, collaborated with other
FreeBSD developers (Seigo Tanimura in particular) to accomplish
this.
* Ported BSD/os client side NFS locking implementation to FreeBSD.
Included both user space and kernel subsystems.
* Added support for PCI based wireless cards based on the
Prism/Prism2 chipsets.
* Modularized several large subsystems including the System V IPC
subsystem and the POSIX aio subsystem by converting them to
loadable kernel modules.
* PXE step-by-step guide to network booting FreeBSD systems for
install or lab deployment. Presented work at Google
(http://www.google.com) and Jarna (http://www.jarna.com/) .
Project is available at http://people.freebsd.org/~alfred/pxe .
* Integrated and improved Yahoo! ( http://www.yahoo.com ) 'accept
filter' kernel technology into FreeBSD.
* Ported pthread cancel functionality from OpenBSD
Technical Yahoo
Yahoo Inc.
April 2004-April 2005
Senior technical Yahoo. Responsible for search operations and
optimization.
Projects:
* Session Server. A distributed database that stores key/value pairs
in a highly replicated manner. Data is stored on multiple backends
and the information needed to retrieve said data is made available
to clients. Multiple machine failures do not impact the
availability of data. Nodes participating in data storage are
automatically detected via broadcast. Project included custom
thread safe RPC server dispatch stubs and quorum logic.
* DNS Cache. A local cache for DNS requests designed to reduce the
impact of latency and down time of DNS servers.
* Companion servers. A system for providing web ranks for users of
the Yahoo toolbar. Optimized data build process from five days
down to ten hours. Optimized lookup by storing data in binary
format, tuning database cache size, splitting databases into
multiple buckets. Tuned database build turaround from one week to
ten hours.
* Invariants class. A C++ class developed in order to track down
bugs in code. Utilized inheritance to provide all derived classes
with checkpoints in order to ensure object coherence. Provided
mechanisms for identifying corruption and memory leaks at runtime
with negligible performance impact.
* Apache data bridge module. Created an apache module that made
passing data between our core components and third party developer
code simple. Greatly reduced the complexity required of third
party developers interfacing with our code.
Kernel developer, contractor
Apple Computer Inc.
November 2002-March 2004
Tasked with enhancing and fixing Apple Computer's OS X operating
system implementation of NFS.
Tasked with creating the AutoFS filesystem for Apple Computer.
Projects:
* Main role assigned to enhance the experience of mobile users of
NFS. This involved debugging several aspects of the NFS component
mostly related to networking and process management.
* Provided implementation of autofs for OS X.
* Provided general filesystem notification mechanism for signaling
filesystem alerts such as loss of connection to server, low disk
space, filesystem mount and unmount. OS X is now the only UNIX
based system to provide an escape mechanism for a broken NFS
mount.
* Debugging, fixing and providing peer review to address issues.
(example: forceful unmount of NFS filesystems.)
Contractor
Self.
March 2001-November 2002
Worked at several companies on performance tuning and operating
system development.
Principal Technologist
Wintelcom
March 1999-March 2001
Senior Architect, Programmer, Systems administrator, on call 24/7.
Projects:
* Lead designer of distributed high performance web tracking system.
Project utilized C, Perl, SQL, PHP and FreeBSD.
* System administration, on call 24/7. Systems include high traffic
web servers, DNS (bind 8), and NFS on platforms; FreeBSD
(2.2.x/3.x/4.0), Sun Solaris (2.6/7) and Redhat Linux.
* Maintaining systems and source code via CVS.
* Designed an interpreter used to increase page rankings for web
pages.
* Maintained systems consisting of databases (My-SQL, Postgresql),
Perl, php and sh scripts. Responsible for backups, system security
and bandwidth monitoring.
* Modified Postgresql client libraries to provide nonblocking
support for C client code. (integrated in mainstream sources)
* Added support to pre-load data into the FreeBSD kernel to support
zero copy data transport. Achieved *2500* connections per-second
on a single 400mhz PII.
* Building x86 and Sun Ultra-sparc systems using FreeBSD and Solaris
for internal and customer use.
* Tuning FreeBSD systems to support large Postgresql and Apache
installs.
Education:
BA in Computer Science, July 1998. Attended, left before graduation
for position at Hot Jobs Inc.
SUNY Tech at Utica/Rome
HS, July 1994
Stuyvesant HS, New York, NY
Hobbies:
* Development of FreeBSD kernel (network/filesystem) and userland.
* Skiing.
* Motorcycling, Vmax, zx10, gs500, Elite 250 scooter, I ride and do
my own bike maintence.
Miscellany:
Written using vim http://www.vim.org/ using the xml suite xmlresume
available at http://xmlresume.sourceforge.net/ .
Last modified May 2011.