Alfred Perlstein Please contact only if solicited for employment. home: 408-844-9530 cell: 408-803-1863 SUMMARY: Highly adaptive and experienced kernel programmer and UNIX system administrator, highly experienced in low level programming, assembly language optimization and hardware programming. Expertise programming with C in the UNIX environment. Seeking challenging technical position as a team leader in software development, operating system programming or systems administration, preferably on FreeBSD/UNIX systems. TECHNICAL SKILLS: Languages: Highly skilled in C (Unix and PC environment 8 years), 80x86 and VAX Assembly (MS-DOS/VMS), Pascal, UNIX shell programming (sh/zsh), php, Perl and SQL. Working knowledge of C++ (OOP/STL), Java, LISP/Scheme, APL, FORTRAN, COBOL, PROLOG, HTML, Sparc v9 assembler, Basic, tcl/tk, PA-RISC 2.0 assembler, PPC assembler. Proficient with CVS source control. Programming tools: make (Berkeley and GNU), lex/flex, yacc/bison, gdb, dbx, ddd, cvs. UNIX OS Experience: (in order of usage and experience) system administration: FreeBSD, Sun Sparc Solaris 2.6/7, Sun-OS 4.1.1, Solaris 2.6(x86), Linux. programming: FreeBSD, IRIX, Solaris 2.6(sparc/x86), HP-UX, Linux. Networking Protocols/Systems: TCP/IP, UDP, NFS, HTTP, FTP, SMTP, NNTP, RPC. Ethernet Drivers. Disk IO subsystems (SCSI/FC). EXPERIENCE: (August 99-Current) FreeBSD committer. Authorized to add/change code in the FreeBSD operating system. Working on bug fixes and SMP support in my spare time. Interests include the pthreads library, NFS performance, software RAID, Symmetric Multiprocessing (SMP), the Linux emulator, kernel vm/buffer-cache and network subsystems. 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. Provided a step-by-step guide to net booting FreeBSD systems for install or lab deployment. Gave presentations at Google (http://www.google.com) and Jarna (http://www.jarna.com/). http://people.freebsd.org/~alfred/pxe Integrated and improved Yahoo! (http://www.yahoo.com) 'accept filter' kernel technology into FreeBSD. (October 01-Current) Quartet Network Technologies (16 developer, full time) Senior UNIX kernel developer (NetBSD). Provided BSD kernel and user land knowledge to drive development of NetBSD based distributed NAS product. Developed distributed kernel file and networking systems. Directed other senior developers with various tasks giving key insight into NetBSD kernel internals. Responsibilities included in depth knowledge of the NFS protocol and networking subsystems to ensure usability within a distributed environment. Lead architect and implementator of a distributed volume manager that would allow on-the-fly reconfiguration for space and reliability across multiple nodes. Developed engineering infrastructure including source control, management and bug tracking to facilitate other products in development. Development on disk drivers. Specifically developed a translation layer that allowed us to utilize Linux based SCSI/FC utilities on NetBSD without modification. Co-ordinated with developers in Korea to assist them with testing and implementing various portions of our NAS based product. (June 01-October 01) Clickarray.com (developer, full time) Unix kernel developer (FreeBSD). 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 Reviewed code for high performance web caching load balancer. Implemented non-blocking Sun RPC plug in to facilitate message passing API to reduce lock contention by assigning ownership of shared structures to a single process. This task was undertaken on my own in order to allow the product to be shipped without requiring interruption of service (reboot) for configuration changes. Miscellaneous developer assistance with such things as workstation setup, using CVS, development software assistance (setting up X, vi/vim, emacs), understanding standard library calls and kernel facilities. Analyzing other projects being developed, finding and suggesting fixes for problems in code. Fixed memory corruption and leaks as well as file leaks in particular. (March 99-March 01) Wintelcom.net (full time: developer, 24/7 sysadmin) Lead designer of distributed high performance web tracking system. Senior Unix C programmer and administrator, 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. Interpreter writing, databases (My-SQL, Postgresql), Perl, php and sh scripting. 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 preload data into the FreeBSD kernel to support zero copy data transport. Building x86 and Sun Ultra-sparc systems using FreeBSD and Solaris. Tuning FreeBSD systems to support large Postgresql and Apache installs. (May 98-March 99) Hot Jobs Inc. (full time: developer, minor administration) 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 (Dec 98-March 99) Wintelcom.net (part time contracting) 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. (Spring 98) SUNY Tech Telecommunications Department. Installation and maintenance of SUNY tech tele-com dept. legacy UNIX server (Sun-OS 4.1.1), installation, securing and maintenance. (Fall 97-Spring 98) Under contract by VESID The New York State Educational Dept. Office of Vocational and Educational Services for Individuals with Disabilities to do programming tutoring in the UNIX environment. C, C++, CGI, familiarizing students with the BSD/HP-UX heterogenous environment. (315) 793-2536 (Spring 1997) SUNY Tech Learning Center Computer science tutor Tutoring students to assist in programming, and UNIX system administration at the SUNY Tech Learning Center. Comparable to my experience with VESID (above) Free-lance computer consulting. Personal Projects: Currently: - Working on FreeBSD kernel/userland. Past: - Working on Postgresql internals. - Pseudo language compiler, converting pseudo Pascal/C to a 3 operand assembly language. - DOS TSRs for capturing data from applications. - Assembler graphics programming for BBS advertisements. (DOS/x86) EDUCATION: SUNY Tech @ Utica/Rome, Computer Science Relevant Course Work: 4 years of C and C++ classes, Machine Structures, Pascal, Compiler Design, Database Management, UNIX System Administration, Operating Systems, 80x86 and VAX Assembler. Stuyvesant H.S. in New York, NY INTERESTS: Operating system design, distributed systems, BSD kernel programming/internals, network/system security, file systems, symmetric multiprocessing, low-level programming (assembler) and artificial intelligence. Particularly interested in auditing subsystems to improve performance and stability of overall software products. REFERENCES: Available on request. http://people.freebsd.org/~alfred http://people.freebsd.org/~alfred/res.txt