jtm.dev/resume.tex

146 lines
7.6 KiB
TeX

\documentclass[11pt]{article}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage[compact]{titlesec}
\renewcommand{\familydefault}{\sfdefault}
\topmargin=0.0in %length of margin at the top of the page (1 inch added by default)
\oddsidemargin=0.0in %length of margin on sides for odd pages
\evensidemargin=0in %length of margin on sides for even pages
\textwidth=6.5in %How wide you want your text to be
\marginparwidth=0.5in
\headheight=0pt %1in margins at top and bottom (1 inch is added to this value by default)
\headsep=0pt %Increase to increase white space in between headers and the top of the page
\textheight=9.0in %How tall the text body is allowed to be on each page
\setcounter{secnumdepth}{0}
\setlength{\parindent}{0pt}
\setlength{\topmargin}{1pt}
\addtolength{\textwidth}{2cm}
\addtolength{\hoffset}{-1cm}
\addtolength{\textheight}{2cm}
\addtolength{\voffset}{-1cm}
\begin{document}
\centerline{\LARGE James Martin}
\centerline{Renton, WA 98056 | \href{mailto:jtmar@lijero.co}{jtmar@lijero.co} | 206-660-7633}
\centerline{\href{https://lijero.co/}{Website} | \href{https://github.com/lijerom/}{GitHub} | \href{https://www.linkedin.com/in/jtmarlijero/}{LinkedIn}}
\section{Capabilities}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Model complex real-world problems} in a way conducive to long-term growth
\item {\bf Simplify code} and {\bf waste less time} with powerful, reusable, understandable, DRY abstractions
\item {\bf Squash bugs} with sustainable design, clean code, unit testing, and test-driven development
\item {\bf Maximize productivity} by taking advantage of build tools, continuous integration, bugtrackers, development environments, and version control
\item {\bf Quick understanding} and {\bf deep conceptual connections} from a thorough theoretical background
\item {\bf Read and write specifications} to communicate formal details clearly and understand terse descriptions
\end{itemize}
\section{Programming}
\subsubsection{Technical Skills}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Languages}: Java, C\#, C, Forth, x86 assembly, Rust, Haskell, Scheme (Lisp), Prolog, SQL, HTML, CSS
\item {\bf Tools}: Git, Haskell's Stack, Java's Gradle, Visual Studio, Eclipse, Emacs
\item {\bf Bug squashing}: JUnit, QuickCheck, Jenkins CI, Travis CI, GitHub issues, and more
\item {\bf Documents}: Microsoft Office (incl. Word, Excel, PowerPoint), \LaTeX
\end{itemize}
\subsubsection{Domain-Oriented Knowledge}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Exploit parallel problems} with multithreaded processes and distributed networks
\item {\bf Solve optimization and learning problems} through neural networks, evolutionary algorithms, and logic/constraint programming
\item {\bf Improve program and data structuring} with a powerful grasp of dataflow programming and complex control flow, including FRP, continuations, and laziness
\item {\bf Get the most out of your language} with metaprogramming, macros, reflection, and generics
\end{itemize}
\section{Systems}
\subsubsection{Server Skills}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Daemons}: Nginx, Bind9 (authoritative), OpenSSH (SSH, SFTP), MariaDB
\item {\bf HTTP}: Caching (client-side \& server-side), CDNs, semantic URLs, REST
\item {\bf TLS \& Certs}: \href{https://www.ssllabs.com/ssltest/analyze.html?d=lijero.co\&latest}{A+ rating on SSLLabs}, ECDHE, RSA, Let's Encrypt, DNS CAA, OCSP, HSTS
\item {\bf Administration}: VPSes, firewalls (incl. iptables), capability-based security, disk encryption
\item {\bf Operating Systems}: Linux (esp. Debian, desktop \& server), Windows (XP, 7, 8)
\end{itemize}
\subsubsection{Protocols}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Can write packets by hand}: HTTP, IRC, SMTP, FTP
\item {\bf Implemented}: HTTP, IRC, Minecraft Protocol, and protocols I have made myself
\item {\bf Very familiar}: IP, TCP, UDP, TLS/SSL, HTTP/2
\end{itemize}
\section{Major Projects}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Games}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Minecraft clone}, written in C\# using the Unity game engine
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Procedural content generation} using Simplex noise
\item {\bf Networked multiplayer} mostly implemented
\item {\bf Hand-written mesh generation} and optimization
\item Map editing and world save files
\end{itemize}
\item {\bf Minecraft server implementation} in Rust, but not enough to be usable for gameplay
\item {\bf Mario-like platformer} game with a map editor and saving
\item Familar with the {\bf modern OpenGL} graphics pipeline and {\bf GLSL shaders}, but not yet in practice
\end{itemize}
\item {\bf Low-level}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Operating system}: Kernel, memory manager, filesystem, BIOS terminal IO, paging
\item {\bf Minecraft redstone CPU}: 16-bit stack-based von-neumann, before command blocks were added
\item {\bf Instruction set and CPU design}, though it was never physically built
\end{itemize}
\item {\bf Language Extensions}: The {\bf reactive paradigm}, an {\bf event system}, and a {\bf component-based object system}, for Java using reflection
\item {\bf Programming Language Implementations}: Dozens of {\bf Lisp}s, {\bf Forth} (x86 asm), and {\bf Prolog}
\item {\bf Web}: Personal website, hierarchical discussion board, HTML/XML DSL, HTML parser in Rust
\end{itemize}
\section{Education}
\subsection{Formal}
\subsubsection{2015 - Present | Hazen High School}
\begin{itemize}[noitemsep,nolistsep]
\item Multiple college-level and honors courses, including AP Computer Science
\item Straight-As last semester
\end{itemize}
\subsection{Independent}
In addition to previously listed skills, I have obtained:
\begin{itemize}[noitemsep,nolistsep]
\item Intimate familiarity with {\bf how computers function at a low level}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf CPU design and implementation}
\item {\bf Operating systems}: Kernels, memory management, scheduling, paging, syscalls, filesystems, network stacks, BIOS/UEFI, bootloaders
\end{itemize}
\item {\bf Deep understanding of programming languages}
\begin{itemize}[noitemsep,nolistsep]
\item {\bf Programming language theory} explains the implementation of programming language
\item {\bf Type theory} (polymorphic, dependent, linear, noncommutative) is the logic and structure
\item {\bf Category Theory} is the theoretical background to abstractions
\item {\bf Formal languages \& semantics} describe grammar, syntax, and behavior
\end{itemize}
\item {\bf Logic}: Classical logic, natural deduction, sequent calculus, lambek calculus, etc
\item {\bf Databases}: Relational algebra, principles such as ACID, tradeoffs like CAP and PACELC
\end{itemize}
\section{Experience}
\subsubsection{2017 - Present | Java Developer | \it{Hazen Robotics Club}}
\begin{itemize}[noitemsep,nolistsep]
\item Built {\bf foundational abstractions} that drive the entire codebase
\item {\bf Dramatically simplified} the manual control mode by implementing a dataflow system
\item {\bf Lead programmer} for the autonomous AI-driven mode
\item {\bf Improved organization and productivity} by introducing and teaching Git to the team
\end{itemize}
\subsubsection{2012 - 2015 | Java Developer, Admin, Owner | \it{The Mining Dead}}
\begin{itemize}[noitemsep,nolistsep]
\item Began at {\bf eleven years old}
\item Managed a {\bf community of hundreds}, 60+ concurrent connections at peak hours
\item {\bf Wrote custom functionality}, the main features of the server, with many thousands of lines of code
\item Ran custom {\bf Linux VPS paid for by the community}
\item Used web servers and the ``Bungee'' reverse-proxy, Technic Solder content distribution
\end{itemize}
\end{document}