\documentclass[sans]{moderncv}

\moderncvstyle{casual}
\moderncvcolor{blue}

\name{David}{Thompson}
\title{Software Engineer}
\phone[mobile]{+1~(774)~289~6629}
\email{davet@gnu.org}
\homepage{http://dthompson.us}

\begin{document}
\makecvtitle

\section{Objective}

To acquire a software engineering position for the purpose of
developing ethical Free and Open Source software.

\section{Work Experience}

\cventry{2014--Present}{Web Developer}{Free Software
  Foundation}{Boston, MA}{}{Web development for the advancement of the
  Free Software movement.\newline{}
  \begin{itemize}
  \item Helped migrate membership system from defunct in-house system
    to CiviCRM.
  \item Created new web interface for FSF members to manage their
    membership, payment, and contact information.
  \item Created JavaScript-based web client for live streaming the
    LibrePlanet 2015 conference using Icecast's JSON API and
    MithrilJS.
  \item Improved central authentication system by contributing patches
    to the rubycas-server project.
  \item Created an SRT to WebVTT subtitle conversion tool in Guile
    Scheme for use with HTML5 video.
  \item Extended many Free Software web applications to meet
    foundation requirements including CiviCRM, Drupal, Plone,
    MediaWiki, Piwik, and GNU MediaGoblin.
  \item Served as the Assistant Chief Webmaster of \url{gnu.org}
  \item Coordinated development efforts with volunteers worldwide.
  \item Wrote and spoke about Free Software publicly on behalf of FSF.
\end{itemize}}

\cventry{2012--2014}{Web Developer}{Vista Higher Learning}{Boston,
  MA}{}{Ruby on Rails and AngularJS web development.\newline{}
  \begin{itemize}
  \item Worked in large Ruby (Rails) and JavaScript (AngularJS,
    JQuery) codebase with thousands of active users on production
    servers.
  \item Lead development on single-page JavaScript web applications
    using AngularJS.
  \item Wrote extensive unit/integration tests for client and
    server-side code using RSpec, Cucumber, and Jasmine.
  \item Solved major performance problems via optimizing
    underperforming database queries generated by ActiveRecord, using
    Ruby's profiler and qcachegrind to examine poorly performing code,
    using tcpdump/Wireshark to investigate low-level HTTP issues, and
    using JMeter and PhantomJS for automated statistics gathering and
    stress testing.
  \item Worked on HTTP API microservice with Redis caching layer.
  \item Helped integrate sitewide XMPP-based text/video chat system
    with JavaScript client and specialized authentication backend.
  \item Worked with team that highly values peer code review before
    applying patches.
\end{itemize}}

\cventry{2010--2012}{Intern}{Cyberonic Internet
  Communications}{Worcester, MA}{}{Web development and GNU/Linux
  system administration.\newline{}
\begin{itemize}
\item Performed MySQL to PostgreSQL database migration for new
  customer management and billing system.
\item Administered Debian and CentOS production servers.
\item Developed a multi-location WiFi captive portal management web
  application using PHP, JavaScript, and FreeRADIUS.
\end{itemize}}

\section{Free and Open Source Software Contributions}

\begin{itemize}
\item GNU Guix -- core developer -- Purely functional package manager,
  system configuration tool, and GNU/Linux distribution written in
  Guile Scheme.
\item Sly -- author -- Game engine featuring live coding and
  functional reactive programming written in Guile Scheme.
\item GNU Guile -- contributor -- Implementation of the Scheme
  programming language.
\item srt2vtt -- author -- SRT to WebVTT subtitle converter
\item KADE -- contributor -- Microcontroller firmware for arcade
  controllers.
\end{itemize}

\section{Education}

\cventry{2008--2012}{Bachelor of Computer Science}{Worcester State
  University}{Worcester, MA}{\textit{3.7 GPA}}{Recipient of a 2012
  Academic Achievement award\newline Member of Programming Team
  (2010-2012)}

\end{document}

%% Local Variables:
%% compile-command: "pdflatex resume.tex"
%% End:
%% end of file 'resume.tex'.
