Before contacting me, please save us both some time by noting the following:
I am located in New Zealand -- please be aware of the time difference (GMT+12 hrs)
I am not open to relocation
I am not interested in a permanent position
I don't give out the names of my friends and contacts
| Objective |
Architect or pre-sales role in projects involving ASP.NET, Silverlight, C#, SQL Server and/or Analysis Services. Prefer a focus on large-scale or high-performance. Prefer telecommuting (not willing to reclocate); light travel is fine.
| Skills |
| Education |
BA Math/Chemistry/Biology, Univ. of California at Santa Barbara, 1978
Member of Sigma Xi honor society of scientific research, 1978
Post-Graduate Studies in Computer Science, Univ. of Southern California, 1979
VLSI Design Course, Stanford University, 1988
Kalman Filtering Short Course, UCLA Extension, 1990
| CONSULTANT | Dec 2006 to present |
Under contract to Microsoft, designed the next-generation web architecture for the Hong Kong Jockey Club, which is one of the largest websites in Hong Kong. The architecture addressed issues such as performance, deployability, maintainability, agility, database partitioning, caching strategies, how to leverage Silverlight on the client side, and more.
Under contract to New Zealand Plant and Food, designed and built parts of their compute-intensive high-traffic web site, including a distributed computation system based on Service Broker.
Under contract to MySpace.com, analyzed client-side performance of their website, and made extensive and detailed recommendations for improvements. Recommendations covered areas such as minimizing server round-trips, optimizing domain name and CDS usage, DNS optimizations, CSS and JavaScript optimizations to reduce code size, multi-tier caching strategies, etc.
Under contract to Shop.com, designed the architecture for a multi-terabyte Data Warehouse using SQL 2005 Analysis Services. Built a prototype system that included production data. Issues considered included scalability, tools selection and minimizing update delays (MOLAP vs. ROLAP, pro-active caching, etc).
| MICROSOFT CORP. | Dec 2003 to Dec 2006 |
Sr. Solutions Architect for the Microsoft Technology Center (MTC) in Silicon Valley. Provided software architecture and design advice to customers during 1 or 2-day Architectural Design Sessions (ADS). Specialized in C#, ASP.NET, ADO.NET, SQL Server, Analysis Services and Visual Studio 2005 Team System. Common ADS topics included discussions on how to build scalable, high-performance, reliable and maintainable systems using Microsoft technologies. Customers included MySpace, Shop.com, CafePress, Shell Oil, IRS and many others.
Worked with customers during one-to-three week Proof-of-Concept engagements, helping them prototype applications or do performance analysis. The MTC's goal is to improve customer satisfaction and reduce customer risk in adopting Microsoft technologies.
Gave a talk on building Ultra-High Performance Websites to several customers, including eBay, where it was enthusiastically received by more than 40 of their web developers.
Earlier, designed and developed several ASP.NET-based applications for Microsoft's MSN TV2 product, including interfaces to MSN Search, MSN Chat and Hotmail. These applications talk to partner services using DAV, simple XML over HTTP, or SOAP, and format their output for display on TV using C#, DHTML, JavaScript and CSS. Built several prototypes to demonstrate new UI concepts using DHTML, HTC controls, Ajax and JavaScript.
Analyzed performance issues for the entire MSN TV2 service and implemented optimizations in caching, networking, and web page design (including CSS and JavaScript). Reviewed, refined and helped to productize many aspects of the service, including networking, scalability, reliability, security and maintainability. The service includes the infrastructure needed to support hundreds of thousands of customers, including automated client updates and server installations, customer support, Passport-based authentication, automated billing, account management, online registration, usage metering, and automated logging and monitoring.
| IT'S THE CONTENT, INC. | Apr 2002 to Dec 2003 |
Designed, developed and shipped a document management-oriented filesystem from scratch for the PC. The filesystem is being used by banks and other financial institutions to solve risk management issues. It provides automatic version control, metadata tagging, queries, free-text search, transactions, filesystem-level triggers and workflow, and is accessable through CIFS, WebDAV or HTTP. The architecture uses (patent pending) data structures that support hard-linked folders, dynamic folders populated based on metadata, and complex relationships that are intended to help model the real world in the filesystem. Architected the client components, including a Windows Explorer namespace extension and a Java-based GUI. The technologies used include XML, XPath, SMB/CIFS, JMX, Apache Tomcat, Servlets, the Gemstone Facets object database, Log4j, JavaMail, Apache Lucene (for free text search), and Doug Lea's Concurrency Library.
Designed and implemented a P2P file sharing application in Java that allows users to transparently synchronize files on their desktop with remote machines. Several cryptographic techniques were used for strong authentication and secure transmission of documents and software updates. The XML-RPC library was used for machine-to-machine communications. The architecture was designed to reliably and securely support hundreds of thousands of customers. Issues addressed included bandwidth management, P2P communication in the presence of firewalls and proxies, user account management, automated registration, spam prevention and performance issues such as caching. Defined all production and test hardware and networking requirements.
| MICROSOFT CORP. (contract) | Aug 2001 to Apr 2002 |
Developed a comprehensive architecture to deliver MSN content, datafeeds and services such as Hotmail and MSN Messenger and Chat to several different TV-oriented Middleware platforms, including WebTV, MSTV, PowerTV and others, on a very large scale -- in both two-way and broadcast-only environments. The design used .NET servers and related technology such as ASP.NET, SOAP, XML and Web Services, and is integrated with services such as Microsoft Passport and SPS.
Designed and implemented a server to allow IMAP-based email clients to access Hotmail. The server was written in C#, using the .NET Framework SDK. It parses IMAP commands and translates them to the WebDAV protocol, which is used to communicate with Hotmail. This highly-scalable implementation uses design features such as local caching, cross-session state management, load balancing, and careful thread management. The server was demonstrated running against both the Microsoft Outlook and PowerTV SofaMAIL IMAP clients. Worked with the Operations team to specify all required hardware.
| LIBERATE TECHNOLOGIES, INC. (contract) | Nov 1999 to Aug 2001 |
Designed and developed a scalable XML import and translation engine, designed to support large-scale data broadcast applications for Interactive TV deployments. The technologies used included Java 1.3, JAXP, Xerces, Tomcat, Servlets and JavaServer Pages (JSP).
Developed large-scale network, hardware and software architectures to support Interactive TV for multiple Cable operators. The architectures were designed to support web browsing, email, chat, parental control, ATVEF, broadcast data carousels and provisioning and billing interfaces, for deployments of up to 20 million set-top boxes. The implementations included advanced load balancing, routing and networking topologies, for systems using General Instruments (DCT5000/DOCSIS) or Scientific Atlanta (SA2010) infrastructure.
Designed the architecture, selected the hardware and lead the team that implemented an Interactive TV Performance Lab in a joint effort with Sun, Cisco and Liberate. The Lab was sized to demonstrate a 100,000 ITV subscriber deployment, with growth planned to the 1M subscriber level. This high-availability implementation used Alteon 708 and Ace Director 3 load balancers, more than 50 Sun Netra processors, as well as Cisco routers and switches, including the 7206VXR, 3640, 3524XL, 2621/RAS, Pix 525 and 7246 uBR. Worked with PacBell and WorldCom to order and provision three point-to-point DS-3 lines.
| KNOWLEDGE FIRST, INC. (contract) | Nov 1999 to Aug 2001 |
Designed the overall network, hardware and software architecture for a large, scalable database-intensive web e-commerce application, using Active Server Pages (ASP), Oracle 8i and Java/JDBC. Implemented a prototype of an application to send and receive electronic student loan applications using the CommonLine protocol.
Specified, purchased and directed the installation of all hardware and communications cross-connects at the AboveNet co-location facility. Production hardware included Sun E250 machines running Oracle, multiple NT-based servers running ASP applications, and Sun Ultra-10 machines for email and a Checkpoint firewall.
| DIVICOM, INC. (contract) | 1998 to 1999 |
Designed and developed real-time software to extract data from the vertical blanking interval (VBI) on the Divicom MV40 broadcast-quality MPEG-2 video encoder, using a dedicated MIPS R3041 coprocessor. The code was written in C with some boot-time assembly language, using the Cygnus/gcc cross-compiler. A protocol was developed to pass the extracted data through shared memory to a Motorola 68300. Once there, the extracted data was written into the transport stream on its own PID, with appropriate PSI. Worked extensively with a hardware engineer and an HP logic analyzer to help debug the FPGA interface between the R3041 and the 68300.
| TRIADA SYSTEMS, INC. (contract) | 1997 |
Designed and wrote a custom high-performance load-balancing Application Server from scratch for a data mining application, using Java, Swing, JavaBeans, JavaMail, Jini, JavaSpaces, Java Cryptography (JCE), RMI and JNI. Used threads and overlapped I/O to more than double the speed of the underlying C++ application.
| ONLIVE! INC. (contract) | 1996 to 1997 |
Performed end-to-end design of a voice-over-Internet audio (video-capable) conferencing server, and implemented the system in Java. This real-time software allows more than 200 people (on a 200MHz Pentium) to connect to a single machine and talk to each other over the Internet using H.323 terminals (including Microsoft's NetMeeting). Implemented the production version of the software and an RTCP protocol monitoring tool in Java on Windows NT. The server used the DataBeam H.323 stack with both standard G.723 and special in-house codecs.
| DIGITALGLOBE, INC. (formerly EarthWatch, Inc) | 1995 to 1996 |
Principal architect and designer for several complex software systems for a commercial high resolution remote sensing satellite. The software included tasking and scheduling, orbit analysis and maneuvering, command and control, telemetry display, data capture, security and communications. Also developed the initial architecture for the software running on the satellite, including test and simulation methodologies. Specified external software interfaces.
Project Manager for the design and construction of an entire satellite ground station in Fairbanks, Alaska. Selected the construction site, and provided a high-level site layout and design. Was also the Project Manager for a spacecraft assembly clean room. Produced the original facility design. For both projects, selected vendors, established schedules and budgets, and managed the construction to ensure compliance with engineering requirements.
| INTELLIGENT DECISIONS, INC. | 1983 to 1995 |
Developed numerous embedded real-time applications for use in satellites and interplanetary spacecraft. A mission-critical real-time navigation package was designed, coded, tested and delivered to several customers, including NASA, US Air Force, Spectrum Astro, Lockheed Martin and Corning OCA. The software was developed on Sun and SGI machines, and later ported to the RAD6000 under VxWorks, using the GreenHills compiler. The software has performed flawlessly on four deep-space missions.
Designed, documented and coded a simple and elegant high performance real-time operating system from scratch in C for a dual-processor RISC (under contract to Litton ATD).
Wrote several complex and specialized simulators and visualization aids in C and C++ under Unix involving lots of mathematics, with extensive 3-D technical graphics (SGI GL) and Motif-based GUIs (under contract to Lawrence Livermore National Laboratory).
Wrote an entire XNS protocol stack (closely related to IPX) for Unix. Implemented an XNS-compatible Internet mailing client and server and a version of the Courier RPC protocol from scratch (under contract to Siemens AG).
Wrote a gate array placement program from scratch using a new, fast simulated annealing algorithm. Wrote tools to interface this software to other CAD systems (under contract to Amdahl Corp).
Designed the architecture for Intel's first port of Unix System V to the 80286. Designed and coded a Unix-like operating system from scratch with high-performance filesystem extensions and real-time support. Modified the X Window System V10 server to work with specialized terminals. Ported the X11R4 server to the PC under DOS. Board bring-up for a dual-CPU 68000 system, including porting Unix V7 and adding custom virtual memory extensions.
| FORTUNE SYSTEMS CORP. | 1981 to 1983 (2 years) |
Marketing Product Manager for systems software, including distributed systems and advanced networking.
Development Manager and Technical Lead. Staffed a group of more than ten engineers. Ported Unix V7 to the Motorola 68000. Modifications included automatic determination of hardware configuration, auto-linking of PROM-based device drivers and writing many new device drivers for disks, tapes, floppies, networking and display. Established a team environment. Installed software development methodologies.
| FORD AEROSPACE AND COMMUNICATIONS CORP. | 1979 to 1981 (2 years) |
Senior Systems Programmer responsible for support and enhancement of over twenty Unix systems. Worked on proposal efforts and directly with customers as a technical expert on Unix and C. Participated in the design and coding of the AUTODIN II secure communications network.
| RAND CORPORATION | 1978 to 1979 |
Systems Programmer for several DEC machines running Unix V6. Wrote disk, tape and communications device drivers and worked on special projects. Developed a real-time system status display program. Designed and wrote a subroutine library to facilitate graphical editing of text files, with full crash recovery. Developed components of MH, an Internet electronic mail package. Performance analysis.
| DIGITAL EQUIPMENT CORP. | Summers of 1976 and 1977 |
Software Specialist for the Northern California Region. Performed extensive customer support by phone regarding the RSTS/E, RSX-11M, RT-11 and DOS-11 operating systems. Ported customer applications to the DEC platform.
| AMES RESEARCH CENTER | 1974 to 1975 |
Through a work-study program while in school, wrote numerical analysis software, modified and tuned FFT algorithms and wrote real-time graphics analysis tools for the space shuttle program. Wrote network access software for the ARPAnet.
Platform and Tool Experience
I have had direct, personal, hands-on experience with all of the following technologies on one or more projects, for periods lasting from 6 or 8 weeks to many years.
Personal
Married, with twin 19-year old boys. U.S. Citizen. New Zealand Permanent Resident (moved to NZ in Dec 2006).