Internship 1/2017-present · 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 Student Research 7/2016-present · 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 CrowdCFI virtual machine extends 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.
Product Architect, Java Developer and Director of Technology 12/2009-3/2011 · TSS Wireless.
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 · Netboss Technologies.
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. The application features:
GVA Client Features
GVA Server Features
The GVA client and server share a codebase of 45,000 lines (pure code count).
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. View screenshots of Project Falcon in a case study for the RealObjects Edit-On JavaBean. The Knowledge Management Application and Project Falcon share a codebase of 100,000 lines (pure-code count).
Features of the Knowledge Management Application
Java/Flash Development 1/2003-10/2004 · Developer and owner of 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 · technical partner of ShowVox Corporation
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 Corporation
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 · contract for 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
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.
Java Developer 4/2000-7/2000 · Tenzing, Inc. (now OnAir)
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 · contract for 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 Qwest)
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.
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 · 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.
Bachelor of Science in Computer Science, Pacific Lutheran University, 1996; 3.65 GPA.
Bachelor of Musical Arts, Pacific Lutheran University, 1996; 3.65 GPA.