Jon Tyson 350 Winfield Street San Francisco, CA 94110 jon@bobimmy.com WORK EXPERIENCE incremental images (2000 - 2001), San Francisco: Chief Engineer and Architect I joined this startup before its first official day of business. I assembled and led an 11-person engineering team to the successful creation of the first release of our product, a server-based platform for the delivery of multi-user, collaborative graphical applications to any client with a TCP/IP stack. Working with the executive team, I defined the product, hired our engineering team, and created the right environment for the execution of our aggressive schedule. I designed the architecture of this complex application server as well as coded significant portions of its core. The engine is extensible through the addition of custom plug-ins written internally as well as by our customers and partners, so the quality of our interfaces and documentation was an important component of the project. I mentored newly hired employees of all skill levels. I helped my team excel by transferring the knowledge required to get their jobs done as well as the responsibility required to give them a sense of ownership. I also helped to establish the development processes of our organization including a nightly build system, automated test harness, bug tracking software, source code control, and both internal and external documentation. The product was simultaneously developed on all major Unix platforms (32/64-bit) as well as Windows NT/2000. Engineering details: * The system is a highly parallelized, multithreaded application server with request processing performance at the level of HTTP servers like Apache. * Distributed procedure calls occur between clients and servers through a SOAP-like interface tunneled via HTTP. To accomplish this, sockets are used to implement a stripped-down HTTP server. * The server provides a custom, extensible type system for marshalling data between objects. * Object-relational mapping is provided by a persistence interface for integration with relational databases. Two implementations of this interface are provided: mysql and flat file. * Application construction is performed by specifying a graph of plug-in objects using an XML configuration file. * The framework simplifies customization by providing default multi-user support and object thread safety, allowing developers to focus on simple object development and ignore these complex, advanced programming topics. * The framework provides cross-platform wrapper classes for threading and locking primitives. * Communication between objects occurs using synchronous message passing. Asynchronous messaging is easily accomplished through a simple extension to the system. * The mental ray API and distributed rendering environment are used extensively and integrated with the server. * Automated build and regression test systems run on 5 flavors of Unix and Windows. Integration of Win32 using cygwin hides the differences between Unix and Windows for the Windows-phobic developers in the organization. 3DPowerTools (1999 - Present), San Francisco: President and Founder I am responsible for all aspects of running this business, including product design, implementation, QA, marketing, sales, public relations, accounting, and technical support. I assembled a 6-person team to build the product and corporate image. I led the development and QA effort and successfully delivered a highly-praised product (Cadence Magazine, May 2000, 5 out of 5 rating). Engineering details: * Designed, developed, and shipped shrink-wrapped software. * Focused on ease of use via a Windows-compliant, natural UI for intuitive modeling. * 3D modeling technology including dynamic, real-time tessellation of solids and swept surfaces. * 3D visualization technology including spriting of 3D graphics and the integration of 2D and 3D graphics (such as billboarded text for the display of interactive dimensions during translations and rotations). * Topological analysis of tessellations for the reconstruction of solid models. * Integration with 6 degree-of-freedom input devices. * Custom software locking involving online software authorization and activation. * Extended and maintained ecommerce system involving real time credit card transactions and integration with customer database. autodesk (1995 - 1999), Alameda: Lead Engineer / Senior Software Engineer I led the 5-person team that built AutoCAD 2000's 3D graphics pipeline. This was a daunting task, involving the successful integration of a 20-year code base with a modern graphics engine along with the creation of an API suitable for use by autodesk's best-selling vertical applications and 3rd-party developers. Engineering details: * Designed, implemented, and documented a retained-mode 3D graphics pipeline for AutoCAD. This pipeline is the basis for all 3D graphics in AutoCAD and its derivative products (Mechanical Desktop, Architectural Desktop, AutoCAD Map, etc.). * Specified the API used between the graphics system and its clients, including AutoCAD and 3rd-party applications (like 3DPowerTools). * Implemented visualization features including camera manipulations, material properties, dynamic retesselation based on point-of-view, highlighting, picking, and spriting. * Integrated 2D and 3D graphics systems in the same display device. * Provided both hardware (OpenGL) and software implementations. * Tuned for the optimal handling of large data sets (both memory and speed), including spatial sorting using hierarchical bounding boxes and sub-pixel culling. For AutoCAD Release 14, I was a lead engineer on the project to replace AutoCAD's aging 2D graphics pipeline. Somewhere from 2 million licensed to 20 million unlicensed users still exercise my code in their daily work. Engineering details: * Designed and implemented a retained-mode 2D graphics database used to integrate AutoCAD's graphics with its user interface and object database. * Developed and extensively tuned a 2D display list for the real-time display of large architectural data sets. This component is still used in a variety of autodesk products, including AutoCAD, Architectural Desktop, Mechanical Desktop, and Actrix. * Developed Heidi (a 3D and 2D immediate-mode graphics system) plug-in renderers. * Maintained Heidi. SKILLS System and API design; excellent written and oral communication skills; ability to mentor both novice and expert engineers; many years of learning, using, making mistakes with, and designing for multithreaded programming, networking, graphics, and databases; performance tuning; server-based computing; multi-platform development; fast acquisition of new skills and technologies. Tools: C++, Perl, Java, JavaScript, SQL, OpenGL, sockets, XML, SOAP, XSL, XSLT, PHP, Apache, msdev, cvd, gdb, dbx, ddd, cvs, sourcesafe, bugzilla, doxygen Platforms: Win32, Linux, Irix, Solaris, OSF1, cygwin EDUCATION Amherst College (1987 - 1991), Amherst, MA B.A. degree, summa cum laude Mathematics major with a concentration in music