Principles only, please (no third-party recruiters)
|CONSULTANT||Dec 2006 to present|
Provided architectural design and development work to build, analyze and improve the performance and scalability of multiple websites based on IIS, ASP.NET and SQL Server, in accordance with the principles and techniques I advocate in my book (under contract to Intuit and others).
Lead Architect for the design of the next-generation web for the Hong Kong Jockey Club, which is one of the largest websites in Hong Kong. I addressed issues such as security, performance, deployability, maintainability, agility, database partitioning, caching strategies, and using Silverlight as an alternative to Active-X (under contract to Microsoft).
Designed and built sections of a compute-intensive, high-traffic ASP.NET-based web site, including a distributed computation system, using C#, SQL Server and Service Broker (under contract to New Zealand Plant and Food).
Designed and built prototype cubes using SQL Server Analysis Services, along with supporting data warehouses, populated using Integration Services (under contract to Shop.com, Movoto and others).
|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 Team System. Common ADS topics included discussions on how to build scalable, high-performance, reliable and maintainable systems using Microsoft technologies. Customers included Shell Oil, The Venetian, 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 talks on building high-performance websites to several customers, including eBay, where it was enthusiastically received by more than 40 of their web developers.
|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 address 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 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. I am the primary author of five US patents in this field.
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. I primarily used XML-RPC 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 including 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 parsed IMAP commands and translated them to the WebDAV protocol, which it used to communicate with Hotmail. This highly-scalable implementation used 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 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.
|CONSULTANT||1996 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. Prototyped 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, Sun Ultra-10 machines for email, and a Checkpoint firewall (under contract to Knowledge First).
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. I developed a protocol to pass the extracted data through shared memory to a Motorola 68300. Once there, I wrote the extracted data into the MPEG transport stream on its own PID, with appropriate PSI. I worked extensively with a hardware engineer and an HP logic analyzer to help debug the FPGA interface between the R3041 and the 68300 (under contract to Divicom).
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/async I/O to more than double the speed of the underlying C++ application (under contract to Triada Systems).
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 allowed 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 (under contract to OnLive! Inc).
|DIGITALGLOBE, INC. (formerly EarthWatch, Inc)||1995 to 1996|
Principal architect and designer for several software systems for the company and the industry's first imaging 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 onboard the satellite, including test and simulation methodologies. Specified external software interfaces.
Project Manager for the design and construction of a satellite ground station in Fairbanks, Alaska. Selected the construction site, and did the high-level site layout and design. Was also the Project Manager for a spacecraft assembly clean room. Designed the original facility and related processes and procedures. 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. I designed, coded, tested and delivered a mission-critical real-time navigation package to NASA, US Air Force, Spectrum Astro, Lockheed Martin, Corning OCA and Goodrich Aerospace. I developed the software on Sun and SGI machines, and later ported it 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 yet 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 (X Window System)-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.
In addition to the Microsoft stack (including C# and limited VB.NET) and Java, I have had hands-on experience with the following technologies:
Married. U.S. Citizen. New Zealand Permanent Resident (moved to NZ in Dec 2006). My hobbies include astronomy and ham radio (callsign ZL2HAM).