HENRY C. CRUTCHER CONTACT: EDUCATION: Email: henry@isystemsdev.com Home Phone: 404 584 8041 Work Phone: 404 556 4974 1999: MS, Computer Science, New York University, New York, NY 1997: BS, Computer Science, Wesleyan University, Middletown, CT EXPERIENCE: Currently working on financial startup Market Eyes. Designed Moodle-based e-learning system for Oglethorpe and Puget Sound Universities. Lead developer for SAP’s Steamboat project Replaced core JDK libraries used by the Google Web Toolkit (GWT) platform to improve speed and algorithmic characteristics and optimized GWT’s hybrid developer mode. Responsible for the backend of CDC’s PHINVADS which is a medical ontology system to store and manage medical vocabularies nationwide. Responsible for CDC’s Public Health Information Network (PHIN) security system Created code generator and linker for an industrial strength Java ahead-of-time compiler for large server-side appserver applications 2010-Present Work on a new financial startup Market Eyes. This will give investors unprecedented ability to understand the market and react more intelligently via sophisticated interactive analytics. 2007-2010: Intelligent Systems Development Henry founded Intelligent Systems Development. The firm is focused on providing software solutions to customers for difficult and unique software problems. Below are some selected projects the firm consulted for HANA project (SAP) Henry was the development lead for a multi-million dollar (multiple time zone) GWT project at SAP. He helped get the project back on track, advised them on the best way to use GWT, and helped create a UI architecture that was extensible, flexible, and ready for enterprise deployment. This architecture was used for three related GWT projects, where each project was staffed with a different mix of team members. Each project finished on time, with all features requested, and a very low error rate. Unsurprisingly, SAP’s executive team liked what they saw. Created a system to help rail car owners reconcile their payments for car hire versus the miles an Moodle E-learning (Oglethorpe and Puget Sound) Henry propelled Oglethorpe into the e-learning age by showing how it could help and then making it happen. This involved getting the faculty on board, and ensuring they use it effectively, and customizing it ruthlessly. When the CIO moved to Puget Sound, he was so happy with the Moodle support Oglethorpe enjoyed that he had Intelligent Systems Development take over the Moodle installation at Puget Sound. Railwatch (Railwatch, Inc) The task here was to create a system that tracked the hours the cars were used by each railroad, and find missing or wrong payments. 2006-2007: Google Henry worked on the Google Web Toolkit (GWT), a Java-to-JavaScript compiler and UI framework that takes the compatibility headaches out of programming AJAX, and allows the user to program and debug web applications entirely in Java. He has created modules allowing the use of XML and JSON in GWT. He also optimized “GWT Hosted mode” (the Java development environment). Reloads became 5 times faster, markedly improving the user experience. Henry also optimized and improved the GWT JRE libraries (Such as String and ArrayList), removing bottlenecks and improving overall speed by using more sophisticated algorithms. He has created a rich text widget, a prototype SVG/VML module for GWT to explore the issues encountered in adding such functionality to GWT and various small samples, including a dynamic layout generator for GWT and an asynchronous XBRL viewing widget to exercise the XML functionality. GWT is written in Java, and improving it requires the ability to understand complex code quickly and make changes that will be robust and effective. Creating the XML and JSON wrappers required browser understanding, as well as good insight into how the GWT compilation/rebinding process works. Optimizing the “Hosted mode” or Java web development environment required an ability to find and understand bottlenecks, and make extensive modifications without breaking the overall architecture. Prototyping SVG/VML bindings usefully required the ability to rapidly understand those technologies, and the ability to predict their pain points, and to find the areas that needed especially careful API design: such as incompatibilities.. 2003-2006: STC Henry worked on the SRT Services module, which manages updates of public health vocabularies and codes between the states and the CDC. He also worked on a small team to create the PDF rendering engine for the form builder tool, which allows states to create and manage forms, with automatic layout to transform a list of questions into a professional PDF document with data entry features and subsequent releases. Henry subsequently worked as one of the core creators of the PHIN VADS system, from inception and design, through presenting it to the CDC and getting CDC stakeholders interested, to its current stable, deployed status. PHIN VADS is a sophisticated public health vocabulary management system complete with fully versioned data store, HL7 RIM conformant model, powerful and easy to use API, web services, and a federation/provisioning model to make sending and receiving updates easy. It also includes a web-based browser and editor of vocabulary data, a forms model, and powerful import facilities. PHIN VADS was demonstrated at the PHIN conference, and is being used by the PAM platform (PDP) project, as well as NHSN. Henry retooled the form builder module to make the user interface more intuitive, and replace the backend with a VADS backend, giving it versioning, federation, and integrated access to standard vocabularies. He also oversaw the rework of the VADS import facility to ensure that it will serve as a smooth pipeline for Apelon subscriptions (such as LOINC, SNOMED) into PHIN VADS, as well as an automatic pipeline other data, with the configurability and manageability to respond to stakeholder change requests. He also created the build process used by the team, did all systems administration for the Atlanta office, and coordinated the data to go in the recent releases of VADS. Other duties at STC include writing proposals, preparing estimates, budgets and schedules, design of software and requirements, and managing the release and deployment process. VADS is written in Java, using either a SQL Server or Oracle database backend. Development was done with Eclipse, using a Struts Servlet paradigm, with an enhanced MVC framework to fit the needs of the application. Sophisticated database design and optimization was required to store 1.1 million concepts and access them efficiently. Careful object oriented design was required to make the framework robust enough to support the multi-million dollar development effort, and to support the extreme flexibility that the ever-changing requirements demanded. Finally, as it has seen several complete releases, including a 2.0 release, so full lifecycle project experience was part of the package, as with Tower Technologies. He developed a Python custom build system, which was used here, and was the Atlanta systems administrator, administering Windows and Linux machines. He also created and managed an automatic import server, built in Python and Java. Work with the CDC also required very strong communication skills, both written and verbal, as well as organization and an ability to deal with the politics of federal government contracting. It required the ability to create appealing proposals, vision documents, presentations, schedules, budgets, and make these appealing via email, voice and presentation delivery, often in front of tens of people. 2000- 2003: Tower Technology, Atlanta, GA Previously, Henry was a Software Engineer where he worked on a small team to create a new just-in-time compiler for TowerJ 4.0. This allows on-the-fly compilation from Java bytecode to Intel x86 machine code (4-person team.) He also worked on a small team to implement a new copying multi-heap Bartlett style garbage collector. This collector allowed multiple threads to allocate objects in parallel and worked efficiently despite the presence of pinned objects. He was also solely responsible for the finalization and weak reference support in the garbage collector. Henry improved the linking system to make it possible to use large precompiled libraries that include commonly used code, including core Java libraries. This also enabled in-lining of functions and direct dispatch across libraries when the target of a dispatch could be statically determined. He modified current compiler and runtime to allow it to be certified as JCK compliant (7person team.) This involved significant integration efforts, as well as changes to conform to Sun’s policies. Henry also co-architected and co-authored an object-oriented code generator and optimizer for an ahead-of-time Java compiler, interfacing with an existing runtime. The new SSA code generator and optimization system produced a significant performance gain over the old technology. Its multi-stage, modular design allows the addition of new optimizations to be done easily, and with minimal likelihood of conflict with interacting optimizations. Tower Technologies used a Java-to-C compiler to compile Java bytecodes to native code on a variety of platforms, including Windows, Linux, Itanium, SGI and HP-UX. Working on a highly optimizing Java compiler required an intimate expertise with Java, thorough understanding of classloaders and threading, as well as how the x86 (and Itanium) processors worked. Compiler writing/debugging requires a fanatical devotion to unit testing, intense debugging skills, and the ability to handle enormously complex code. 1998- 1999: Courant Institute, NYU, New York, NY Henry was a PhD student where he co-designed and implemented a recursive indexing system to index a collection of remote web pages, searching for product pages. He also co-designed and wrote an entirely reflective language that is flexible, easy to use, and extremely powerful. For example, exceptions were easily and efficiently implemented using user code. The language is an emphasizing power and expressiveness over static-type checking and safety, as it was later used to implement a non-trivial compiler in a very short time. Henry created a Web product that, using Improv, allowed children to create simple VRML animations with emotionally expressive characters, and write stories about their animations. He designed a parallel server for Plinda. Plinda is a parallel variant of Yale Linda (a tuple-space system) augmented with transactions and distributed processing. The transactions allowed rollback in the event of client failure, but the server was not parallel or redundant. Our task was to design a parallel redundant server with good performance and no single-point-of-failure. Ph.D. Programs require one to absorb complex systems, and present them cogently. It also requires an ability to innovate, which has proven useful ever since. Summers of 1998 and 1999: Bellcore, Morristown, NJ As a contract employee, Henry created a toolkit using Java3D to visualize networks in 3 dimensions, and a demo network editor with his toolkit. The toolkit allowed the user to cogently manage and visualize dozens of nodes with many links, as opposed to the handful that are practical with 2D. Based on the demo, the NCON team determined that the use of a 3D visualization engine to visualize networks was a valid approach. Henry also implemented Java IO classes for use in the new release of Laure, a superset of Java, and he created a graphics toolkit for Laure that interfaced with X11 under Unix, using many of Laure’s desirable features to make programming GUI interfaces much easier. Success on the Java3D project required not only the ability to learn and use Java3D over a two month period, but also the ability to work in a self motivated fashion, and juggle priorities given a very limited timeframe. Presentation skills, as well as the ability to make a technology appealing, and to rapidly understand customer needs were essential.