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
|