From 36a12673b2d03287351e83360f72a58f88fbb033 Mon Sep 17 00:00:00 2001 From: Mike Gerwitz Date: Thu, 23 Jul 2015 00:21:10 -0400 Subject: [PATCH] =?UTF-8?q?:R=C3=A9sum=C3=A9=20added?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Makefile | 1 + docs/10-about.md | 3 + docs/about/resume.html | 713 ++++++++++++++++++++++++++++++ docs/about/resume/.gitignore | 2 + docs/about/resume/style-print.css | 42 ++ docs/about/resume/style.css | 273 ++++++++++++ 7 files changed, 1035 insertions(+) create mode 100644 docs/about/resume.html create mode 100644 docs/about/resume/.gitignore create mode 100644 docs/about/resume/style-print.css create mode 100644 docs/about/resume/style.css diff --git a/.gitignore b/.gitignore index 6e6401d..4d13571 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.html +!docs/about/resume.html rss.xml www-root docs/papers/.list diff --git a/Makefile b/Makefile index 19024ac..373d3e3 100644 --- a/Makefile +++ b/Makefile @@ -90,6 +90,7 @@ www-root: docs thoughts cp -v style.css www-root/ mkdir -p www-root/docs cp -rv docs/gh/ www-root/docs/ + cp -rv docs/about/resume www-root/about/ clean: rm -rf www-root/ diff --git a/docs/10-about.md b/docs/10-about.md index 4d651bd..0716ba1 100644 --- a/docs/10-about.md +++ b/docs/10-about.md @@ -32,9 +32,12 @@ member of. hash links in the footer of various pages and the content is licensed for free distribution and, in some cases, modification.) +[View my résumé.][resume] + [0]: http://www.gnu.org/philosophy/ [1]: http://www.gnu.org/philosophy/words-to-avoid.html#Hacker [2]: http://gnu.org/ [3]: http://eff.org/ [easejs]: https://gnu.org/software/easejs +[resume]: about/resume diff --git a/docs/about/resume.html b/docs/about/resume.html new file mode 100644 index 0000000..3fc5609 --- /dev/null +++ b/docs/about/resume.html @@ -0,0 +1,713 @@ + + + + Mike Gerwitz—Résumé + + + + + + +
 
+ +
+

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
  • +
+
+ +
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
  • +
+
+
+ +

+ 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
  • +
+
+ +
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
  • +
+
+ +
Studies—Miscellaneous
+
+
    +
  • History of Computing +
      +
    • Unix / Multics / Lisp Machines
    • +
    • MIT
    • +
    • Bell Labs
    • +
    • Hacking
    • +
    • Historical Figures
    • +
    • Machines
  • +
  • Typesetting
  • +
  • English Writing +
      +
    • Predominantly American
  • +
+
+ +
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
  • +
