Garret Wilson Resume



Subject During Skill (1–10) Experience
Ajax 2005–present 9 >10 years
Android 2011–2013 7 2 years
C++ 1990s 8 (out-of-date) >10 years
Hibernate 2010–2011 6 2 years
Hypertext Transport Protocol (HTTP) 9 >15 years
Java 1997–present 10 >15 years
Java Enterprise Edition (Java EE) (Servlets, JSP, EJB, etc.) 8 >10 years
Java Database Connectivity (JDBC) 5 (rusty) >10 years
Java Message Service (JMS) 5 (rusty) >10 years
Java Swing 10 >10 years
JavaServer Faces (JSF) 2004–2005 9 (rusty) 2 years
JavaScript/ECMAScript 6/2015 8 >15 years
Resource Description Framework (RDF) 9 >10 years
Spring 2012–2014 4 3 years
SQL 7 >15 years
Unified Modeling Language (UML) 8 >10 years
Web Services (RESTful, SOAP, etc.) 9 >10 years
Wicket 2010–2015 8 5 years
Extensible Markup Language (XML) 1997–present 10 >15 years


Computer Languages

Java 1.0/1.1/1.2/1.3/1.4/5.0/6.0/7/8
I have expertise with applications, applets, threads, networking, and reflection. I am an expert in the latest Java language features, such as typesafe enumerations, generics, streams, and lambdas.
Extensible Markup Language (XML)
I have implemented an XML processor from scratch directly from the XML specification. I constructed an XML-based persistence scheme for Java objects using the Java reflection API. I created XML schema parsers and CSS parsers to implement the latest W3C recommendations.
I've co-authored markup languages, and have a philosophical insight into good markup design and rigorous separation between content and presentation.
I've created and marketed entire applications written in C++. I've developed a custom windowing toolkit from scratch. I have created an object-oriented framework to wrap low-level TWAIN scanner access, as well as an object-oriented development kit for creating scanner drivers as TWAIN data sources.
I've been intensely involved in JavaScript long before it was fashionable, creating entire Ajax frameworks before libraries like JQuery were available.
Other Languages and Formats
ObjectPascal (Delphi), 6502/6510 assembly, 80x86 assembly, JavaScript Object Notation (JSON)

Frameworks, Protocols, APIs, and Standards

Guise™ and Ajax
Extremely dissatisfied with JSF, I created a comprehensive and elegant Internet application framework that handles asynchronous server communication and real-time component updates transparently. The entire framework component hierarchy is abstracted from the end-user technologies, without application developers to write any HTML or JavaScript. All Ajax functionality was written from scratch.
JavaServer Faces (JSF)
I've worked deep within the JSF reference implementation source code and submitted multiple bugs to Sun. I am the inventor of US Patent 20070016660 for a JavaServer Faces Upload technique.
Hypertext Transport Protocol (HTTP)
I've created from scratch an implementation of HTTP directly from the specification, along with an implementation of the HTTP Digest authentication scheme for both client and server.
Web-based Distributed Authoring and Versioning (WebDAV)
This HTTP extension is the basis for Microsoft's WebFolders. I've created from scratch a WebDAV servlet that allow custom authentication (using, for example, the HTTP digest authentication module I created).
Java Message Service (JMS)
familiar with the the JMS API, and in the past I created an implementation from scratch both on the server and on the client using SOAP as an underlying exchange syntax.
Session Initiation Protocol (SIP)
I've created a SIP server and SIP stack from scratch for this HTTP-like VoIP signaling protocol made to replace H.323.
Java Swing
I've leveraged Swing to to its fullest extent, creating custom formatted text flowing views, many times researching into the Swing source code to find answers and submitting bug reports to Sun. I've created an eBook reading platform which supports XHTML, pagination, and right-to-left languages such as Arabic and Urdu.
Resource Description Framework (RDF)
This metadata framework goes beyond mere descriptions to encode ontological assertions, allowing semantic-aware queries and inferences. I've implemented an RDF processor from scratch, and I have a deep understanding of the propositional underpinnings of RDF and its relation to the semantic web.
Other Frameworks, Protocols, APIs, and Standards
Java Enterprise Edition (Java EE), Java Abstract Windowing Toolkit (AWT), Enterprise JavaBeans (EJB), Resource Description Framework (RDF), Cascading Syle Sheets (CSS), XML Document Object Model (DOM), XML Simple API for XML (SAX), XML Stylesheet Language (XSL), XML Namespaces, XML Schemas, XML Linking (XLink), XPointer/XPath, Active Server Pages (ASP), Java Server Pages (JSP), TCP/IP, UDP, Microsoft Foundation Classes (MFC), Borland ObjectWindows Library (OWL), Delphi Visual Component Library (VCL), Win32 API, TWAIN, C++ Standard Template Library (STL), COM/ActiveX, Unicode, MathML, Unified Software Development Process (USDP), Rational Unified Process (RUP), IMS Question & Test Interoperability Specification, IMS Content Packaging, Simple Object Access Protocol (SOAP), Spring

