|
Professional Experience:
Lead Software Engineer, NTT Multimedia Communications Labs, Inc., Palo Alto, CA
March 2002 - present
- Lead Software Engineer : January 2006 - present
- Wireless Software Engineer : March 2002 - January 2006
NTTMCL is the overseas advanced research and development subsidiary of
NTT Communications, Japan. At NTTMCL I have been involved in numerous
projects, being responsible for implementing network protocols and
enhancing the FreeBSD kernel.
- Primarily responsible for the development, enhancement, and maintenance
of the access control gateway software used by one of the largest
wireless ISPs in Japan, HOTSPOT.
Implemented seemless roaming amongst thousands of access points without
requiring clients to support Mobile IP, added support for 802.1x,
and WISPr (GIS), authentication in addition to traditional
browser-based captive portal authentication, and made operating system
enhancements for IPv6 and VoIP support. Prototyped WPS authentication
infrastructure.
- Lead team in implementing Windows-based smart client software for
managing WiFi, dial-up, PHS, and Ethernet connectivity. In addition
to managing the physical hardware, the smart client we developed
included a database of ~100,000 access points world-wide, allowing
the user to quickly locate Internet connectivity. It also supported
WISPr authentication, WiFi scanning, and VPN client launching
functionality. The client was fully internationalized, initially
shipping with both English and Japanese translations.
- Extended FreeBSD kernel to include layer-3 switch functionality,
I replaced the linear-time vlan interface lookup for incoming packets
with O(1) table lookup by VLAN tag, and I replaced IP-specific divert
socket implementation with generic divert framework which includes
support for userland diversion of ethernet frames as well as passing
addition packet metadata, including mbuf tags, to divert socket
listeners. I also extended the IPFW firewall to support diversion
("divert" and "tee") and packet forwarding ("fwd") from IPFW's layer-2
hooks; I added IPv6 support and fast hash-based lookup tables for any
combination of IP and MAC addresses -- this was prior to the
introduction of IP-specific IPFW tables to FreeBSD 4.11. I ported
socket-level data filters
from Linux to FreeBSD and I worked with an engineer working on a
separate internal project to port the enc0 interface from OpenBSD to
FreeBSD for their product.
- Developed a library for implementing RADIUS clients and servers compliant with
the relevent RFCs including
RFC 2865,
RFC 2866,
RFC 2868,
RFC 2869,
RFC 2882,
RFC 3162, and
RFC 3579.
Used this library to implement a high-speed RADIUS proxy with application-specific
language for modifying the proxied RADIUS packets and routing, rejecting, or responding
to the packets depending on their contents.
- Implemented DHCP relay agent compliant with
RFC 1497 (BOOTP),
RFC 2131,
RFC 2132,
RFC 3011, and
RFC 3046.
The relay agent acts transparently by intercepting DHCP packets from ipfw
via the layer 2 divert interface that I also implemented; it builds its own
database of leases based on the packets it relays and can invoke external scripts
in response to leases being obtained, renewed, or released.
- Developed numerous libraries used internally by various projects,
including a library for event-driven programming based around
FreeBSD's kqueue interface,
and a library for simplifying embedding perl
interpreters in C programs.
- Implemented daemon for distribution and serving of multicast XML-RPC requests.
Also implemented a sub-second accurate job-scheduler in which jobs were
represented by XML-RPC requests that were delivered to a local XML-RPC server
per a schedule specified via
ISO8601
interval expressions.
- Corresponded with peers in Japan in Japanese and translated Japanese
documents into English.
- Interviewed, hired, and trained other software engineers.
| Languages:
|
C, Python, SQL, PG/PLSQL, Perl, JavaScript, XML, lex, yacc
|
| Platforms:
|
FreeBSD/x86, Windows/x86, Windows Mobile 5/arm
|
| Hardware:
|
Spirent SmartBits 600
|
| Other:
|
lighttpd, Apache, CGI, SSH, PostgreSQL, ISC DHCP, RADIUS, AAA, 802.1x,
WPA, WPS, WISPr, wxWidgets, wxPython, SQLite, OpenSSL, Doxygen, pyUnit,
OSPF, XML-RPC, JSON, CVS
|
Lead Software Engineer, Backplane, Inc., Emeryville, CA
August 2000 - October 2001
Backplane was a hosted billing and customer care solution developed
from the ground up for Internet-based service providers including ASPs, ISPs, and B2B exchanges.
At Backplane, I was a member of a focused development team; I was specifically responsible for core billing
logic as well as integration with third-party vendors.
In addition to my primary responsibilities, I also assisted the CTO with system administration and
development of our proprietary replicated database.
- Engineered product infrastructure including monetary and date libraries.
Responsible for backend integration with third-party vendors providing tax lookups, credit card and ACH
debits, and invoice printing and mailing.
- Interacted with Director of Product Development to design core billing features including advance and arrears billing,
proration, resource aggregation, and invoice presentment. Implemented or lead in the implementation of those
features.
- Worked closely with Quality Assurance department to quickly address bugs and feature change requests.
- Extended company's proprietary replicated database to support additional SQL syntax.
- Lead in porting of billing product to run on Oracle database.
| Languages:
|
C, SQL, Perl, JavaScript, XML
|
| Platforms:
|
FreeBSD/x86, Linux/x86
|
| Other:
|
Apache, CGI, SSH, Oracle 9i, CVS
|
Senior Unix Administrator, eGroups, Inc., San Francisco / Redwood City, CA
April 2000 - August 2000
eGroups was a leading provider of e-mail group communications, delivering over two billion e-mail messages
to over 17 million members each month. The service also included integrated Web-based group communication
features such as group calendars, file sharing, polling and email archives.
At eGroups, I was a member of a talented 6-man Network Operations department whose primary responsibility
was to keep the site's 300+ servers in perfect running order.
Yahoo, Inc. acquired eGroups in September 2000; like several of my colleagues, I chose not join Yahoo's network operations department.
- Responsible for administering 300+ FreeBSD, Linux, and Solaris servers as well as miscellaneous network hardware.
- Wrote software to visualize and manage SSH key trust relationships across the site's servers.
- Wrote ancillary tools to enhance eGroup's custom site monitoring software; improved data collection, reporting, and visualization.
- Developed software to distribute configuration changes to servers en masse.
| Languages:
|
Perl, Python, PHP, SQL, various shells
|
| Platforms:
|
Linux/x86, FreeBSD/x86, Solaris/sparc
|
| Hardware:
|
Alteon 180, HP ProCurve, F5
|
| Other:
|
Apache, BIND, ISC DHCP, SSH, WAN/LAN, TCP/IP, CVS
|
Analyst / E-business Development, Bell Industries, Richmond, VA
December 1999 - April 2000
- Developed intranet sales, rating, and reporting applications
interfacing with the corporate ERP system and vendor product databases.
Extended specific functionality to be accessible to strategic
customers via extranet.
- Created specialized e-commerce sites tailored to individual sales
contacts.
| Languages:
|
ColdFusion 4.0, HTML, JavaScript, SQL
|
| Platforms:
|
Windows NT, Solaris/sparc
|
| Other:
|
IIS 4.0, ODBC, EDI, Lawson Financial Suite
|
Director of Technical Services, ALC Communications, Richmond, VA
March 1999 - December 1999
NetworkRichmond, LLC acquired ALC Communications in early 2000. I contracted with NetworkRichmond through April to aid in the transition.
- Migrated core Internet services from a Windows NT environment to FreeBSD and Linux.
- Designed and engineered high-performance, highly redundant network for providing Internet services with over 99.9% uptime.
- Technical coordinator for development of e-commerce web sites, utilizing C, PHP and perl to interface with SQL databases.
- Trained and supervised technical engineers on the web site development team.
| Languages:
|
Perl, PHP, C, HTML, JavaScript, SQL, various shells
|
| Platforms:
|
FreeBSD, Linux, Windows NT
|
| Hardware:
|
Livingston Portmaster, Cisco AS5200, Ascend Pipeline
|
| Other:
|
Apache, BIND, IIS 4.0, CGI/FastCGI, WAN/LAN, TCP/IP, NetBIOS
|
President & Co-founder, Freedom Communications, Richmond, VA
February 1995 - March 1999
- Shared responsibility in operating a small business in the Internet Service Provider and Systems Integration markets; interviewed, hired, and managed employees.
- Designed, implemented, and sustained mission-critical TCP/IP-based network for providing Internet services to residential and commercial customers.
- Responsible for installation and administration of multiple servers running BSDI, FreeBSD, and Windows NT operating systems.
- Installed and supported TCP/IP routers, hubs, and switches from vendors including Cisco, Livingston, Ascend, 3Com, Compatible Systems, and Shiva.
- Wrote and maintained Unix administration tools in perl, C, and various shell scripting languages. Wrote web front-ends to these tools to enable Intranet access to select administrative functions.
- Provided contract work for customers' Unix installations including XENIX, Linux, FreeBSD, and AIX; as well as Windows NT and Novell NetWare servers.
| Languages:
|
Perl, C, HTML, JavaScript, various shells
|
| Platforms:
|
BSD/OS, FreeBSD, Linux, Windows NT, Netware, XENIX, AIX
|
| Hardware:
|
Livingston Portmaster, Livingston IRX, Adtran CSU/DSU,
Ascend Pipeline, Compatible Systems, Shiva LanRover,
Cisco Catalyst
|
| Other:
|
NCSA httpd, Apache, BIND, INN, CGI/FastCGI, SSH, IIS 4.0,
Microsoft Exchange, VPN, WAN/LAN, TCP/IP, IPX, NetBIOS
|
Adjunct Teacher, Chesterfield County Public Schools, Chesterfield, VA
November 1994 - November 1996
- Taught C and C++ programming languages to gifted students of the Math / Science Magnet School at Clover Hill in coordination with the President of the school, Paul Leonard.
|