Objective
Full-time software developer with a passionate team of hackers that respect users' freedoms, strive to innovate, and embrace challenge.
Summary
I am a self-driven and passionate hacker with over seventeen years' experience in various areas of software development. I am a free software activist with a focus on user privacy and security; a volunteer and maintainer for the GNU Project; and both author and contribute to various free software projects. I am seeking a challenging and innovative team of hackers that are also passionate about their work and will take advantage of my wide range of skills. A prospective employer must be willing to use and write free software, and be positive toward software freedom and the free software movement. I am also interested in academic/research settings as both a hacker and an educator.
Experience
- R-T Specialty, LLC Buffalo (formerly LoVullo Associates, Inc.)
- March 2009–Present
- Designs, develops, and maintains web applications, application frameworks, server software, and compilers for domain-specific languages (DSLs) for an Excess and Surplus Lines Insurance Agency. Most work involves developing complex online raters to provide comparative insurance quotes, integrating and automating various systems, and providing a suite of development tools and DSLs to support those systems. Also responsible for developer training and extensive knowledge transfer through design discussions, documentation, peer programming, and code review.
- Some code written for LoVullo Associates has been released as free software, and I continue to liberate more. I drive this effort almost exclusively. (This effort has been put on hold—hopefully temporarily—until a proper agreement can be reached with R-T, who acquired LoVullo in April 2017.)
- Freelance Web Developer
- March 2006–March 2009
- Worked as a freelance web developer primarily through vWorker (previously RentACoder) with a 10/10 rating, ranked higher than 99% of all other developers.
Projects
Listed here are my own projects, as well as projects to which I have contributed notably. I have many miscellaneous playthings that are not listed here; see my Projects page for a full list.
- GNU ease.js
- November 2010–Present
- Author
- A Classical Object-Oriented framework for JavaScript, intended to eliminate boilerplate code and “ease” the transition into JavaScript from other Object-Oriented languages. Features include simple and intuitive class definitions; classical inheritance; abstract classes and methods; interfaces; access modifiers; static and constant members; and traits as mixins. Became a GNU project in December of 2013.
- GNU ease.js was created as a personal project to simplify development of a project at LoVullo Associates, and supports ECMAScript 3 browsers (as far back is IE 5.5). Implementation details and rationale are documented extensively in the manual and comprehensive test cases. See also Classifical Object-Oriented Programming with ECMAScript. Copyright has been assigned to the Free Software Foundation.
-
- JavaScript (ECMAScript 3, ECMAScript 5)
- Shell (POSIX, Bash)
- Autotools (Autoconf, Automake)
- Texinfo
- AWK
- Sed
- LibreJS-Compatible
- Liza Data Collection Framework
- 2010–Present
- Author
- Data collection and processing framework developed at LoVullo Associates to handle hundreds of complex conditional inputs for even more complex comparative rating systems. It contains a powerful type and validation system and controls inputs via predicates over a complex graph of classifications. Programs are defined using a declarative DSL which compiles into JavaScript, drastically simplifying development and maintenance. The client is a web application which integrates and shares code with a RESTful server. It also contains its own tools for debugging and introspection.
- This project integrates tightly with TAME for its classification system.
-
- JavaScript (ECMAScript 2016)
- Node.js
- XSLT 2
- Shell (Bash)
- Autotools (Autoconf, Automake)
- TAME
- 2012–Present
- Author
- This system was developed at LoVullo Associates to handle the complexity of comparative insurance rating systems. It is a domain-specific language (DSL) that itself encourages, through the use of templates, the creation of sub-DSLs. TAME processes only numerical input and output, driven by higher-order predicates. Calculations and predicates are written declaratively without regard for order of execution. The system has powerful dependency resolution and data flow analysis capabilities.
- TAME consists of a macro processor (implementing a metalanguage), numerous compilers for various targets (JavaScript, HTML documentation and debugging environment, LaTeX, dependency graph output, and others), linkers, and supporting tools. The input grammar is XML, and the majority of the project (including the macro processor, compilers, and linkers) is written in XSLT.
-
- XSLT 2
- JavaScript (ECMAScript 2016)
- AWK
- Sed
- Shell (Bash)
- PHP
- Autotools (Autoconf, Automake)
- GNU Screen
- November 2013–July 2015
- Contributor
- Refactoring and cleanup of window message system and related code; creation of supporting abstractions; introduced unit tests.
- This began as a cooperative effort between myself and Amadeusz Sławiński to resurrect the stalled development of GNU Screen. Amadeusz is now a co-maintainer of the project and my changes have been merged upstream.
-
- C (ANSI C, C11)
- GDB
- GNU Make
- Gnulib (Test Headers)
Articles, Talks, and Publications
I am an avid technical writer and activist; my writings are available on my personal website. This section highlights the most notable. Direct links are provided in the online version of this résumé.
- The Surreptitious Assault On Privacy, Security, and Freedom
- March 2017
- My talk at LibrePlanet 2017 surveying some of the most pressing privacy and security concerns of today, with nearly 130 references.
- Restore Online Freedom!
- March 2016
- My talk at LibrePlanet 2016 about privacy, surveillance, and freedom on the Web.
- Gitlab, Gitorious, and Free Software
- May 2015
- Guest post written at the request of GitLab B.V. CEO Sytse Sijbrandij to both explain the controversy surrounding GitLab's acquisition of Gitorious, and to celebrate our joint effort to license all of GibLab EE's JavaScript code—and any code that generates it—as free software.
- National Uproar: A Comprehensive Overview of the NSA Leaks and Revelations
- June 2013
- An extensive article with over sixty references written just after the Guardian released the Verizon Order for the collection of telephone metadata, acquired by the now-known Edward Snowden. Maintained first or second ranking on Google for the search term “NSA leak summary” for days, and to this day is still within the top fifteen search results.
- A Git Horror Story: Repository Integrity With Signed Commits
- May 2012
- An in-depth article on Git commit signing written shortly after support was added to Git. It maintained the top rank on HackerNews for the entire business day, largely introducing the Git commit signing concept to the community. Widely cited, notably by Metasploit, Whonix, Nmap, Atlassian, and the CryptoCall project thesis. References provided in online résumé.
- Classical Object-Oriented Programming with ECMAScript
- February 2012–April 2012
- A paper exploring methods of implementing classical object-oriented programming in ECMAScript 3. This paper describes common patterns; addresses performance concerns; explores alternatives, problems, and exploitations; and begins discussing the the implementation used by GNU ease.js. Paper is incomplete.
- PC Magazine Mention—iBrowser
- June 2004
- Mention in PC Magazine for a project named iBrowser, the world's first voice recognition web browser. Created with a remote friend at the age of fourteen. Personally handled voice recognition, popup blocker, and most other aspects of development.
- Planet Source Code Superior Coding Contest Winner
- February 2003
- Received Planet Source Code's Superior Coding Contest Award for the voice recognition tutorial "Talk To Your Computer" at the age of thirteen.
Affiliations
- GNU Project
- December 2013–Present
- I am the author and maintainer of GNU ease.js; am one of the two GNU software evaluators that review software offered to GNU and work with the author to resolve concerns and adhere to GNU standards before submitting to Richard Stallman (rms) for a final decision; exercise various administrative duties; and participate in general discussions regarding the GNU Project as a whole.
- I participate in general activism pursuant to the goals of GNU, including addressing the issue of non-free JavaScript. Notably, I worked with Sytse Sijbrandij (GitLab B.V. CEO) to freely license all GitLab EE JavaScript, and worked on the GNU ethical repository criteria.
- Free Software Foundation
- October 2007–Present
- Associate member (#5804) of the Free Software Foundation (FSF) and a strong supporter of the free software movement. Actively involved in the free software community. I have had the pleasure of meeting with and working with the FSF staff on a number of occasions.
- I am also on the JavaScript Developers Task Force, part of the FSF's Free JavaScript campaign.
- Electronic Frontier Foundation
- August 2017–Present
- Member of the Electronic Frontier Foundation (EFF). I closely follow and support many of their causes.
- Master Chong's World Class Tae Kwon Do
- February 2010–February 2012
- Student at Master Chong's World Class Tae Kwon Do. While not a technical affiliation, it was an enjoyable and rewarding experience, and an important part of my life. Volunteered when possible and attended class most days of the week.
- I unfortunately had to stop attending classes due to a hip injury and subsequent birth of my first child. I hope to return one day.
Skills, Studies, and Interests
Each item below is ordered by experience, descending. Languages actively used are those that I most often write projects in, either personally or at work. Infrequent languages I have used to write or modify software, but do not have intimate knowledge of. Superscript indicates number of years experience, which does not always correlate to proficiency. Ranges indicate uncertainty due to periods of non-use. Date, if present, indicates last year used.
- Languages—Actively Used
-
- (X)HTML16+
- XHTML 1.1
- HTML 5
- CSS16+
- 2
- 3
- PHP11+
- 4
- 5
- JavaScript8–11
- ECMAScript {3,5,6}
- Shell11+
- POSIX
- Bash
- C5–11
- ANSI
- C89
- C11
- TeX5+
- Plain
- LaTeX2e
- AWK4–6
- POSIX
- Gawk
- Lisp3–5
- Elisp
- RnRS Scheme
- Guile Scheme
- XSLT4–6
- 1
- 2
- Texinfo6+
- SQL11+
- MySQL
- SQLAnywhere
- MSSQL
- WEB2+
- Org-mode
- Other/Custom Literate
- noweb
- CWEB
- (X)HTML16+
- Languages—Infrequent
-
- C++1–2 (2005)
- Scala1- (2012)
- Java1–2 (2014)
- Clojure1- (2014)
- x86{,_64} ASM1 (2013)
- Haskell1- (2014)
- M41- (2015)
- Python1- (2006)
- Ruby1- (2014)
- Perl1 (2009)
- Troff1- (2011)
- MOS 6502 ASM1- (2013)
There are a few languages that I no longer use because they are either non-free or focus on non-free operating systems.
- Languages—Defunct
-
- ASP1–2 (2004)
- Visual Basic5+ (2006)
- 6
- .NET
- BASIC1 (2005)
- QBASIC
Studies differ from interests in that the former are actively or have been in the past researched, whereas the latter are occasionally visited, but otherwise pending formal study.
- Studies—Computer Science
-
- Compilers
- Construction
- Static Analysis
- Control Flow Analysis
- Programming Languages
- Theory
- History
- Security
- Domain-Specific
- Implicit In Other Skills/Studies
- Cryptography
- Implementation
- Algorithms
- Combinatory Logic
- Point-Free Programming
- Concatenative and Stack-Based Languages
- Church-Turing
- λ-Calculus
- Untyped
- Simply Typed
- Logic
- Proof Theory
- Propositional
- Predicate
- Higher-order
- Modal
- Linear Algebra
- Graph Theory
- Compilers
- Studies—Legal and Political
-
- Software Licensing
- GNU General Public License and variants
- Various licenses
- Copyright
- Law
- Fair Use
- Copyleft
- Privacy
- Cryptography
- Law
- Surveillance
- NSA
- GHCQ
- Five Eyes
- FISA
- Domestic
- Snowden
- Court Cases
- Patents
- Court Cases
- Reform
- Software Licensing
- Studies—Miscellaneous
-
- History of Computing
- Unix / Multics / Lisp Machines
- MIT
- Bell Labs
- Hacking
- Historical Figures
- Machines
- Typesetting
- English Writing
- Predominantly American
- History of Computing
- Interests
-
- Cryptanalysis
- Mathematics
- Category Theory
- Set Theory
- Anything Else
- Machine Learning
- Neural Networks
- Genetic
- Deep
- Unsupervised
- Natural Sciences
- Quantum Mechanics
- Cosmology and Planetary
- Theoretical Physics
- Cellular Communication
- Synthetic Biology
- Management
- Team Building / Kaizen Culture
- Kanban
- Lean/Agile/SCRUM/Other Methodologies
- Office Environment
- Psychology
- Project Management
Education
- Self Educated
- 2000–Present
- Primarily self educated: learning through experimentation; hacking free software; interaction with others; and extensive reading and research.
- Clarence High School
- September 2002–June 2007
- Attended technology and programming courses with pre-existing knowledge that surpassed that of the instructors' and vastly exceeded class scope. Helped to instruct students when instructor was unavailable, and aided in the answering of any questions.