diff --git a/Greg Shuflin resume.pdf b/Greg Shuflin resume.pdf index 49fd368..aeeaa5a 100644 Binary files a/Greg Shuflin resume.pdf and b/Greg Shuflin resume.pdf differ diff --git a/resume.tex b/resume.tex index 65eaa23..9f88537 100644 --- a/resume.tex +++ b/resume.tex @@ -50,9 +50,14 @@ \end{center} \begin{tabular*}{7.5in}{l@{\extracolsep{\fill}}l} - \faicon{envelope-square} \emph{greg.shuflin@protonmail.com} & \faicon{map-marker} Oakland, California\\ - \faicon{git-square} \url{https://github.com/gshuflin} (professional) & \faicon{phone} \hspace{1pt} 510-332-6344 \\ - \faicon{git-square} \url{https://gitea.everydayimshuflin.com/greg} (personal) + \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} @@ -68,6 +73,32 @@ Motivated, professional computer scientist with broad expertise across several d \item Linux system administration in production cloud environments, Docker containerization, AWS/Terraform experience. I have a running 4U VM server on a shelf in my apartment. \end{itemize} +\resheading{Professional Experience} + \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. Only time so far I've needed to do that.} + \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 + a little Scala).} + \resitem{Designed and built WiFi statistics monitoring widget with d3 and React, looks 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{August 2007 - December 2012} @@ -76,35 +107,15 @@ Motivated, professional computer scientist with broad expertise across several d Relevant Coursework: Artificial Intelligence, Compilers, Operating Systems, Algorithms, Data Structures, Computer Graphics -\resheading{Professional Experience} - \ressubheading{Toolchain Labs}{San Francisco, CA}{Software Engineer}{June 2019 - present} - \begin{itemize} - \resitem{Primarily responsible for contributing business-critical features/bugfixes to the Pants (\url{https://github.com/pantsbuild/pants}) open-source build system.} - \resitem{Python metaprogramming and gradual typing, performance-critical Rust, collaborating with company-external contributors in a spirit of good open-source citizenship.} - \end{itemize} - \ressubheading{3D Robotics}{Berkeley, CA}{Senior Software Engineer}{June 2017 - June 2019} - \begin{itemize} - \resitem{Backend/devops engineer primarily responsible for feature development and cloud provisioning for a Scala web API backend for drone data.} - \resitem{Built processes for managing diverse geospatial and photogrammetry data, and computer vision workflows.} - \resitem{Relevant buzzwords include: AWS, TensorFlow, OpenCV, Docker, PostgreSQL, Couchbase NoSQL, Terraform, Akka, GDAL, quadrotor drones.} - \end{itemize} - \ressubheading{Cisco Meraki}{San Francisco, CA}{Software Engineer}{May 2013 - June 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/React stack + a little Scala).} - \resitem{Designed and built WiFi statistics monitoring widget with d3 + React, looks cool in demos and saved at least one deal.} - \resitem{Regular troubleshooting and debugging of hardware and software in production network environments.} - \end{itemize} - \resheading{Personal Open-source Projects} % See \url{http://neunenak.github.io} for additional projects \begin{description} - \item[Untrusted (\url{alex.nisnevich.io/untrusted})] + \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 where the player must edit the game's code to progress. One of two primary developers. - Early version won 1st place in Spring 2013 Berkeley CSUA Hackathon, + Early version won 1st place in Spring 2013 Berkeley CSUA Hackathon. - \item [ Hilite (Rust port)(\url{https://crates.io/crates/hilite})] + \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, useful for build systems. \end{description}