2022-04-14 23:16:02 -07:00
|
|
|
% Greg Shuflin resume
|
2022-04-15 00:28:51 -07:00
|
|
|
\documentclass[letterpaper, 11pt]{article}
|
2017-01-05 22:23:55 -08:00
|
|
|
|
2022-04-15 00:28:51 -07:00
|
|
|
% documentation: https://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/preprint/fullpage.pdf
|
2017-01-05 22:23:55 -08:00
|
|
|
\usepackage[empty]{fullpage}
|
|
|
|
\usepackage{hyperref}
|
2022-04-14 23:16:02 -07:00
|
|
|
\usepackage{fontspec}
|
2020-04-16 20:27:59 -07:00
|
|
|
\usepackage{fontawesome}
|
2022-04-15 01:45:40 -07:00
|
|
|
\usepackage{xcolor}
|
2017-01-05 22:23:55 -08:00
|
|
|
|
|
|
|
% 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}
|
|
|
|
|
2022-04-15 00:28:51 -07:00
|
|
|
% Fonts I considered using as mainfont:
|
|
|
|
% montserrat: from AUR montserrat-ttf package
|
|
|
|
% lato: from ttf-lato package
|
|
|
|
% inter: from inter-font package
|
2022-04-15 01:45:40 -07:00
|
|
|
\setmainfont{montserrat}
|
2022-04-15 00:28:51 -07:00
|
|
|
|
|
|
|
% This doesn't work (i.e. it ignores small caps)
|
|
|
|
%\setmainfont[SmallCapsFont=FiraSans]{Inter}
|
2017-01-05 22:23:55 -08:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
\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}}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-01-05 22:23:55 -08:00
|
|
|
\begin{document}
|
|
|
|
|
2022-04-15 00:28:51 -07:00
|
|
|
{\fontspec{FiraSans}
|
|
|
|
\textsc{\Huge Gregory Shuflin }
|
|
|
|
}
|
2022-04-15 01:45:40 -07:00
|
|
|
\newline
|
|
|
|
|
|
|
|
{\color{mediumgray}
|
2022-04-16 03:28:26 -07:00
|
|
|
\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}
|
2022-04-15 01:45:40 -07:00
|
|
|
\faicon{home} {\tt \href{https://greg.everydayimshuflin.com}{greg.everydayimshuflin.com}}
|
|
|
|
|
2022-04-16 03:28:26 -07:00
|
|
|
\faicon{git-square} {\tt \href{https://gitea.everydayimshuflin.com/greg}{gitea.everydayimshuflin.com} } (personal)
|
|
|
|
\hspace{1 em}
|
2022-04-15 01:45:40 -07:00
|
|
|
\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.
|
|
|
|
|
2022-04-16 03:00:34 -07:00
|
|
|
\item Full-stack web development in multiple frameworks/languages, particularly
|
|
|
|
Python ecosystem. Frontend web development in the modern Javascript/Typescript
|
2022-04-15 01:45:40 -07:00
|
|
|
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}
|
2022-11-04 23:32:55 -07:00
|
|
|
\item{Backend/devops developer for cryptocurrency trading platform. Python/AWS stack,
|
|
|
|
Docker/Terraform/web3.py, some basic Solidity. }
|
2022-04-15 01:45:40 -07:00
|
|
|
|
2022-11-04 23:32:55 -07:00
|
|
|
\item{Maintained integrations with multiple exchanges, blockchains, and crypto
|
|
|
|
assets. Implemented direct customer interaction with Ethereum assets
|
|
|
|
via Metamask. }
|
2022-09-24 21:42:53 -07:00
|
|
|
|
|
|
|
\item{Designed and implemented subsystem for
|
|
|
|
tracking continuous customer account balances for billing and
|
2022-04-15 01:45:40 -07:00
|
|
|
balance reconciliation. }
|
2022-09-24 21:42:53 -07:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
\end{itemize}
|
2022-07-29 16:03:16 -07:00
|
|
|
\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}
|
2022-04-15 01:45:40 -07:00
|
|
|
|
2022-07-29 16:03:16 -07:00
|
|
|
\jobentry{Toolchain Labs}{Software Engineer}{Jun 2019 - Mar 2021}
|
2022-04-15 01:45:40 -07:00
|
|
|
\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}
|
|
|
|
|
2022-07-29 16:03:16 -07:00
|
|
|
\jobentry{3D Robotics}{Senior Software Engineer}{Jun 2017 - Jun 2019}
|
2022-04-15 01:45:40 -07:00
|
|
|
\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
|
2022-04-16 03:00:34 -07:00
|
|
|
developer.}
|
2022-04-15 01:45:40 -07:00
|
|
|
\end{itemize}
|
|
|
|
|
2022-07-29 16:03:16 -07:00
|
|
|
\jobentry{Cisco Meraki}{Software Engineer}{May 2013 - Jun 2017}
|
2022-04-15 01:45:40 -07:00
|
|
|
\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
|
|
|
|
}
|
2017-01-05 22:23:55 -08:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
Relevant Coursework: Artificial Intelligence, Compilers, Operating Systems, Algorithms, Data Structures, Computer Graphics
|
|
|
|
\newline
|
2021-09-23 02:57:29 -07:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
\sectionheader{Open-source Projects}
|
|
|
|
\begin{description}
|
2022-11-04 23:32:55 -07:00
|
|
|
\item { I'm an occasional contributor to the \href{https://github.com/casey/just/pull/1333}{just} command runner,
|
|
|
|
and \href{https://github.com/neunenak/sshfs}{sshfs} unix utility. }
|
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
\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.
|
2021-09-23 02:57:29 -07:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
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.
|
2017-01-05 22:23:55 -08:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
\item [ \href{https://crates.io/crates/hilite}{Hilite (Rust Port)}]
|
2021-09-23 02:57:29 -07:00
|
|
|
|
2022-04-15 01:45:40 -07:00
|
|
|
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}
|
2021-09-23 02:57:29 -07:00
|
|
|
|
2022-04-14 23:16:02 -07:00
|
|
|
\end{document}
|
2017-01-05 22:23:55 -08:00
|
|
|
|
|
|
|
|