Christopher T. Hull (408) 735 0164 home; (415) 385 4865 cell jobs@chrishull.com Objective Seeking a position in software design and development. Experience Summary I have written software for Apple Computer and Netscape. My work appears on every Macintosh build from the mid '90s on. My code is in use by millions of happy users worldwide. Proven track record possessing over twenty-five years experience developing for a number of hardware platforms ranging from IMSAI 8080, Apple II, Atari 800, Apple Macintosh, Commodore Amiga, IBM PC, and the Java virtual machine. Developed commercial software under MacOS, DOS, Windows, and Java. Contributed to high profile projects for Apple Computer and Netscape Communications. Proficient in C, C++, and Java, as well as various machine languages (Intel, Motorola, PICMicro). Developed code under Eclipse, MPW, GNU toolchain, Think, Cafe, CodeWarrior, and Visual C++ development environments, among others. My most recent positions have involved Java development using JMS, Timcat, Spring, Tapistry, JNI, and JINI. Have also developed application level code in C/C++ under Linux and Windows. My preferences lean toward low level code development. Platforms Linux, Java/JDK, J2EE, WindowsNT/98/95/3.x, MacOS, DOS, PIC Micro, Apple 2, and older systems. Languages Java, C/C++, various assembly languages (Intel, Motorola, PICMicro), Perl, Postscript, Pascal, Forth, Ruby Development Environments and Tools vi / shell (various Unix), CVS,, Perforce JDK, Visual C++, Code Warrior, MPW, Win3.1 SDK, Think C, Star Team, Projector Internet Related Apache, Tomcat, Servlets, Struts, ISAPI, CGI - Perl, Linux, Solaris, XML, XSL, WML, iMode, PHP Hardware FPGA (Altera), PIC, ARM Work History: Shopping.com (an eBay Company) December 2005 – Present C/C++, Java Tomcat, Perforce, Linux, Tapestry I currently work for Shopping.com where I help maintain the merchant feeds system. This position involves Java code running JMS queues and interacting with SQL. I have also done some front end work in Tapestry. I also developed code in C using ImageMagick to display images on the website. This code allows Shopping.com to store images of items for sale in a single small size, and resize them at high speed, on the fly for display. Altera, Santa Cruz CA. March 2005 – December 2005 C/C++, Java, Eclipse, Perforce, Linux. Designed and implemented a set of Eclipse plug-ins for Altera's Nios II soft procesor. Nios II is a virtual CPU tat runs on Altera's Stratix FPGA. OpenCountry, Menlo Park CA. December 2002 – February 2005 C/C++, Java, gmake, gcc, gpp, CVS, PHP, Linu, SOAP, MySQL Responsible for gathering requirements, designing and developing OpenCountry's OC-Provision product. OC-Provision allows any Linux machine to be used as a PXE installation server. OC-Provision will run on all RedHat based distributions and will install all RedHat and SuSE based distributions on any PXE capable machine. Currently I support a total of twelve forms of Linux. Also developed a Linux based management tool. This tool allows administrators to easily and quickly keep large numbers of Linux nodes, such as routers, switches, and user machines updated with the latest software. It is divided into two components, OCHost, and OCAgent. The Agent is a tiny, powerful piece of code that receives commands from the Host and manages the machine that it’s running on. The Host serves as a software repository and communicates with a large number of Agents. I was team lead and designed and implemented a large portion of the OCAgent. I am also involved in much of the technical decision-making that goes into the product. Mediagate, San Jose CA. August 1998 – January 2002 Engineering Applications Manager / Architect reporting to Director of Engineering. WindowsNT/98, Linux, Java, C/C++, JDK1.3, Tomcat, ISAPI, Apache, Engineering Management, XML, XSLT. With a team of ten engineers, designed and developed a distributed application server, known as Quicksilver. This involved development entirely in Java, using JINI, Xalan and Xerces to generate and transform XML using XSL, and servlets developed for the Tomcat servlet engine. I was one of four inventers on the project, and lead a team of four developers, two in Israel. Quicksilver is a complex data aggregation engine, which allows disparate and alien data sources to cooperate and communicate to arbitrary interfaces over a local network, or on the same computer. Easy to use adapters allow developers to integrate their services into the system. XML and XSLT allow for easy user interface development. Aided an attorney in writing patents for this project containing over fifty claims relating to dynamic XML generation, XSL, dynamic datasource mapping to XML fragments, and other aspects of the architecture. This is one of the most interesting projects I have worked on. On the project before Quicksilver, I wrote a parser for an XML like language called Page. I developed a suite of ISAPI DLLs to run the parser and produce web pages based on Page documents. Microsoft Hotmail, San Jose CA. January 1998 - June 1998 Senior Software Engineer Solaris, Java, JDK, CVS, Apache Set up and administered a CVS source code control system for Hotmail. With a team of three engineers, redesigned Hotmail architecture with the intent of rewriting it in Java. This was never executed. Netscape Communications, Mountain View CA. August 1996 - January 1998 Senior Software Engineer MacOS, WindowsNT, Java, C/C++, JDK, CodeWarrior I worked on Netscape 6.0 (Gecko), which was the largest Java project of its day: Designed an event and graphics system for the project before it was decided to use IFC. Developed some IFC and JFC HTML elements for the product. Designed and developed the Form Manager. This is the software that handles HTML form data collection and submission to the server. Also developed all of the form elements themselves, the actual code that draws the HTML form itself and handles user input. Wrote part of the HTML parser for the product. Designed an internal testing mechanism for Java applications and applets called SelfTest which is used throughout the product to test the robustness of Java objects at runtime. Netscape Communicator Version 4.0 for the Macintosh: Developed the address book user interface code for the Macintosh client (CodeWarrior C++). Designed and developed the AppleScript code allowing other applications to communicate with Communicator. The AppleScript code allows other Macintosh applications to extract mail and HTML pages from Communicator and allows these applications to control a wide variety of Communicator functions. Apple Computer, Cupertino, CA. June 1992 - August 1996 Senior Software Engineer MacOS, C/C++, MPW, CodeWarrior EZAV: Along with a team of two other engineers, architect a driver and user interface system based on QuickTime Components. EZAV will allow developers of Macintosh peripheral hardware to easily write drivers and user interfaces for their products. This system replaces the tedious DRVR and CDEV resource scheme implemented by earlier versions of System Software. EZAV will also allow applications access to Macintosh peripheral hardware. A multimedia application can offer easy access to volume controls, cameras and other media devices without forcing the user to use several different control panels to accomplish simple tasks. QuickDraw GX Printing System: Developed drivers for the StyleWriter II, Apple Color Printer, and LaserWriter LS. These are hybrid GrayShare-QuickDraw GX drivers which use GrayShare technology for imaging and device communications while taking advantage of the QuickDraw GX user interface. Developed some of the code necessary to make QuickDraw GX backwards compatible with the existing Macintosh printing architecture (fixed bugs in the "old UI" code). GrayShare: Assisted in completion of Apple's GrayShare product. Located and fixed several QuickDraw related bugs. Wrote some hardware level code for the StyleWriter II to allow simultaneous support for GrayShare and QuickDraw GX. Pre-History, Projects, and Hobbies For descriptions of positions prior to 1992, as well as independent projects and hobbies, please request the longer version of this resume, or just talk to me and my colleagues. Many references, sample code, power point presentations, and websites are available upon request. Thank you for your interest.