146 lines
7.6 KiB
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}
|