A permanent position or long-term contract focusing on research in security, performance optimization and reliable software architecture for natively compiled programs, with an emphasis on techniques that scale to today’s increasingly complex software platforms. Teaching at the university level is a secondary objective that I would pursue where the circumstances present a convincing opportunity to cultivate the students’ aptitude and appreciation for quality software engineering, leading to substantial improvements in the stability and security of their future projects and the techniques they promote in the field.
Bachelor of Science in Computer Science, Pacific Lutheran University, 1996; 3.65 GPA.
Bachelor of Musical Arts, Pacific Lutheran University, 1996; 3.65 GPA.
Since graduating from Pacific Lutheran University in 1996 with an inspiration to focus on the stability and reliability of software, my career path has been organized to incubate a set of novel design and implementation techniques in an environment having a healthy combination of private prototype development with opportunities for road testing under the challenges of commercial projects. Taking advantage of the relatively short duration of software engineering positions in American companies, where the average permanent assignment is terminated (usually by the employee) after just 18 months, my work history alternates regularly between periods of independent research and industry contracts. The following section provides a detailed listing of each phase along this 20 year trajectory, including a brief summary of each commercial project and documentation and prototypes from the research periods. Highlights can be found in (a) the development tools and the methodology presented in Role Normalization and Synthesis, which focuses on stability for Java programs, and (b) my PhD Dissertation that proposes Introspective Intrusion Detection as a cost-effective and reliable approach to improving control flow security.
Post-Doctoral Research 9/2017-present · INRIA Project: develop the Shaker, an automated optimization tool that rewrites key functions in performance-critical programs in search of advantages arising from unforeseen behaviors in hardware optimizations. The Shaker randomly generates semantically equivalent functions and replaces the original at runtime using the Padrone binary instrumentation framework.
Internship 1/2017-6/2017 · INRIA Project: develop tools for performance analysis and bottleneck discovery in resource-intensive computational kernels. Working with members of the CORSE team to combine components of QEMU, DynamoRIO, LLVM and GDB into a suite of tools including a bottleneck analyzer and interactive debugger.
PhD Dissertation and Defense 6/2017-9/2017 · University of California, Irvine
Presented Introspective Intrusion Detection to the doctoral committee.
PhD Student Research 7/2016-8/2017 · University of California, Irvine
Developed ZenIDS, a dynamic approach to software security that leverages interpreter introspection to learn a control flow graph of trusted behavior in PHP application for the purpose of logging malicious intrusions. The ZenIDS extension to the PHP7 interpreter supports most PHP applications at 5% runtime overhead vs. an optimized LAMP stack.
Internship 9/2016-12/2016 · Microsoft Project: implement security enhancements in the Microsoft Visual Studio compiler. Our new features passed all tests at less than 1% overhead (for both code size and speed), passed code review, and have been committed to the repository on the product release branch. All further details are restricted by the NDA.
Masters/PhD Student Research 7/2012-2015 · University of California, Irvine
Developed BlackBox, a dynamic approach to software security that leverages process introspection on end-user machines to learn an optimally accurate control flow graph for the purpose of logging deviations from normal behavior, and blacklisting known malicious behavior on the basis of low-level control flow. The BlackBox virtual machine is based on DynamoRIO and supports most Windows programs.
Internship 6/2015-9/2015 · DynamoRIO via Google, Inc. Project: Dr. Fuzz, the
Dr. Memory fuzz testing tool. Designed and implemented a fuzz testing framework that operates under the Dr. Memory testing tool, allowing a target function to be repeatedly executed with randomly generated inputs, such that the program executes normally until the fuzz target is reached, and the target can be repeated without restarting the program. Committed the Dr. Fuzz implementation to the open-source Dr. Memory repository.
Research and Development 5/2014-9/2014 · DynamoRIO via Google Summer of Code
Project: JIT Optimization with Annotation Support. Reported in “Optimizing Binary Translation of Dynamically Generated Code” with co-authors Brian Demsky, Derek Bruening and Qin Zhao (CGO 2015; slides). Designed and implemented a system of annotations for C/C++ programs that are transparent during native execution, but are transformed under DynamoRIO into platform function calls. Optimized DynamoRIO for dynamically generated code by increasing the granularity of code change detection. Reduced the overhead of DynamoRIO for the Octane benchmark from 15x on Chrome V8 and 4.4x on Mozilla Ion to just 2.5x and 2.25x native speed (respectively).
Independent Research and Development 3/2011-12/2011 · HawkinsSoftware
Formulated a novel normalization technique for object structure in Java programs. Developed a new Eclipse compiler plugin that enforces the Role Normalization and Synthesis modeling rules in annotated Java code. Evaluated RNS and its compiler plugin by developing a prototype transaction-based user interface library for Java that relies on the RNS rules for complexity management and the enforcement of its design principles.
Java Product Architect and Director of Technology 12/2009-3/2011 · TSS Wireless (now TSS Paratransit).
Designed the architecture and developed the core code of the Scheduling Server, an EJB application with a custom cache deployed to JBoss 5.1, which served to optimize paratransit trip scheduling. Implemented failover to a backup server, and emergency failover to 2-tier operation. Led a team of 5 developers and 2 business analysts who also served as testers. Developed automated unit tests and integration tests to verify correct system functionality.
Designed and developed new features for the 5M application, a Java Swing rich client which facilitates paratransit administrative operations.
Application Architecture and Java Swing, Eclipse RCP and OSGi Development 2/2008-10/2009 · Harris Stratex (now a communications division of Airbus)
Designed the architecture and developed the core code for all user interface applications of NetBoss XT versions 2.4 and 2.5. Pioneered an OSGi application framework based on Swing and Equinox which supports seamless integration of new features developed by third parties and/or customers. Architected the domain management feature, which allows massive networks to be systematically divided into user-defined domains, each having separate permissions per user. Led teams of 3-5 developers in an “agile with scrum” environment to implement the applications.
Designed the architecture and developed the core code for Agent Workshop, an Eclipse RCP application based on EMF supporting Java development and graphical modeling of network management agent software. Includes an integrated Agent Runtime Server allowing agent developer to hot-patch code changes from the IDE for efficient testing and debugging.
Designed the architecture and developed the core code for an OSGi-based Agent Runtime Server supporting multiple concurrent versions of network management agents.
Application Architecture and Java Swing/J2EE Development 1/2007-12/2007 · contract for the South Florida Water Management District.
Designed the application architecture and wrote all code for the Graphical Verification Analysis (GVA), a J2EE application hosted on Oracle Application Server using Oracle DBMS with a Swing desktop client.
Client Application Architecture and Java Swing Development 11/2004-1/2007 · SafeHarbor Technology Corporation
Designed the architecture and wrote all code for the SafeHarbor Knowledge Management Application, the user-interface for a metadata-driven website production infrastructure, using Swing with custom components. This distributed application facilitated production of SafeHarbor's multi-million dollar support website for Sprint in less than 6 weeks. Also designed and developed Project Falcon, a desktop knowledge article publication platform using Swing with custom components and timer-based animation.
Java/Flash Development 1/2003-10/2004 · Startup: megapictures.net
Created the online slideshow hosting site www.megapictures.net using Flash with a Java webserver. Developed the Slideshow Builder in ActionScript 2.0 with Flash components, using Flash Remoting for server connectivity. Built the webserver with JSP and Java servlets. Designed and implemented an interactive guide based on the Integrated Tutorial Model (see next section) to facilitate usability for the self-proclaimed "computer illiterate."
Research and Development 2/2003-4/2003 · HawkinsSoftware
Developed the Integrated Tutorial Model (ITM) to mediate the inherent difference in information processing style between humans and computers. Software developers use ITM to produce a set of integrated help features that collectively explain the functionality of an application to its end user. The principles of ITM are derived from tensor calculus and Riemann geometry to guarantee that every point of application functionality is presented to the end user, and that the set of integrated help features is comprised of atomic nodes.
Java/Flash Development 8/2003-1/2004 · Startup showvox.com
Transformed the video community www.showvox.com (similar to YouTube) into a website building tool for non-technical users. Designed and built a Flash application that receives media uploads into the user's online media library, and provided tools for creating Flash-based web pages with rich text, photos and videos.
Java Developer 6/2003-8/2003 · Contract for showvox.com
Re-developed the Java webserver from the former site www.shareyourworld.com into the new online video community www.showvox.com. Added credit card processing.
Research and Development 9/2002-8/2003 · HawkinsSoftware
Designed and developed Decaf Java, a point-and-click plugin development tool suitable for integration into any desktop application. Software developers use Decaf Java to create "plugin icons" corresponding to selected elements of user-level application functionality. The application user customizes the application by making sequences and structures with these plugin icons. Under the hood, Decaf Java compiles these sequences and structures into java classes that perform the functionality specified by the end user. A JNI integration package is provided for native applications.
Java Development 6/2002-8/2002 · Startup: NetPlasma Corporation
Design and development of the initial prototype of the flagship product, which encapsulates data source routing within a replicated and partitioned database application environment. This middle-tier utility simplifies the administrative tasks of adding, partitioning and removing database servers within the environment by providing a Swing user-interface that manages changes to data source locations and content.
Research and Development · view summary 5/2001-5/2002 · HawkinsSoftware
Established a mathematical foundation for simplifying programmatic access to a database while improving to efficiency to disk-read time. Applied concepts of tensor calculus and Riemann geometry to model the fundamental differences between object-oriented data constructs and database storage facilities. Applied concepts of quantum mechanics and Einstein's Theory of Relativity to model the fundamental differences between a database index and the contents of its indexed table (i.e., derived a tensor d(index)/d(data)). For more information please refer to the official summary page for this project.
Java Developer 12/2000-3/2001 · contract for InstantService.com (now a component of the Oracle Commerce Platform)
Design and development of in-house administration facilities using Java servlets (Apache/JRun) and a custom version of my object-relational mapper. Developed new features in the online customer service application and cleared the backlog of existing bugs. Proposed detailed designs for future infrastructure enhancements, including: proper application of JFC; encapsulation and optimization of database access; standardization of generic facilities across the network.
Research and Development 7/2000-11/2000 · HawkinsSoftware
Explored the potential for simplification of database access through the development of an intermediate layer of translation code (such as a mapper). Discovered a linear conflict between data access flexibility and efficiency where 100% accuracy is required. Concluded that there exists no algebraic (mapping) solution to the flexibility and efficiency problems of today's data storage and retrieval systems.
Design and development of an internet and email server for in-flight connectivity on commercial airlines, which allows passengers to browse the internet and send email during flight. Worked with a team of 6 to design core server functionality, define use cases, and implement the system in Java.
Server Architect and Java Developer 1/2000-3/2000 · Startup: the Joshua Group
Architecture, design and development of an EJB application server running against Domain (an ODBMS). Retrofit existing database applications to the new server. Applied my object-relational mapper to integrate the server with any RDBMS. Design and development of the company's public website using JSP. Design and development of a custom Internet browser including special parsing of custom HTML tags. Deployment and administration of the initial production server. Introduction of CVS and other such development standards to the company.
Java Servlet Developer 7/1999-11/1999 · US West Communications (now Century Link)
Design and development of Java servlets (Apache/JServe) using my object-relational mapper. Increased department efficiency dramatically by integrating the O/R mapper into existing servlet framework. Projects includes backend programming for live video display systems at the Pepsi Center in Denver, CO.
Java Swing Developer 5/1999-6/1999 · Excell Data Corporation
Design and development of a Java applet and application server component to provide Internet access to a Gemstone/Smalltalk database application.
Freeware Development 1/1999-5/1999 · HawkinsSoftware
Designed and developed FormLayout (extends java.awt.LayoutManager), a Java layout manager that serves to construct business forms with random-access row and column parameters per component or label/field pair. Wrote an article for Sun Microsystems' publication The Swing Connection about FormLayout and effective use of the LayoutManager interface. I continue to receive grateful emails from developers who are delighted they no longer have to lay out their business forms by hand.
Software Developer 1/1998-1/1999 · Asix, Inc. (now Thomson-Reuters tax division)
Design and development of Ascend, a property tax management system for county governments. Developed a persistence framework for previous versions of the product, and added maintenance-release features with record efficiency. Organized code policy and implemented system wide overhaul.
Software Developer 1/1997-9/1997 · Startup: Sequel Technology
Developed the prototype and initial version of the Sequel Proxy Filter in C++, an Internet proxy server that integrates with the flagship product Internet Resource Manager (IRM). Developed installation utilities for IRM. Organized and oversaw the build and deployment process.
Software Developer 6/1996-12/1996 · AT&T Wireless
Built new features in the middle tier of the Axys project, a customer service database application for cellular service billing and accounts. Developed a unit test driver in C++/Unix using RogueWave foundation classes to test the middle tier, including an automated test case generator similar to Sun Microsystems' SunTest.