Compare commits

...

6 Commits

Author SHA1 Message Date
Greg Shuflin 414273c6af Rename resume building just job 2022-04-15 10:04:47 -07:00
Greg Shuflin 9ddb0e3c69 Stop tracking resume pdf 2022-04-15 01:46:35 -07:00
Greg Shuflin 402cb071be Added most of the rest of the text 2022-04-15 01:45:40 -07:00
Greg Shuflin 9028dfd33f Fonts sort of working 2022-04-15 00:28:51 -07:00
Greg Shuflin 914d97cc38 Can safely remove FiraSans package? 2022-04-14 23:18:26 -07:00
Greg Shuflin 44237c076f Playing with fonts for new resume 2022-04-14 23:16:02 -07:00
5 changed files with 282 additions and 94 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.aux
*.log
*.out
*.pdf

Binary file not shown.

View File

@ -1,6 +1,12 @@
default:
just --list
build_resume:
pdflatex -jobname "Greg Shuflin resume" resume.tex
lualatex -jobname "Greg Shuflin resume" resume.tex
just clean
old_build_resume:
pdflatex -jobname "Greg Shuflin resume old" old_resume.tex
just clean
clean:

131
old_resume.tex Normal file
View File

@ -0,0 +1,131 @@
% resume.tex
%
% (c) 2002 Matthew Boedicker <mboedick@mboedick.org> (original author) http://mboedick.org
% (c) 2003-2007 David J. Grant <davidgrant-at-gmail.com> http://www.davidgrant.ca
% (c) 2007-2010 Todd C. Miller <Todd.Miller@courtesan.com> http://www.courtesan.com/todd
% (c) 2012 Gregory Shuflin <greg.shuflin@gmail.com>
% This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
\documentclass[letterpaper,11pt]{article}
%-----------------------------------------------------------
\usepackage[empty]{fullpage}
\usepackage{color}
\usepackage{hyperref}
\usepackage{marvosym}
\usepackage{fontawesome}
\usepackage{graphicx}
\definecolor{mygrey}{gray}{0.80}
\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}
% 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}
%-----------------------------------------------------------
%Custom commands
\newcommand{\resitem}[1]{\item #1 \vspace{-2pt}}
\newcommand{\resheading}[1]{\vspace{0.1in}{\large \colorbox{mygrey}{\begin{minipage}{\textwidth}{\textbf{#1 \vphantom{p\^{E}}}}\end{minipage}}}\vspace{0.1in}}
\newcommand{\ressubheading}[4]{
\begin{tabular*}{7.0in}{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{#3} & \textit{#4} \\
\end{tabular*}\vspace{-4pt}}
%-----------------------------------------------------------
\definecolor{blue}{rgb}{0,0,1.0}
\begin{document}
\begin{center}
\textsc{ \Huge Gregory Shuflin }
\end{center}
\begin{tabular*}{7.5in}{l@{\extracolsep{\fill}}l}
\faicon{envelope-square} \emph{greg.shuflin@protonmail.com}
& \faicon{map-marker} Oakland, California\\
\faicon{home} {\tt \href{https://greg.everydayimshuflin.com}{greg.everydayimshuflin.com}}
& \faicon{phone} \hspace{1pt} 510-332-6344 \\
\faicon{git-square} {\tt \href{https://gitea.everydayimshuflin.com/greg}{gitea.everydayimshuflin.com} } (personal)
& \faicon{git-square} {\tt \href{https://github.com/gshuflin}{github.com/gshuflin} } (professional) \\
\end{tabular*}
\resheading{Qualifications and interests}
Motivated, professional computer scientist with broad expertise across multiple spheres of 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 web frameworks in multiple languages. 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.
% \item Natural language processing (NLP). Linguistic science, particularly human language typology and universals and Japonic linguistics.
% Took two semesters of Georgian in college.
\end{itemize}
\resheading{Professional Experience}
\ressubheading{Floating Point Group}{Hoboken, NJ}{Software Engineer}{Dec 2021-}
\begin{itemize}
\resitem{Backend engineer for cryptocurrency trading platform backend built on AWS with Python business logic.}
\resitem{Designed from scratch and implemented a subsystem to keep track of continuous customer account balances for billing and reconciliation. }
\end{itemize}
\ressubheading{Toolchain Labs}{San Francisco, CA}{Software Engineer}{2019 - 2021}
\begin{itemize}
\resitem{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.}
\resitem{Updated old Python codebase to modern typed Python + Rust execution core for improved performance and maintainability. Frequent Rust/Python FFI and Python metaprogramming.}
\resitem{Routinely collaborated with external contributors in a spirit of good open-source citizenship.}
\resitem{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}
\ressubheading{3D Robotics}{Berkeley, CA}{Senior Software Engineer}{2017 - 2019}
\begin{itemize}
\resitem{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).}
\resitem{Built systems for processing GDAL geospatial data, efficiently running TensorFlow/OpenCV ML workflows on quadrotor drone photos.}
\resitem{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, but I got the patch applied.}
\end{itemize}
\ressubheading{Cisco Meraki}{San Francisco, CA}{Software Engineer}{2013 - 2017}
\begin{itemize}
\resitem{Primarily responsible for feature development and support of several different models of cloud-managed Ethernet switches and WiFi access points.}
\resitem{Healthy mix of embedded Linux firmware development on networking hardware (C++) and full stack web development (Ruby on Rails/PostgreSQL + some Scala).}
\resitem{Designed and built WiFi statistics monitoring widget with d3 and React, looked cool in demos and saved at least one deal.}
\resitem{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}
\resheading{Education}
\textbf{University of California, Berkeley} \hfill \emph{graduated Winter 2012}
\\
\emph{Bachelor of Arts, Computer Science, Linguistics, Japanese Language}\\
Relevant Coursework: Artificial Intelligence, Compilers, Operating Systems, Algorithms, Data Structures, Computer Graphics
\resheading{Personal Open-source Projects}
% See \url{http://neunenak.github.io} for additional 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}

View File

@ -1,26 +1,12 @@
% resume.tex
%
% (c) 2002 Matthew Boedicker <mboedick@mboedick.org> (original author) http://mboedick.org
% (c) 2003-2007 David J. Grant <davidgrant-at-gmail.com> http://www.davidgrant.ca
% (c) 2007-2010 Todd C. Miller <Todd.Miller@courtesan.com> http://www.courtesan.com/todd
% (c) 2012 Gregory Shuflin <greg.shuflin@gmail.com>
% Greg Shuflin resume
\documentclass[letterpaper, 11pt]{article}
% This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
\documentclass[letterpaper,11pt]{article}
%-----------------------------------------------------------
% documentation: https://ctan.math.utah.edu/ctan/tex-archive/macros/latex/contrib/preprint/fullpage.pdf
\usepackage[empty]{fullpage}
\usepackage{color}
\usepackage{hyperref}
\usepackage{marvosym}
\usepackage{fontspec}
\usepackage{fontawesome}
\usepackage{graphicx}
\definecolor{mygrey}{gray}{0.80}
\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}
\usepackage{xcolor}
% Adjust margins to 0.5in on all sides
\addtolength{\oddsidemargin}{-0.5in}
@ -29,103 +15,167 @@
\addtolength{\topmargin}{-0.5in}
\addtolength{\textheight}{1.0in}
%-----------------------------------------------------------
%Custom commands
\newcommand{\resitem}[1]{\item #1 \vspace{-2pt}}
\newcommand{\resheading}[1]{\vspace{0.1in}{\large \colorbox{mygrey}{\begin{minipage}{\textwidth}{\textbf{#1 \vphantom{p\^{E}}}}\end{minipage}}}\vspace{0.1in}}
% Fonts I considered using as mainfont:
% montserrat: from AUR montserrat-ttf package
% lato: from ttf-lato package
% inter: from inter-font package
\setmainfont{montserrat}
\newcommand{\ressubheading}[4]{
\begin{tabular*}{7.0in}{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{#3} & \textit{#4} \\
\end{tabular*}\vspace{-4pt}}
%-----------------------------------------------------------
% This doesn't work (i.e. it ignores small caps)
%\setmainfont[SmallCapsFont=FiraSans]{Inter}
\definecolor{blue}{rgb}{0,0,1.0}
\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}
\begin{center}
\textsc{ \Huge Gregory Shuflin }
\end{center}
{\fontspec{FiraSans}
\textsc{\Huge Gregory Shuflin }
}
\newline
\begin{tabular*}{7.5in}{l@{\extracolsep{\fill}}l}
\faicon{envelope-square} \emph{greg.shuflin@protonmail.com}
& \faicon{map-marker} Oakland, California\\
{\color{mediumgray}
\faicon{map-marker} Oakland, California |
\faicon{envelope-square} \emph{greg.shuflin@protonmail.com} |
\faicon{home} {\tt \href{https://greg.everydayimshuflin.com}{greg.everydayimshuflin.com}}
\faicon{home} {\tt \href{https://greg.everydayimshuflin.com}{greg.everydayimshuflin.com}}
& \faicon{phone} \hspace{1pt} 510-332-6344 \\
\faicon{git-square} {\tt \href{https://gitea.everydayimshuflin.com/greg}{gitea.everydayimshuflin.com} } (personal) |
\faicon{git-square} {\tt \href{https://github.com/gshuflin}{github.com/gshuflin} } (professional)
\newline
}
\faicon{git-square} {\tt \href{https://gitea.everydayimshuflin.com/greg}{gitea.everydayimshuflin.com} } (personal)
& \faicon{git-square} {\tt \href{https://github.com/gshuflin}{github.com/gshuflin} } (professional) \\
\end{tabular*}
Motivated, professional computer scientist with broad expertise in
industry and open-source software development:
\resheading{Qualifications and interests}
Motivated, professional computer scientist with broad expertise across multiple spheres of 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 web frameworks in multiple languages. 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.
% \item Natural language processing (NLP). Linguistic science, particularly human language typology and universals and Japonic linguistics.
% Took two semesters of Georgian in college.
\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 web frameworks in multiple
languages. 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}
\resheading{Professional Experience}
\ressubheading{Floating Point Group}{Hoboken, NJ}{Software Engineer}{Dec 2021-}
\begin{itemize}
\resitem{Backend engineer for cryptocurrency trading platform backend built on AWS with Python business logic.}
\resitem{Designed from scratch and implemented a subsystem to keep track of continuous customer account balances for billing and reconciliation. }
\end{itemize}
\ressubheading{Toolchain Labs}{San Francisco, CA}{Software Engineer}{2019 - 2021}
\begin{itemize}
\resitem{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.}
\resitem{Updated old Python codebase to modern typed Python + Rust execution core for improved performance and maintainability. Frequent Rust/Python FFI and Python metaprogramming.}
\resitem{Routinely collaborated with external contributors in a spirit of good open-source citizenship.}
\resitem{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}
\ressubheading{3D Robotics}{Berkeley, CA}{Senior Software Engineer}{2017 - 2019}
\begin{itemize}
\resitem{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).}
\resitem{Built systems for processing GDAL geospatial data, efficiently running TensorFlow/OpenCV ML workflows on quadrotor drone photos.}
\resitem{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, but I got the patch applied.}
\end{itemize}
\ressubheading{Cisco Meraki}{San Francisco, CA}{Software Engineer}{2013 - 2017}
\begin{itemize}
\resitem{Primarily responsible for feature development and support of several different models of cloud-managed Ethernet switches and WiFi access points.}
\resitem{Healthy mix of embedded Linux firmware development on networking hardware (C++) and full stack web development (Ruby on Rails/PostgreSQL + some Scala).}
\resitem{Designed and built WiFi statistics monitoring widget with d3 and React, looked cool in demos and saved at least one deal.}
\resitem{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}
\resheading{Education}
\sectionheader{Professional Experience}
\newline
\textbf{University of California, Berkeley} \hfill \emph{graduated Winter 2012}
\\
\emph{Bachelor of Arts, Computer Science, Linguistics, Japanese Language}\\
\jobentry{Floating Point Group}{Software Engineer}{Dec 2021-}
\begin{itemize}
\item{Backend engineer for cryptocurrency trading platform
backend built on AWS with Python business logic.}
\item{Designed and implemented from scratch the subsystem for keeping
track of continuous customer account balances for billing and
balance reconciliation. }
\end{itemize}
\jobentry{Toolchain Labs}{Software Engineer}{2019 - 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}{2017 - 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, but I got the patch applied.}
\end{itemize}
\jobentry{Cisco Meraki}{Software Engineer}{2013 - 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
\resheading{Personal Open-source Projects}
% See \url{http://neunenak.github.io} for additional projects
\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.
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.
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.
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}