+
+
+
+ +
+ + GNU/Linux Inside! + +
+ + + + diff --git a/docs/about/resume/.gitignore b/docs/about/resume/.gitignore new file mode 100644 index 0000000..a97fa56 --- /dev/null +++ b/docs/about/resume/.gitignore @@ -0,0 +1,2 @@ + +*.swp diff --git a/docs/about/resume/style-print.css b/docs/about/resume/style-print.css new file mode 100644 index 0000000..96867ed --- /dev/null +++ b/docs/about/resume/style-print.css @@ -0,0 +1,42 @@ +/* Mike Gerwitz Résumé print stylesheet */ +/* CC-BY-SA */ + +body { + border: none; +} + +a, a:active, a:link, a:visited, a:hover { + color: inherit; + text-decoration: none; + border: none; +} + +/* links cannot be followed when printed, so provide URLs for hand-selected */ +/* links, and for title links */ +a[data-print]::after { + content: ' (' attr( href ) ')'; +} +#content > dl[data-print-links] > dt > a::after { + content: '(' attr( href ) ')'; + margin-left: 2em; +} + +abbr { + border: none; +} + +#footer, #misc, #header ul.links { + display: none; +} +#footer-print { + text-align: center; + margin-top: 2ex; +} + +.pgbrk { + page-break-before: always; +} + +.print-only { + display: inline-block; +} diff --git a/docs/about/resume/style.css b/docs/about/resume/style.css new file mode 100644 index 0000000..cbdd352 --- /dev/null +++ b/docs/about/resume/style.css @@ -0,0 +1,273 @@ +/* Mike Gerwitz Résumé stylesheet */ +/* Some colors are part of the Tango Desktop Project's color palette */ +/* CC-BY-SA */ + +@font-face { + font-family: Open Sans; + src: url('/fonts/OpenSans-Regular.woff'); +} + +html { + background-color: #f8f8f7; + height: 100%; +} + +body { + background-color: white; + border-width: 0px 1px; + border-style: solid; + border-color: #d3d7cf; + + width: 750px; + margin: 0px auto 0px auto; + padding: 0px 50px; + height: 100%; + min-height: 100%; + height: auto !important; + + font-family: 'Open Sans', 'Liberation Sans', FreeSans, sans-serif; + font-size: 14px; +} + +a, a:active, a:link { + text-decoration: none; + border-bottom: 1px dotted #204a87; + color: #204a87; +} +a:visited { + color: #3465a4; + border-bottom-style: none; +} +a:hover { + border-bottom-style: solid; +} + +a.title { + font-style: italic; +} + +img { + border: 0em; + margin: 0em; + padding: 0em; +} + +h1, h2, h3 { + font-family: 'URW Gothic L', 'Avant Garde', sans-serif; + font-weight: normal; +} + +h1 { font-size: 2.2em; } + +#content h2 { + color: black; + border-bottom: 1px solid #2e3436; + margin-bottom: 0.5em; + font-size: 1.4em; +} + +#content h2:not(:first-child) { + margin-top: 1em; +} + +#content p, +#content > dl > dd.desc { + text-align: justify; + line-height: 1.5; +} + +#content > dl > dt { + font-weight: bold; + font-size: 1em; + float: left; + clear: left; +} + +#content > dl > dt a { + color: inherit; +} + +#content > dl > dd.type { + font-weight: bold; + margin: 0em 0.5em; + padding: 0em; + float: right; +} +#content > dl > dd.type::after { + content: ','; +} + +#content > dl > dd.period { + font-weight: bold; + margin: 0em; + float: right; +} +#content > dl > dd.desc { + clear: both; + margin: 0em 0em 1em 1em; +} +#content > dl > dd.desc blockquote { + margin: 0.5em 1em; +} + +#content > dl > dd.desc > ul.detail-list, +#content > dl > dd.desc > ul.detail-list ul { + display: inline; + list-style: none; + margin: 0px; + padding: 0px; +} +#content > dl > dd.desc > ul.detail-list ul, +#content > dl > dd.desc > ul.lang { + font-size: 0.9em; +} +#content > dl > dd.desc > ul.lang::before { + display: inline; + font-weight: bold; + content: 'Languages/Tools: '; +} + +/* using li nodes rather than ul itself rids extra whitespace */ +#content > dl > dd.desc > ul.detail-list ul > li:first-child::before { + content: '('; +} +#content > dl > dd.desc > ul.detail-list ul > li:last-child::after { + content: ')'; +} + +#content > dl > dd.desc > ul.detail-list li { + display: inline; + padding: 0px; +} + +#content > dl > dd.desc > ul.detail-list > li:not(:last-child)::after { + display: inline; + content: '; '; + word-spacing: 0.25em; /* instead of padding; strips whitespace from */ + /* beginning and end of line */ +} +#content > dl > dd.desc > ul.detail-list ul > li:not(:last-child)::after { + display: inline; + content: ', '; +} + +#header { + padding-top: 50px; +} + +#header div.leftcol { + float: left; + clear: left; +} + +#header h1.name { + margin: 0em; + padding: 0em; +} + +#header h2.name-subline { + font-size: 1em; + text-transform: uppercase; + letter-spacing: 0.1em; + font-weight: normal; + color: #666f63; + + margin-top: 0px; + margin-bottom: 2em; +} + +#header p.name-subline { + color: #202020; + margin: 0.25em 0em 0em 0em; + font-size: 1.1em; + + letter-spacing: 0.15em; + text-transform: uppercase; +} +#header .name-subline a, +#header .name-subline a:active, +#header .name-subline a:visited, +#header .name-subline a:link { + border: none; + color: inherit; +} +#header .name-subline a:hover { + border-bottom: 1px dotted #204a87; +} + +#header ul.links { + position: fixed; + width: 50px; + right: 0px; + top: 60px; + + list-style: none; + margin: 0px; +} +#header ul.links li { + margin: 0px; + padding: 0px 0px 0.5em 0px; + float: left; +} +#header ul.links a { + border: none; +} + +#header #infobox { + float: right; + text-align: right; + margin: 0px 0px 1em 0px; +} + +#header #infobox address { + font-style: normal; +} + +#header #infobox dl.contact dt { + font-weight: bold; + display: inline-block; + float: left; + clear: left; + margin-bottom: 0.2em; +} +#header #infobox dl.contact dd { + margin: 0px 0px 0px 1em; + clear: right; + float: right; + margin-bottom: 0.2em; +} + +#footer { + text-align: center; +} +#footer p.copyright { + margin: 0.7em 0em 0em 0em; + font-size: 0.8em; + display: inline-block; +} + +#misc a { + border: none; +} + +.print-only { + display: none; +} + +.clear { + clear: both; +} +.clear.head { + border-top: 1px solid #d3d7cf; + margin: 0px 0px 1em 0px; +} + +#gnuinside { + position: absolute; + display: block; + + top: 0px; + right: 0px; + width: 50px; + height: 50px; +}