Platforms and Tools

Operating Systems
Windows 10, Windows 7, Windows Vista, Windows XP, Windows 2000, Windows 9x, Windows 3.1x, Red Hat / CentOS Linux, Ubuntu Linux, Vax/VMS
Development Environments and Tools
Microsoft Visual C++, Borland C++, Borland Delphi, Symantec Visual Cafe, Borland C++Builder, Borland JBuilder, Eclipse, Rational Rose, Together/J, ArgoUML, Magic Draw UML, Maven, Microsoft Visual SourceSafe, Subversion, Git, GitHub, Bitbucket, JIRA
Apache HTTP Server, Apache Tomcat, Orion Application Server, UW-IMAP, SquirrelMail, Mailman, OpenSSL, Amazon Web Services (AWS) / Elastic Compute Cloud (EC2)
Borland Database Engine (BDE), Paradox, dBase, SQL, Java Database Connectivity (JDBC), Oracle, PostgreSQL, SQLite, HyperSQL DataBase, Hibernate, jOOQ

Spoken Languages

Portuguese (Brazilian)
almost fluent
almost forgotten

Communication and Interaction

I have excellent control of the English language, with the skills to write software documentation, prose, or poetry. I excel in education and teaching, working in environments in which I manage and/or educate groups or individuals. I work well as part of a group or alone. I interact well with others of diverse personalities and backgrounds. I apply skills of logical thinking, rational problem solving, and object-oriented design and analysis both to complete my work and to effectively function within the work environment.


Affymetrix, Inc., Santa Clara, California USA (February 2012 – December 2015; Software Development Consultant)
I returned to Affymetrix to help design and implement a new version of the Chromosome Analysis Suite (ChAS) software for visualizing genomic data using Java Swing, Maven, JAX-RS, PostgreSQL, and jOOQ.
Archimedes, Inc., San Francisco, California USA (March 2012 – June 2014; Software Development Consultant)
I implemented new features on the Archimedes health mathematical modeling and predicting platform, parsing and processing customer health data from health care industry standard formats. I fixed bugs and refactored parts of the architecture based on Spring and Wicket in Java.
Navigenics, Inc., Foster City, California USA (November 2010 – November 2011; Software Development Consultant)
I help maintain and develop the front-end and back office web applications, business logic, and database tier for personalized-genetics management. With a team I designed and implemented a multi-time-zone scheduling component and a monthly subscription billing system in Java based on Wicket and Hibernate.
Affymetrix, Inc., Santa Clara, California USA (November 2007 – November 2010; Software Development Consultant)
I formed part of a team designing and implementing the Chromosome Analysis Suite (ChAS) Java software for visualizing genomic data as part of the cytogenetics product.
Grey San Francisco, San Francisco, California USA (June 2005 – May 2007; Consultant)
I helped design architecture of GreySF software projects, provided input on project priorities, as well as guided a team of developers in Shanghai implementing software systems. I was technical lead on the Wellpoint Blue Cross of California small business insurance project, and the entire resulting BeneFits web site is built on top of my Guise™ Internet application framework.
Texas Instruments, Inc., Dallas, Texas USA (May 2002 – 2003; Consultant)
I gave advice on technical data formats for educational content for the TI E&PS division. I provided assistance with implementing recommendations produced by standards bodies such as the World Wide Web Consortium (W3C), the IMS Global Learning Consortium, Inc., and the Unicode Consortium. My contribution primarily supplemented the development of a new version of TI-Navigator, a wireless classroom network system for distributing educational material to TI hardware devices.
WebTelecom, Inc., Pleasanton, California USA (May 2000 – March 2001; Contracted Senior Developer)
I led a team for creating from scratch a transport stack for the Session Initiation Protocol (SIP), the successor to the H.323 voice signaling protocol. I led the architecture for the company's future technologies, which included real-time multithreaded multi-user interaction with EJB/JSP/JDBC integration. I interviewed candidates for joining the development team. I documented legacy code using the latest features of modeling languages such as UML 1.3 within design tools such as Rational Rose and MagicDraw UML. I analyzed and prepared critiques for aiding technology acquisition/partnering decisions. I traced and repaired errors in legacy systems. I constructed a company-specific software development process that is use-case driven, architecture centric, and iterative using the phases (inception, elaboration, construction, transition) outlined in the Unified Software Development Process (USDP) and extended in the Rational Unified Process (RUP).
J. F. L. Peripheral Solutions, Inc., Ottawa, Ontario, Canada (December 1997 – April 1998; Contracted Senior Programmer)
I was responsible for creating the majority of each TWAIN scanner driver for the Bell & Howell scanner models Copiscan II, Copiscan 4000 series, and Copiscan 8000 series. I designed C++-based object-oriented engine using C++ features such as templates and exception handling. I ported this MFC-based engine to Microsoft COM/ActiveX, writing a custom window wrapper object set and constructing an object-oriented TIFF library from scratch.
Mentor Computer Solutions, Chelsea, Oklahoma USA (1993–1999; Owner)
I formally started Mentor Computer Solutions in September of 1993 as a company to produce quality educational software. Mentor Computer Solutions is now GlobalMentor, Inc.
Chelsea Software, IVR, Chelsea, Oklahoma USA (1990–1993; Programmer)
I was responsible for converting company-specific libraries, originally written in BASIC, to assembly language. These libraries comprise PhoneTools, which the company both uses internally and markets to other developers. PhoneTools allows creation of custom Interactive Voice Response (IVR) applications by interfacing with Dialogic voice cards using the BASIC programming language.


