Objective
Full-time system, server, and/or web application 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 sixteen years' experience in various areas of software development. I am a free software activist, a volunteer and maintainer for the GNU Project, 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 produce free software.
Experience
- 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.
- 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 coders.
- Earth's Magic, Inc.
- May 2006–September 2007
- Created an online pregnancy journal website for a client based off of the popular bulletin board software phpBB.
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.
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 GitLab profile 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
- Git
- LibreJS-Compatible
- GNU Screen
- November 2013–Present
- Contributor
- Refactoring and cleanup of window message system and related code; creation of supporting abstractions; introduced unit tests. Working on integrating GNU Guile.
- 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
- GNU Guile
- Gnulib (Test Headers)
- Git Shortmaps
- December 2013–Present
- Author
- Concise (mostly one- and two-character), user-configurable commands for Git with support for Bash tab completion. Developed to drastically reduce tedious and frustrating repetitiveness of common Git commands.
-
- Shell (Bash)
- Git
- shspec
- May 2014–Present
- Author
- Behavior-driven development (BDD) for Shell. Project is incomplete.
-
- Shell (Bash)
- Autotools (Autoconf, Automake)
Articles, Awards, 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é.
- 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 four 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; and participate in general discussions regarding the GNU Project as a whole.
- I participate in general activism pursuant to the goals of GNU, usually addressing the issue of non-free JavaScript. Notably, I worked with Sytse Sijbrandij (GitLab B.V. CEO) to freely license all GitLab EE JavaScript.
- 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 am also on the JavaScript Developers Task Force, part of the FSF's Free JavaScript campaign.
- 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. Academic are those I research, but am not yet proficient in. 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)HTML15+
- XHTML 1.1
- HTML 5
- CSS15+
- 2
- 3
- PHP10+
- 4
- 5
- JavaScript7–10
- ECMAScript {3,5,6}
- Shell10+
- POSIX
- Bash
- C5–10
- ANSI
- C89
- C11
- TeX5+
- Plain
- LaTeX2e
- AWK3–5
- POSIX
- Gawk
- Lisp2–4
- Elisp
- RnRS Scheme
- Guile Scheme
- XSLT3–5
- 1
- 2
- Texinfo5+
- SQL10+
- MySQL
- SQLAnywhere
- MSSQL
- WEB2+
- Org-mode
- Other/Custom Literate
- noweb
- CWEB
- (X)HTML15+
- 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)
- Languages—Academic
-
- ML
- OCaml
- Joy
- Erlang
- Forth
- Postscript
- Lua
- Coq
- B
- BCPL
- Brainfuck
- Octave
- Ada
- ALGOL
- COBOL
- Fortran
- Pascal
- PL/I
- ML
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 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
- 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
-
- Cryptography
- Various Algorithms
- Mathematics
- Category Theory
- Set Theory
- Anything Else
- Machine Learning
- Neural Networks
- Genetic Algorithms
- 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
- Cryptography