Other Languages:
9+ years of Perl, C#/.Net, TCL, less heavily Fortran 77 and Pascal.
Familiar with Lisp, Prolog, FP, Forth and Ada. Developed several mini
and full languages using LEX and YACC including partial ASN.1 and SQL
parser, specification and domain specific languages for agents,
state machines, and more.
EXPERIENCE
Possibility Outpost 6/2004-present
- Launched HighScalability.com, a very popular site
exploring scaling and high availability issues for websites. Includes analysis of the architecture for
Google, Amazon, Flicker, eBay, and many other major websites.
- Technical advisor and mentor to several early stage startups. Advising on architecture, team structure and selection, development environment, and development process.
- Miscellaneous:
- Wrote distributed infrastructure for software based conferencing system based on H.264 SVC
based scaleable video coding for real-time IP communications. Platform: Windows, C++, perl, Scrum, Mediawiki.
- Used GWT to create a prototype social networking site. Platform: Java, Tomcat, AJAX, Windows.
- Created mashups with Twitter and Jaiku using JSON based REST interface.
- IM framework using Jabber/XMPP and the ACS IM server. Used C# and .Net to create a threaded, asynchronous, event based system.
- Wrote and published a book.
- Various applications written on GAE, AWS, GWT, iPhone.
Yahoo 8/2005-9/2006
- Architect and implementor for a real-time behavioral targeting engine for Yahoo.
- The goal was to make next click changes in ads and content by applying behavioral models to real-time
events like page clicks, page views, searches, search clicks, ad views, ad clicks, etc.
- Scaled to serve hundreds of millions of users using a high availability architecture
across multiple colocation sites.
- Used by Yahoo properties to enhance reach, lift, CTR, engagement, revenue, retention, conversion, and reduce churn
through more immediate and accurate targeting for direct response and branding markets.
Lightera/Ciena 7/98-5/2004
-
Architect and developer on a billion dollar revenue high density SONET switch
with five 9s availability. Involved at the high level system design and planning as well as an individual
contributor writing 10s of thousands of lines of quality C++/OO code.
-
Started as an early member in a startup named Lightera. Lightera was later acquired by Ciena.
-
Technologies used: C++, OO, XML, SOAP, VxWorks, real-time, Windows, Perl, HTML, Java, Perforce,
Team Track, wiki, distributed state machines, distributed agent architecture, multi
threaded architecture, database, RSS, CORBA, DDTS, Eclipse, Tomcat, Test Driven Development,
TL-1, Data Grid.
-
Original development in highly scalable architectures that reliably survive
infinite data and CPU loads.
-
Major contributer to creating distributed client-server, publish and subscribe, and
Data Grid messaging framework; easy developer database interface; OS encapsulation framework;
application, file system, and database replication, hot-standby and synchronization; live
reliable upgrade architecture; highly available fault-tolerant architecture; software install and
distribution; common library infrastructure framework; card bring up framework; distributed
card bringup and synchonization framework; state machine code generator; distributed
synchronized state machines; managed object framework.
-
Designer of a high performance fault tolerant file system that served as a unified file system
and database for the product.
-
Major contributer to creating, planning, and implementing a large scale web based distributed
build system and development process for hundreds of developers over multiple locations;
bug tracking system; revision control system; submission control; code review system;
documentation system; company intranet.
-
Used XML as a transport syntax for distributed messaging system,
database storage and querying, configuration, and specification
of systems.
Hitachi 12/97-7/98
-
Architect and developer on Visigenic CORBA/Java enterprise wide
disk array management system.
-
Created architecture using URL naming to make a robust highly scalable
distributed object system.
-
Created IDL specification of system.
-
Used servlets and server side java.
Intuit 10/96-7/98
-
Architect and lead developer of commercial grade web site management, development,
and publication system for managing Intuit's web site production process.
-
Implemented using Perl, JavaScript, CGI, Java, HTML, and C. The site is almost
100% dynamically generated.
-
Features include a job based metaphor; source code control integration;
life cycle control of pages from development, QA, to live site publication;
spell checking; page and link verification; global search & replace;
job database; bug database; site replication and verification;
timed publishing; feature extension mechanism; and much more.
-
Special attention to cross platform issues, handling extremely
large sites, database integration, handling distributed development
by multiple business units, and providing interfaces for people at
various skill levels.
Com21 2/96-2/97
-
Mentor on OO design of an embedded system implementing a cable modem.
-
Implemented design using VxWorks and C++.
-
Created complete software infrastructure for tasking, messaging,
logging, agents, events propagation, etc.
-
Created distributed publish and subscribe messaging system for component
communication.
-
Created language for specifying messages, state machines, and agents
along with a backend code generator retargetable to different frameworks.
-
Developed all system specifications and documentation in HTML,
image maps, etc.
Silicon Graphics (SGI) 8/95-2/96
-
Created (as part of a highly talented team) a city information web site
for a Japanese city on SGI's settop hosted web browser.
-
Developed all CGI programming to implement the complex WWW application.
-
Perl, C++, Oracle, used CORBA/IDL to access and create services.
-
Developed extended HTML using Perl to embed complex logic and
behaviours in HTML pages. Allowed a clean separation of creative
and programming talent for dynamic site creation.
-
Developed backend interface to Oracle database. Performed data
modeling, created schema design, and implemented stored procedures.
-
Worked with professional artists and UI designers to make a pretty cool system.
ICTV 5/94-9/95
-
Worked on large project designing and implementing infrastructure
for an interactive TV system for ICTV and Cox Communications.
-
Major contributor to distributed architecture design, schema design,
configuration and network management, perfomance tools, class libraries, settop
interface.
-
Designed and implemented a large scale push architecture
for settop booting and image and data updates.
-
Created HTML/web based documentation system and Perl scripts to transform class
hierarchy into hypertext documents.
Silicon Graphics (SGI) 1/94 - 5/94
-
Architect and lead developer of a commercial insertion system for
SGI, which is a video server for TV commercials.
-
C++, Perl, MPEG, D1, realtime scheduling and video and sound
synch techniques.
-
Created flexible multi-threaded distributed process message
passing architecture.
-
Served video off high speed striped disks using a constant-bit-rate
approach to multiple video-outs.
-
Developed protocol to talk to controlling devices, store a
content database on a high capacity robot and multi-level cache
for playback, create and manage play lists, user interface, and
much more.
-
Worked and coordinated with multiple vendors.
UCSC 7/93-11/93 & 1/94-4/94
-
Developed and taught a comprehensive course in Object Database
Management Systems (ODBMSs).
-
Overview of RDBMSs and relational theory, a comparison of
ODBMSs and RDBMSs, interfacing OO systems to RDBMSs.
-
OOD/OOA using Booch's methodology.
-
Overview of OOP using C++ and issues related to persistence.
-
ODMG and OMG standards.
-
ODBMS architectures, query languages, client-server systems,
performance, administration, etc.
-
Evaluation methodologies: OO1, OO7 and custom benchmarks.
-
Made use of systems like: Objectivity, Versant, ObjectStore,
POET, O2, ORION, Texas.
Net Express 9/92 - 8/93
-
Member of project implementing an advanced Asynchronous Transfer
Mode (ATM) communications switch. Developed on VxWorks (realtime
OS) 68K and Sun OS targets using C++ and OOP methodologies (Booch).
-
Implemented complete BOOTP subsystem to boot the switch.
Integrated BOOTP client into VxWorks kernel stored in EEPROM.
Created Sun and VxWorks BOOTP servers.
-
Designed switch IP network architecture and IP to SMDS mappings.
-
Implemented low level ethernet, SMDS, IP, UDP class libraries.
-
Debugged drivers, protocols, and IP IP/SMDS stack.
-
Implemented UDP/TCP IP socket/connection encapsulation class
library.
-
Implemented switch's Network Time Protocol (NTP) architecture.
Sun Microsystems 4/92 - 9/92
-
Architect and lead developer of a system to enhance Sun's
product support and account management information system.
-
Worked closely with Sun management and employees to model their
current support process and create a improved work flow to meet
customer service goals.
-
Implemented using Sybase, APT, C, and Perl.
-
Created a data warehouse from a variery of information sources
and implemented data purification procedures.
-
Created data model, ER diagrams, data dictionary, and entire
forms interface and work flow backend.
-
Created a user manual and lead training sessions for admin personnel.
PAC Bell 1/92 - 4/92
Developed a language called Emulation Script Language (ESL) providing a
generic programming environment for connecting UNIX workstations to IBM
mainframes over a 3270 emulation stream. Implemented in ESL a
system for downloading trunc usage statistics from AnswerDB to
Oracle hosted on a Sun workstation.
Sun Microsystems 8/91 - 1/92
Developed automated test suites under X/Open TET environment.
Compiler and language conformance testing and test development.
Created detailed formal test plans for C++, C, Lisp, Ada, Modula2
and Pascal.
Litton Integrated Automation 3/90 - 8/91
-
Major contributor to 25+ person, $30 million project successfully
implementing an optical disk based image retrieval system for
Boeing. System used a cooperative message passing agent model
to store and retrieve over a terabyte of images from over 200
SPARCstations running SunOS 4.1.2.
-
All coding was done in C++ and Unix making full use of object
oriented design methods and object oriented programming techniques.
-
Designed and coded and agent interface modeled on Dialogues
providing each agent with objected oriented asynchronous task
based message passing.
-
Created a Component Data Definition Language using LEX and
YACC that parsed an extended BNF creating a reusable parse tree
that could be used to generate any kind of code. Used to generate
C++ objects representing complex messages and to automatically
generate SQL schema definitions, queries, and stored procedures.
- Designed and coded an asynchronous interface to Sybase's
server and SQL engine; developed methods for connecting an object
oriented system to a RDBMS.
-
Developed Agent Monitor Protocol for remote control/debugging/testing
of agents. Developed many techniques to make agents fault-tolerant
and secure
Convergent 8/89 - 2/90
One of a team of six that designed and partially implemented ISO
and NMF compliant network management system using C++ on a Unix
System V.3 box. Used ISODE, CMIP/CMIS, ASN.1, X.500, CMOT, MIB's
and Motif. Made thorough use of object oriented design and object
oriented programming, system worked on a message passing model.
Implemented NMF's Managed Objects operating over an interoperable
interface.
IBM 4/89 - 8/89
Systems programming on IBM's AOS 4.3 compatible UNIX Operating
System. Helped debug Ethernet and TTY driver, DOS virtual file
system interface, profiled and tested kernel, made many fixes
and upgrades to the OS.
System Industries 10/88 - 4/89
-
Part of R&D department developing a hardware assisted file
system on Sun 4's.
-
Developed multi-threaded software on Encore implementing a virtual file
system linking multiple operating systems and hardware platforms.
-
Installed and maintained an Ethernet TCP/IP network linking
Macintosh systems, various VAX systems running Ultrix and VMS,
Sun systems and the Encore.
NEC 7/87 - 10/88
-
Part of a 20+ team developing a Network Management System (NMS)
on Intel 80386 and M68020 platforms running XENIX/UNIX System V.
-
Developed interface processes to monitor, control, request/response
processing for realtime networks of up to 10,000 modems, multiple
DBUs, multiple DSUs, T1-MUXs, and Netview compatibility. Made
extensive use of message queues, semaphores, shared memory, protocol
analyzers, realtime techniques synchronizing multiple processes
and interrupt handling.
-
Developed distributed database server processes using UNIFY
to efficiently handle a high load of requests between a host
and multiple workstations communicating through IPC/ICC interfaces.
-
Used forward and backward chaining AI techniques for network
fault detection and resolution.
Harold Harvey 7/86 - 7/87
-
Part of a five member project team developing a very innovative,
realtime inventory and accounting system for book sellers and
publishers on a PC AT running XENIX System V.2. Each book seller
and publisher is a node connected via modem to a host server.
-
Developed IPC/ICC program interface to connect all nodes
for database services, updates, technical help, and mail. Interface
compatible with Sockets and Transport Library Interface, allowing
virtual circuit connection and datagram service.
-
Developed user-friendly system interface using windowing
techniques and sound user interface principles for a powerful
and easily modifiable system.
-
Interfaced database for realtime updates from OCR-A font
readers, barcode readers and cash registers.
-
Extensive use of multi-user database software, OLTP, ensuring
efficient use of bandwidth, record locking, database integrity,
error recovery, and minimizing these affects on response time.
-
Applied structured programming techniques and object oriented
design techniques in program development to create generic, reusable
modules and integrate the large number of modules into a tested,
reliable system.
University of Oregon 8/84 - 8/85
Complete Software Life Cycle Design and Implementation of a graphics
based automated diagramming tool that formed part of CASE environment.
Project was on a VAX 11/750, BSD 4.2, using a HP 2677-A color
monitor. Working in a four member project team, we completed
a needs analysis, requirements definition, full specs, data flow
charts, structure charts, data dictionary, module and system
level test plan, documentation, user's and installation manuals.
Miscellaneous
-
Several patents pending.
-
Created and taught OO and database class for UCSC Extension.
-
Created and taught System Administration class for UCSC Extension.
-
Taught RDBMS classes through a training company.
-
Taught Perl class for Sun Microsystems.