resume/resume.tex
2022-07-29 16:03:16 -07:00

190 lines
7.0 KiB
TeX

% Greg Shuflin resume
\documentclass[letterpaper, 11pt]{article}
% documentation: https://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/preprint/fullpage.pdf
\usepackage[empty]{fullpage}
\usepackage{hyperref}
\usepackage{fontspec}
\usepackage{fontawesome}
\usepackage{xcolor}
% Adjust margins to 0.5in on all sides
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\evensidemargin}{-0.5in}
\addtolength{\textwidth}{1.0in}
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1.0in}
% Fonts I considered using as mainfont:
% montserrat: from AUR montserrat-ttf package
% lato: from ttf-lato package
% inter: from inter-font package
\setmainfont{montserrat}
% This doesn't work (i.e. it ignores small caps)
%\setmainfont[SmallCapsFont=FiraSans]{Inter}
\raggedright
\definecolor{mediumgray}{rgb}{0.44, 0.46, 0.47}
\newcommand{\jobentry}[3]{
{\large\textbf{#1}} \\
{\color{mediumgray} #2 | \emph{#3}}
}
\newcommand{\sectionheader}[1]{
{\fontspec{Fira Sans}
{\color{blue}
{\Large \textsc{#1}}
}
}
}
\begin{document}
{\fontspec{FiraSans}
\textsc{\Huge Gregory Shuflin }
}
\newline
{\color{mediumgray}
\faicon{map-marker} Oakland, California
\hspace{1 em}
\faicon{envelope-square} {\tt \href{mailto:greg.shuflin@protonmail.com}{greg.shuflin@protonmail.com}}
\hspace{1 em}
\faicon{home} {\tt \href{https://greg.everydayimshuflin.com}{greg.everydayimshuflin.com}}
\faicon{git-square} {\tt \href{https://gitea.everydayimshuflin.com/greg}{gitea.everydayimshuflin.com} } (personal)
\hspace{1 em}
\faicon{git-square} {\tt \href{https://github.com/gshuflin}{github.com/gshuflin} } (professional)
\newline
}
Motivated, professional computer scientist with broad expertise in
industry and open-source software development:
\begin{itemize}
\item Programming language theory, type theory, strongly-typed functional
programming languages. Haskell, Elm, Scala. I've been writing Rust
since before the 1.0 release in 2015.
\item Linux system administration for production cloud environments, Docker
containerization, AWS/Terraform/CDK. I run a 4U VM server on a shelf in
my kitchen for personal projects.
\item Full-stack web development in multiple frameworks/languages, particularly
Python ecosystem. Frontend web development in the modern Javascript/Typescript
ecosystem.
\item Network programming and troubleshooting, hardware and software packet
processing, embedded Linux hardware bringup, writing clear and
maintainable C and C++. Can solder if necessary.
\end{itemize}
\sectionheader{Professional Experience}
\newline
\jobentry{Floating Point Group}{Software Engineer}{Dec 2021-}
\begin{itemize}
\item{Backend developer for cryptocurrency trading platform
built on AWS/Python. }
\item{Designed and implemented from scratch the subsystem for
tracking continuous customer account balances for billing and
balance reconciliation. }
\end{itemize}
\jobentry{Kraken}{Software Engineer}{Mar 2021 - Sept 2021}
\begin{itemize}
\item{Rust developer responsible for converting parts of a legacy PHP web API codebase to
Rust/Actix for better performance, reliability, and maintainability.}
\end{itemize}
\jobentry{Toolchain Labs}{Software Engineer}{Jun 2019 - Mar 2021}
\begin{itemize}
\item{Primarily responsible for contributing business-critical features,
bugfixes, and documentation to the
\href{https://github.com/pantsbuild/pants/commits?author=gshuflin}{Pants}
open-source build system.}
\item{Updated old Python codebase to modern typed Python + Rust execution
core for improved performance and maintainability. Frequent Rust/Python
FFI and Python metaprogramming.}
\item{Routinely collaborated with external contributors in a spirit of good
open-source citizenship.}
\item{Contributed to internal React/Typescript frontend work, Django/AWS
backend work at early-stage startup (\textless 10 employees) when all
hands needed on deck. }
\end{itemize}
\jobentry{3D Robotics}{Senior Software Engineer}{Jun 2017 - Jun 2019}
\begin{itemize}
\item{One of two members of the backend/devops team. Primarily
responsible for feature development for API microservices in
Scala (Akka/Couchbase NoSQL),
and AWS provision of the same (Docker, Terraform).}
\item{Built systems for processing GDAL geospatial data,
efficiently running TensorFlow/OpenCV ML workflows on quadrotor
drone photos.}
\item{One time I grabbed a Windows laptop and set up a Visual C++
environment so I could apply a 10-line bugfix patch to some
Autodesk software we depended on. I'm not ordinarily a Windows
developer.}
\end{itemize}
\jobentry{Cisco Meraki}{Software Engineer}{May 2013 - Jun 2017}
\begin{itemize}
\item{Primarily responsible for feature development and support
of several different models of cloud-managed Ethernet
switches and WiFi access points.}
\item{Healthy mix of embedded Linux firmware development on
networking hardware (C++) and full stack web development
(Ruby on Rails/PostgreSQL + some Scala).}
\item{Designed and built WiFi statistics monitoring widget with
d3 and React, looked cool in demos and saved at least one
deal.}
\item{Regular troubleshooting and debugging of hardware and
software in production network environments. The 802.1Q
protocol identifier value 0x8100 is burned into my memory
from seeing it in packet logs so often.}
\end{itemize}
\sectionheader{Education}
\newline
\textbf{University of California, Berkeley}\\
{\color{mediumgray}
graduated Winter 2012\\
Bachelor of Arts in Computer Science, Linguistics, Japanese Language
}
Relevant Coursework: Artificial Intelligence, Compilers, Operating Systems, Algorithms, Data Structures, Computer Graphics
\newline
\sectionheader{Open-source Projects}
\begin{description}
\item[\href{http://alexnisnevich.github.io/untrusted/}{Untrusted} ({\tt \href{https://github.com/AlexNisnevich/untrusted}{github.com/AlexNisnevich/untrusted}})]
An open-source browser-based roguelike game. Every level is unbeatable and
requires the player to modify the Javascript code defining the level in
order to progress.
This started out as a college hackathon project by me and a friend, that we
decided to keep working on and release publicly. A surprisingly large
number of people around the world have contacted us telling us they've
enjoyed playing it, or found it to be a fun and useful pedagogical tool
for teaching programming.
\item [ \href{https://crates.io/crates/hilite}{Hilite (Rust Port)}]
Rust port (with a few new features) of Hilite, a simple command-line
utility to highlight stderr output. I used this for making errors
especially visible among the mostly-stdout output from lengthy C++
builds.
\end{description}
\end{document}