Juris Doctor: 17 December 2005; University of San Francisco School of Law, San Francisco, California USA (2002–2005)
I earned a law degree and was awarded the International and Comparative Law Certificate, with Honors.
Master of Business Administration: 17 December 2005; University of San Francisco School of Business and Management, San Francisco, California USA (2002–2005)
I earned a law degree and was awarded the International and Comparative Law Certificate, with Honors.
MA International Studies and Diplomacy; School of Oriental and African Studies, University of London, London UK (1998-1999)
I received a masters with a merit status at the end of 1999.
BS Computer Information Systems: May 1997; University of Tulsa, Tulsa, Oklahoma USA (1993–1997)
I graduated with a cumulative GPA of 3.651. I was a member of the Kappa Sigma Fraternity, where I was social chairman for one semester. I was also president of the Academic All-State Alumni Association, an organization that has grown out of the Oklahoma Foundation for Excellence, promoting academic excellence in Oklahoma's public schools.


Concern Separation Aspect Registrar (Csar) (2016; author)
Provides access to some concern (usually cross-cutting) that may configured globally or locally to some section of the program. Csar acts like a global service locator that provides flexible, transparent local configuration.
Resource I18n Concern Library (Rincl) (2016; author)
Provides a unifying Java API for resource lookup across frameworks, with plug-and-play implementations for resource storage.
Csar Logging Registration (Clogr) (2016; author)
Simplifies SLF4J logger access while providing compartmentalized logging configurations via Csar.


Tulsa Tech Fest 2016 (2016-08-05)
Oklahoma technical training conference. My two sessions are Unicode Processing in Java and Internationalizing Java Applications.
San Francisco Java User Group (2016-08-10)
Introduction to Java internationalization and presentation of the Rincl library.



Differential Filtering of Genetic Data (US 2011/0257896)
Computer software products, methods, and systems are described which provide functionality to a user conducting experiments designed to detect and/or identify genetic sequences and other characteristics of a genetic sample, such as, for instance, gene copy number and aberrations thereof.
JavaServer Faces Upload (US 2007/0016660)
This invention consists of a custom JavaServer Faces UIForm component, a custom JavaServer Faces UIInput component , and a corresponding process which allows file uploads to be implemented within JavaServer Faces without the need for a separate servlet filter.


Uniform Resource Framework (URF) (2007; Author, Editor)
Designed to remedy RDF deficiencies, URF provides a consistent way for representing resources and their relationships. It is useful for data storage, data interchange, data querying, and logical inferences. URF together with its interchange formats provides a more powerful yet in many ways simpler and more consistent replacement for data-oriented XML, RDF, and JSON.
Mentoring Activity and Query-Response Ontology (MAQRO) (2004; Author, Editor)
An RDF ontology for describing query and response scenarios. MAQRO has features especially useful in educational settings. Use cases include storing test and assessment questions; describing a series of educational interactions; planning a series of education activities; and formulating polls.
Open eBook Publication Structure (OEBPS) 1.0.1 (2001-07-02; Co-Author, Maintenance Sub-Group Chair)
A specification for representing the content of electronic books, created through the Open eBook Forum, an international trade and standards organization for the eBook industry. This specification later became the ePub format.

Technology Articles

Easy Resource Internationalization With Rincl (2016-07-14)
Introduces Rincl, the Resource I18n Concern Library, which provides a unifying Java API for resource lookup across frameworks.
Internationalization Using String Resource References (2006-08-01)
Describes a flexible technique of non-intrusive text referencing for application internationalization.
Typed and Targeted Property Change Events in Java (2006-08-01)
Introduces a method for using Java generics when listening for property change events, and for identifying when a change occurred in an object other than the event source.


Refactoring the Law: Reformulating Legal Ontologies (2006)
Explains the common philosophical underpinnings of jurisprudence and software engineering, traces their similar evolutions, and lays out likely future interactions and convergences within and between these two disciplines.
The Effect of Legal Tradition on Affirmative Action in the U.S. and Brazil (2005)
Examines how the distinct legal traditions in Brazil and the United States affect the legitimacy and applicability of affirmative action in those countries.