Work History

The Avail Foundation

Madison, Wisconsin

2012 to present

Role:

Co-Founder / Chief Executive Officer

Provide vision for the Avail programming language and leadership for the Avail team. Enthusiastically evangelize the Avail technology and its applications. Network with industry professionals and university faculty in order to increase the visibility of Avail and the Avail Foundation. Conduct live demonstrations of the Avail technology.

Collaborate on the design and implementation of the Avail programming language. (N.B. The Avail Foundation formally came into existence in 2012, but I began working on Avail in 2008.)

Designed and implemented the Avail server. The virtual machine now incorporates a high-performance, asynchronous, multi-threaded, standards-compliant implementation of WebSocket (RFC 6455). Web clients can leverage this mechanism to load Avail modules, interrogate an Avail system, and execute programs written in Avail.

Designed and implemented the Avail concurrency mechanisms. Avail threads are lightweight agents that are transiently bound to native threads by a preemptive scheduler, thereby utilizing multiple CPUs while also transcending the concurrency and resource limits of the underlying OS. High-level synchronization mechanisms emerge gracefully from atomic primitives, such as compare-and-swap, that operate on semantic equality. Avail elides low-level synchronization when accessing objects that provably cannot be referenced by multiple threads.

Design, implement, maintain, and support commercial products. Lead all application developers. Institutionalize IT and oversee IT operations and budget. Develop the business. Write grant proposals in response to relevant funding opportunity announcements (FOAs).

Created Advocus, an application development platform that integrates a powerful rule engine with a high-performance server and a distributed database. The platform tightly integrates: an optimizing compiler for a strictly-typed, high-performance domain-specific language (DSL) designed to enable non-technical subject matter experts (SMEs) to develop complex rulesets and formulae; a suite of development tools, including visualization tools for understanding networks of rules and associated state variables; a customizable, asynchronous, parallel rule engine; a high-throughput, deadlock-free, asynchronous, WebSocket-enabled application server; a fully auditable, blob-oriented, distributed, multi-tenant database that automatically generates and maintains indices and data stores in accordance with query, reporting, and aggregation rules defined in the DSL; and a skinnable modern web client. The system supports live or automated intake by multiple simultaneous users, potentially editing through disparate semantic views, and generates appropriate reports, alerts, and events. The system implements a uniform security policy that crosscuts all application layers. The main product built on the platform is the eponymous My Coverage Plan™, a customer decision support tool intended to help advocates and patients to secure healthcare benefits.

Architected Advocus. Designed the DSL. Implemented the optimizing compiler, the development tools, the application server, and the initial web client in the first six (6) months. Designed the persistence layer. Designed all security policies. Participated in architectural and security discussions and exercised product authority throughout. Produced the My Coverage Plan™ product in one (1) year with a team of three (3) on a minimal budget.

Identified, interviewed, hired, managed, led, and mentored all application developers. Set development guidelines and established code style standards for Avail, Java, and TypeScript. Conducted code reviews. Managed product development, establishing milestones and feature sets. Produced Gantt charts and other project management instruments to keep stakeholders apprised of development progress. Trained SMEs on use of the DSL and the My Coverage Plan™ tool. Produced official product documentation. Presented official product demonstrations to partners and customers. Wrote grant proposals to obtain funding for marketing the My Coverage Plan™ product.

Institutionalized IT best practices. Oversaw IT operations. Built-out the private virtual cloud (VPC) in Amazon Web Services (AWS) that ran the My Coverage Plan™ product. Managed and budgeted AWS resources. Performed all necessary system administration, including security updates.

Created Barrage, a strictly-typed, high-performance domain-specific language (DSL) for specifying patterns within time-series data generated by Internet of Things (IoT) sensors. The Barrage runtime applies these patterns to discover complex events and report them. Designed the Barrage compiler and implemented it in Avail. Prototyped the Barrage virtual machine (VM) in Smalltalk. Designed the production Barrage VM and implemented it in Java, using dynamic translation of Barrage bytecodes to Java bytecodes to maximize performance.

Designed and implemented MIOsoft's MIOplexer™, a platform-neutral network transport layer engineered to scale significantly beyond the 16-bit port limitations imposed on user applications by TCP implementations. MIOplexer provides deep, efficient network buffering and a robust service architecture that supports anycast and multicast addressing, load balancing, persistence of identity, and reliable notification of events. The existing deployments effectively and efficiently manage tens of millions of active communication endpoints distributed across thousands of user applications and hundreds of nodes while requiring only commodity hardware.

Designed and implemented vital subsystems of MIOsoft’s MIOedge™ cloud platform. MIOedge conjoins a business application development environment, a high-performance distributed object database engine, and a sophisticated ad hoc reporting apparatus. The existing deployments include multi-petabyte databases supported by hundreds of nodes.

Designed and implemented fast parallel algorithms for performing statistical analysis of extremely large datasets (i.e. > 1 TB). Sub-second responses are normal for datasets of < 1 million records. Algorithms were specifically engineered to maximize disk and network throughput while avoiding contention between the participating hosts.

Developed and maintained a custom VisualWorks virtual machine for use with MIOedge. In particular, resolved critical defects in the virtual machine’s garbage collection, dynamic translation, network I/O, and event notification subsystems. Introduced numerous performance enhancements and supplementary features. These modifications enabled the use of the platform for reliably developing and deploying enterprise applications.

