9 Caire Terrace
San Francisco, CA 94107
Phone: 415.312.3931
Email: alfred at freebsd
dot org
URL: http://freebsd.org/~alfred/
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, assembly language, optimization and device driver programming.
Expertise programming with C, C++, shell, perl, ruby and python in the UNIX environment.
C (Unix and PC environment 9 years) (expert), UNIX shell programming (sh/zsh) (9 years) (expert), php (6 years) (expert), C++ (OOP/STL) (5 years) (expert), Perl (highly skilled), SQL (highly skilled), 80x86 Assembly (MS-DOS) (highly skilled), Python, Ruby, Java, LISP/Scheme, HTML, Basic, tcl/tk.
make (Berkeley and GNU) (expert), lex/flex (expert), yacc/bison (expert), CVS (highly skilled), grof (highly skilled), GDB (highly skilled), Subversion, Valgrind, Purify, Perforce, ddd.
FreeBSD (expert), OS X (highly skilled), NetBSD, OpenBSD, Redhat Linux, SGI IRIX 6.x, Sun Solaris (sparc/x86: 2.6), Sun-OS 4.1.1.
FreeBSD (expert), NetBSD, OpenBSD, SGI IRIX 6.x, Sun Solaris (sparc/x86: 2.6), Sun-OS 4.1.1, Redhat Linux.
TCP/IP (expert), UDP (expert), NFS (expert), RPC (expert), HTTP, FTP, SMTP, Disk IO subsystems (SCSI/FC), Ethernet Drivers.
Senior Systems
Engineer
Pontiflex
August 2011-
Responsible for scaling Pontiflex infrastructure and applications.
Projects:
Tuned MySQL databases: analyzed slow queries, added indexes as needed to speed up queries, suggested rewriting application logic to make use of query cache, put mysql temp space on ramdisk to speed up non-memory-cache-able joins. Performed major MySQL data migrations to add required indexes and rebuild major tables.
Tuned Apache and java instances to make use of more threads to reduce the per-process overhead for our internal caches.
Deployed an OpenStack cluster for use by team and by application team.
Built out our Apache configuration system so that all configurations can be kept in a single repository and deployed to any host.
Misc other stuff: setting up git repositories, deploying software, building packages, keeping people happy.
Worked with application developers to learn enough about their software to be able to submit code changes/patches to fix issues across teams.
BSD Kernel
Programmer
Juniper Networks
January 2007-August 2010
Responsible for scaling JUNOS (FreeBSD based OS) to a 32 processor router blade.
Projects:
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.
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.
Setup CVS to subversion gateway for team members to have branches. System tracked our CVS top of tree by committing to Subversion.
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:
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.
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:
FreeBSD
committer
FreeBSD
August 1999-
Authorized to add/change code in the FreeBSD operating system.
Projects:
Technical
Yahoo
Yahoo Inc.
April 2004-April 2005
Senior technical Yahoo. Responsible for search operations and optimization.
Projects:
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:
Kernel
developer
Clickarray (now known as Array
Networks)
June 2001-October 2001
Unix kernel developer (FreeBSD).
Projects:
Developed TCP-splicing implementation. ftp://ftp.monarch.cs.cmu.edu/pub/dmaltz/msocks-infocom98.ps.gz ftp://ftp.monarch.cs.cmu.edu/pub/dmaltz/splice-perf-tr.ps
Principal
Technologist
Wintelcom
March 1999-March 2001
Senior Architect, Programmer, Systems administrator, on call 24/7.
Projects:
Developer
Hot Jobs Inc.
May 1998-March 1999
Unix C programmer projects included; spell checking engine to improve data entry, NNTP (news) posting module, text search engine. Reslex(tm) engine to extract information from unformatted resumes. HTML upload module. All work used for back end to CGI systems. Various database conversion projects. Platforms worked on; SGI Irix 6.2, Sun Solaris 2.6, FreeBSD 3.0
Systems administrator
(part time contracting)
Wintelcom
December 1998-March 1999
Administration of large web servers running the FreeBSD 3.0 system for SMP configurations. Management of virtual mail and web service redirection. Current Project involves reorganizing topology for more efficient throughput and ease of management. Scripting for statistics retrieval at regular intervals.
Systems
administrator.
SUNY Tech Telecommunications
Department
March 1998-July 1998
Installation and maintenance of SUNY tech tele-com dept. legacy UNIX server (Sun-OS 4.1.1), installation, securing and maintenance. Enabled telecommunications department to run legacy software for training.
Tutor
VESID
September 1997-July 1998
Contacted by VESID (New York State Educational Dept. Office of Vocational and Educational Services for Individuals with Disabilities) to tutor student.
Provided tutoring for individuals facing challenges in academia. Tutored programming in the UNIX environment. C, C++, CGI, familiarizing students with the school BSD/HP-UX heterogenous environment.
Tutor
SUNY Tech Learning Center
March 1997-July 1997
Tutoring students to assist in programming, and UNIX system administration at the SUNY Tech Learning Center. Comparable to my experience with VESID (above). Brought many "C", "D", and "F" students to "B" and "C" grades.
Written using vim http://www.vim.org/ using the xml suite xmlresume available at http://xmlresume.sourceforge.net/ .
$Id: res.xml.in,v 1.8 2005/04/04 17:30:42 bright Exp $
Last modified April 2012.
All rights reserved.