Jon Tyson

 

350 Winfield Street

San Francisco, CA 94110

jon@bobimmy.com



 

Work Experience

 

incremental images (2000 - 2001), San Francisco and Berlin: 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