Designed, developed, tested, and benchmarked high-performance genetic algorithms and genetic programming multi-paradigm toolkit. Features and functionality are competitive with existing toolkits (e.g. Open BEAGLE, JAGA) but tailored to the pharmaceutical domain with domain-specific operators and evolvers.

WebInsights

Raleigh, North Carolina

2002 to 2005

Role:

Director of Information Technologies

Environment:

Linux. C++ .NET, Perl. Oracle, PostgreSQL.

Managed and spearheaded development of software products. Responsible for the product design, system design, development, testing, maintenance, and deployment of all company products.

Developed eMARC, a web-based instructional tool implemented using Apache, mod_perl, and Oracle/PostgreSQL which enables instructors to record standards-based observations and assessments and allows principals and central office administrators to gather classroom statistics and oversee staff usage. For a time, this product was in use at all Wake County public elementary schools.

Developed eMARC Mobile, an iPAQ/Windows CE application written in Visual C++ .NET which gives instructors the ability to record student observations during class and then hotsync with eMARC.

Developed QV, a web-based assessment authoring system implemented using Apache, mod_perl, and Oracle/PostgreSQL which promotes community sharing and supports on-line student testing.

Served on a team of system administrators responsible for building, implementing, and maintaining nearly 200 development and testing machines, including Sun servers running Solaris 2.5, 2.6, 7, 8, IBM servers running AIX 4.3, HP servers running HP-UX 10.20 and 11, and Compaq servers running Windows NT and Windows 2000 Server. Responsible for the design, development, testing, and deployment of software written to simplify the task of administering a large test lab.

Created and deployed secure server/client software designed to permit web-retrieval of log files from arbitrary hosts in the test lab using C and Perl. This enabled system administrators and software developers to access system or application logs with minimal effort and time investment.

Assisted testers and developers in conducting functionality and stress tests for the in-house on-line bill-pay product. Performed code reviews of core system components of said product, including plug-ins for Netscape iPlanet Web Server 6.0 (a secure passthrough plug-in and an SSL connection-pooling plug-in).

Performed operating system and application software upgrades and migrations for Sun, IBM, and HP systems, as well as performing routine maintenance for those systems.

WorldCom

Research Triangle Park, North Carolina

2000 to 2001

Role:

Senior Software Developer

Environment:

Windows NT, OS/2. C, Perl. Oracle.

Led software engineers and business analysts in the design, development, documentation, and delivery of internal, high-profile, revenue-sensitive software. Played a central role in database and software design, development, and administration. Represented our project in a leadership capacity to other organizations and individuals within the company.

Rigorously designed, implemented, and tested a complex data-auditing suite using Perl, PerlXS, C, and PL/SQL. Enabled the company to diagnose database and network problems central to billing and revenue recovery.

Solely developed specialized benchmarking and bottleneck identification software using Perl, PerlXS, and C. Enabled the development team to measure performance and improve throughput in critical sections of code, thus empowering the company to increase the frequency of audits and thereby rectify network-to-database synchronization issues more expediently.

Acted as a subject matter expert to a team of data analysts responsible for testing the correctness of the implemented utilities. Intimately involved in testing and bugfixing.

BrainBench

Raleigh, North Carolina

2000

Role:

Test Developer

Developed a skill certification test for C programming. Worked from a committee approved test content outline to develop a 135 question multiple choice test aimed at determining the aptitude of C programmers. Provided more than 200 test takers per hour with a means of demonstrating their value to prospective employers.

Homes.com

Tallahassee, Florida

1999 to 2000

Role:

Senior Software Developer

Environment:

Solaris, Linux, Windows NT. C, Perl. Oracle.

Led a team of software developers in the design, implementation, and maintenance of mission-critical infrastructure components and subsystems. Assisted in the administration of production Unix systems running on Sun and PC hardware.

Produced a highly flexible statistical analysis and aggregation tool, using Perl, PerlXS, C, Lex, and PL/SQL. Provided the company with a viable alternative to purchasing a high-cost statistics solution. Empowered the company to perform clickpath and trend analysis of site activity on the consumer and corporate sites.

Produced a high-performance mail engine using Pro*C and PL/SQL. Enabled the company to provide high-volume e-mail services to over 15,000 customers.

Produced a web-based mail merger using Perl. Provided the company with a powerful and convenient means of mailing personalized newsletters, service announcements, and other notices to over 15,000 customers or company employees.

Produced a red alert status monitor for the company's production servers using Visual Basic and SQLServer. Provided the system administrator with immediate notification whenever vital processes began to flag or ceased to function, thereby minimizing server downtime.

Maintained a suite of Visual Basic utilities designed to generate and manipulate PDF documents. Enabled the company to generate forms quickly and to customer specification.

Supercomputing Computations Research Institute

Tallahassee, Florida

1998 to 1999

Role:

Software Developer

Environment:

Linux. C, Perl, Java.

Assisted professors in the development of distance learning tools for Florida State University, particularly in the science and liberal arts arenas. Produced a virtual classroom and discussion board. Enabled professors to conduct lectures, proctor examinations, and host live discussions for students online. Provided the university with a means to enroll students studying abroad in web-friendly courses.

Department of Physics, Florida State University

Tallahassee, Florida

1997 to 1998

Role:

Software Developer

Environment:

Linux. FORTRAN.

Assisted professors in the analysis of data produced by experiments with Florida State University's low-energy nuclear accelerator. Produced a lambda particle decomposition analyzer. Enabled professors to perform high-quantity data analysis of reaction-induced particle four-vectors.