diff --git a/.gitignore b/.gitignore
index 47d9d6e..e93388d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,5 +4,10 @@ _site/
.jekyll-cache/
.jekyll-metadata
+# LaTeX output files
+*.aux
+*.log
+*.out
+
# Emacs backup files
*~
diff --git a/Gemfile.lock b/Gemfile.lock
index 9c1e491..08987cb 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -5,59 +5,63 @@ GEM
public_suffix (>= 2.0.2, < 5.0)
colorator (1.1.0)
concurrent-ruby (1.1.7)
- em-websocket (0.5.1)
+ em-websocket (0.5.2)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0.6.0)
eventmachine (1.2.7)
ffi (1.13.1)
forwardable-extended (2.6.0)
http_parser.rb (0.6.0)
- i18n (0.9.5)
+ i18n (1.8.5)
concurrent-ruby (~> 1.0)
- jekyll (3.9.0)
+ jekyll (4.1.1)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
- i18n (~> 0.7)
- jekyll-sass-converter (~> 1.0)
+ i18n (~> 1.0)
+ jekyll-sass-converter (~> 2.0)
jekyll-watch (~> 2.0)
- kramdown (>= 1.17, < 3)
+ kramdown (~> 2.1)
+ kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
- mercenary (~> 0.3.3)
+ mercenary (~> 0.4.0)
pathutil (~> 0.9)
- rouge (>= 1.7, < 4)
+ rouge (~> 3.0)
safe_yaml (~> 1.0)
+ terminal-table (~> 1.8)
jekyll-last-modified-at (1.3.0)
jekyll (>= 3.7, < 5.0)
posix-spawn (~> 0.3.9)
- jekyll-sass-converter (1.5.2)
- sass (~> 3.4)
+ jekyll-sass-converter (2.1.0)
+ sassc (> 2.0.1, < 3.0)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
kramdown (2.3.0)
rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
liquid (4.0.3)
- listen (3.2.1)
+ listen (3.3.3)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.3.6)
+ mercenary (0.4.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
posix-spawn (0.3.15)
- public_suffix (4.0.5)
+ public_suffix (4.0.6)
rb-fsevent (0.10.4)
rb-inotify (0.10.1)
ffi (~> 1.0)
rexml (3.2.4)
- rouge (3.22.0)
+ rouge (3.25.0)
safe_yaml (1.0.5)
- sass (3.7.4)
- sass-listen (~> 4.0.0)
- sass-listen (4.0.0)
- rb-fsevent (~> 0.9, >= 0.9.4)
- rb-inotify (~> 0.9, >= 0.9.7)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ terminal-table (1.8.0)
+ unicode-display_width (~> 1.1, >= 1.1.1)
+ unicode-display_width (1.7.0)
PLATFORMS
ruby
diff --git a/_config.yml b/_config.yml
index 32a522c..e2e856e 100644
--- a/_config.yml
+++ b/_config.yml
@@ -2,3 +2,7 @@ url: "https://jamestmartin.me"
plugins:
- jekyll-last-modified-at
- jekyll-sitemap
+exclude:
+ - resume/*.aux
+ - resume/*.log
+ - resume/*.out
diff --git a/index.html b/index.html
index 7cf4ea0..a5777f5 100644
--- a/index.html
+++ b/index.html
@@ -5,6 +5,8 @@ permalink: /
---
James T Martin
+
+
Also me:
diff --git a/resume/index.pdf b/resume/index.pdf
new file mode 100644
index 0000000..114aa49
Binary files /dev/null and b/resume/index.pdf differ
diff --git a/resume/index.tex b/resume/index.tex
new file mode 100644
index 0000000..f94bf70
--- /dev/null
+++ b/resume/index.tex
@@ -0,0 +1,64 @@
+\documentclass[12pt]{extarticle}
+
+\usepackage{enumitem}
+\usepackage[cm]{fullpage}
+\usepackage[utf8]{inputenc}
+\usepackage{hyperref}
+
+\renewcommand{\familydefault}{\sfdefault}
+\pagenumbering{gobble}
+\setcounter{secnumdepth}{0}
+\setlength{\parindent}{0pt}
+
+\author{James T. Martin}
+
+\begin{document}
+\section{\href{https://jamestmartin.me}{James T. Martin}, Software Developer}
+\begin{description}[noitemsep,labelwidth=2cm]
+\item[Email] \href{mailto:James\%20Martin}{james@jtmar.me}
+\item[Discord] jamestmartin\#7117
+\item[Phone] \href{tel:+1-206-331-1994}{(206) 331-1994}
+\item[GitHub] \href{https://github.com/jamestmartin}{jamestmartin}
+\item[Location] Renton, WA
+\end{description}
+
+\subsection{Experience}
+\subsubsection{\href{https://dad.gallery}{Do Art Daily}, Ruby on Rails developer \hfill 2020}
+\begin{itemize}
+\item Discovered multiple severe security bugs by creating an automated test suite.
+\item Fixed those bugs: site-wide code injection, change anyone's password, personal information leak.
+\item Designed and implemented secure cross-site authentication API and HAL+JSON REST API.
+\end{itemize}
+
+% Including the dates in the subsubsection title like this isn't necessarily semantic.
+% I ought to come up with a better way.
+\subsubsection{\href{https://proglangdesign.net}{Programming Language Design Community}, Administrator \& web developer \hfill 2018–2020}
+\begin{itemize}
+\item Led redesign of the website; used Jekyll to automate the generation of the community projects list.
+\item Co-founded the Discord sub-community; moderated it and \href{https://reddit.com/r/ProgrammingLanguages}{/r/ProgrammingLanguages}.
+\item Bridged the Discord and Freenode sub-communities via Matrix.
+\end{itemize}
+
+\subsubsection{Hazen Robotics Club, Java developer \hfill 2017–2019}
+\begin{itemize}
+\item Mentored programming at the district summer robotics camp for 90 hours.
+\item Taught club members how to use Java and Git.
+\item Collaborated to build robot controller programs for FIRST competitions.
+\end{itemize}
+
+\subsection{Skills}
+\begin{itemize}
+\item Languages: Java 8+, Rust, GHC Haskell, Agda, HTML5/XHTML, TypeScript
+\item Tools: Git, GitHub, formal verification, continuous integration, bug tracking, unit testing
+\item Administration: Debian GNU/Linux, Nginx, TLS deployment (incl. DNS CAA, HSTS, Let's Encrypt)
+\end{itemize}
+
+
+\subsection{Education}
+\subsubsection{Hazen High School \hfill 2015–2019}
+\begin{itemize}
+\item Member of marching, symphonic, and jazz bands; received Sousa award in 2019.
+\item Got high (4+) scores on 7 AP exams, including Computer Science (5) and Calculus AB (4).
+\item Learned shop skills (woodworking, welding) and received OSHA 10 certification.
+\end{itemize}
+\end{document}