a291c8690a
GitOrigin-RevId: e6e19f3d81a982a62e1bba08f0b4f7fdc21b4ea0
212 lines
9.8 KiB
TeX
212 lines
9.8 KiB
TeX
%% start of file `template.tex'.
|
|
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
|
%% Copyright 2014-2020 Griffin Smith (wildgriffin45@gmail.com).
|
|
%
|
|
% This work may be distributed and/or modified under the
|
|
% conditions of the LaTeX Project Public License version 1.3c,
|
|
% available at http://www.latex-project.org/lppl/.
|
|
|
|
|
|
\documentclass[10pt,a4paper,sans]{moderncv} % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
|
|
|
|
\usepackage[inline]{enumitem}
|
|
|
|
|
|
% moderncv themes
|
|
% style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
|
|
\moderncvstyle{casual}
|
|
% color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
|
|
\moderncvcolor{black}
|
|
% to set the default font; use '\sfdefault' for the default sans serif font,
|
|
% '\rmdefault' for the default roman one, or any tex font name
|
|
%\renewcommand{\familydefault}{\sfdefault}
|
|
\nopagenumbers{}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
|
|
\usepackage[scale=0.8, margin=0.65in]{geometry}
|
|
\setlength{\hintscolumnwidth}{2.6cm}
|
|
|
|
\name{Griffin}{Smith}
|
|
\title{Software Engineer}
|
|
\phone[mobile]{(720) 206-7218}
|
|
\email{grfn@gws.fyi}
|
|
\homepage{https://www.gws.fyi}
|
|
\extrainfo{References available upon request}
|
|
|
|
\begin{document}
|
|
\makecvtitle{}
|
|
\section{Skills}
|
|
\cvitem{Clojure}{Extensive experience architecting, deploying, and building
|
|
complex web applications in Clojure and Clojurescript, with a focus on
|
|
Re-Frame and Reagent.}
|
|
\cvitem{Haskell}{Passionate love for pure functional programming as a hobbyist
|
|
pursuit, but also practical experience building production systems in Haskell at
|
|
scale, and using Haskell's advanced type system extensions where appropriate to
|
|
deliver increased ergonomics and safety.}
|
|
\cvitem{Nix}{Experience with adopting and teaching nix at scale in a production
|
|
stack both for local development dependencies and for configuring and building
|
|
production software. Core contributer to a fork of the nix implementation itself
|
|
(tvix) aimed at providing increased safety, performance, and flexibility.}
|
|
\cvitem{Scala}{Understanding of Scala from the perspective of a functional
|
|
programmer rather than a Java programmer. Experience building production
|
|
big-data processing systems using Akka, and deep programming with Scala's type
|
|
system using Shapeless.}
|
|
\cvitem{Unix/Linux}{Experience with administrating highly available distributed
|
|
systems. Passion for the Unix philosophy of discrete, composable units of
|
|
functionality.}
|
|
\cvitem{Ruby}{Experience building both full-stack applications with Ruby on
|
|
Rails in addition to smaller microservices and custom frameworks. Deep
|
|
understanding of the internals of the Ruby interpreter and object system.}
|
|
\cvitem{Javascript}{Experience developing real-time responsive single-page web
|
|
applications using React, in addition to significant contributions to the React
|
|
open-source community.}
|
|
\cvitem{SQL}{Deep understanding of relational databases, including experience
|
|
designing the database schema in Postgres for an application with over a decade
|
|
of usage, hundreds of gigabytes of data, complex, multi-tiered hierarchical data
|
|
structures, as well as experience writing and optimizing large, complex queries
|
|
against that database.}
|
|
|
|
\subsection{Additional Tools}
|
|
\cvitem{}{\footnotesize
|
|
\begin{itemize*}
|
|
\item Vim
|
|
\item Kubernetes
|
|
\item Git
|
|
\item Puppet
|
|
\item AWS
|
|
\item Reagent
|
|
\item Datomic
|
|
\item Elasticsearch
|
|
\item Redis
|
|
\item DynamoDB
|
|
\item Docker
|
|
\item JIRA
|
|
\item Java
|
|
\item QuickCheck (and similar tools)
|
|
\item Python
|
|
\item Elixir
|
|
\end{itemize*}
|
|
\newline
|
|
\textbf{Novice Level:}
|
|
\begin{itemize*}
|
|
\item Rust
|
|
\item C++
|
|
\item Erlang
|
|
\item Prolog
|
|
\item Idris
|
|
\item Agda
|
|
\item Tensorflow
|
|
\end{itemize*}}
|
|
|
|
\section{Experience}
|
|
\subsection{Employment}
|
|
\cventry{2019-present}{Engineering Manager}{Urbint}{New York, NY}{}
|
|
{\begin{itemize}
|
|
\item Lead of the platform team with two direct reports - a senior SRE and
|
|
a senior software engineer.
|
|
\item Performed user research on developers, project managers, product
|
|
managers, and other internal stakeholders to build the roadmap for the
|
|
platform team.
|
|
\item Built and maintained a system to deploy one-off full stack
|
|
application instances from pull requests to enable easier testing.
|
|
\item Led a large, multi-project migration between CI systems that resulted
|
|
in a decrease of average build times from 2 hours to less than 10 minutes.
|
|
\item Maintained and extended Nix-based build and development
|
|
infrastructure for both software engineers and machine learning engineers.
|
|
\end{itemize}}
|
|
\cventry{2018--2019}{Senior Software Engineer}{Urbint}{New York, NY}{}
|
|
{\begin{itemize}
|
|
\item Built, trained, and maintained a large, deep-learning-based
|
|
image-detection model for semi-automated (human-in-the-loop) video
|
|
classification.
|
|
\item Designed, built, and maintained a novel in-house tool for collection of
|
|
training data.
|
|
\item Maintained and guaranteed reliability of a large data pipeline for
|
|
video processing and classification.
|
|
\end{itemize}}
|
|
\cventry{2017--2018}{Senior Software Engineer}{Urbint}{New York, NY}{}
|
|
{\begin{itemize}
|
|
\item Integral in the architecture of a novel, serializable ACID
|
|
transactional graph database built on RocksDB, first in Elixir then in
|
|
Haskell.
|
|
\item Helped ship customer deliverables involving multi-day data
|
|
processing jobs for disparate data sources.
|
|
\item Instructed other developers in the use of and theory behind Haskell
|
|
\item Brought computational graph theory to bear on the problem of unifying
|
|
disparate, highly heterogeneous data sources across the world of open data.
|
|
\end{itemize}}
|
|
\cventry{2016--2017}{Senior Software Engineer}{SecurityScorecard, Inc.}{New York, NY}{}
|
|
{Lead frontend developer for a rapidly-moving and growing security software startup.
|
|
\begin{itemize}
|
|
\item Took part in collaborative product design meetings to make UX
|
|
tradeoffs with product designers and managers.
|
|
\item Drove application architecture for a large, complex, data-driven frontend
|
|
application.
|
|
\item Championed increased use of production monitoring and alerting.
|
|
\item Worked with business stakeholders to set long- and short-term priorities for
|
|
application development.
|
|
\item Mentored junior team members.
|
|
\end{itemize}}
|
|
\cventry{2015--2016}{Lead Developer}{Nomi, Inc.}{New York, NY}{}
|
|
{Lead web services developer transitioning to a full-stack role implementing
|
|
shared software components and architecting a large, complex microservices
|
|
application ingesting hundreds of gigabytes of IoT data per week.
|
|
\begin{itemize}
|
|
\item Lead application architecture of the majority of the backend services to
|
|
encourage consistent REST API design and code sharing.
|
|
\item Championed the use of Haskell for rapid, safe development of the API Gateway
|
|
service.
|
|
\item Took ownership of operations and server maintenance of a >100-instance AWS
|
|
account using Puppet.
|
|
\end{itemize}}
|
|
\cventry{2014--2015}{Lead Developer}{LandlordsNY, LLC}{New York, NY}{}
|
|
{Sole engineer for a small startup connecting landlords and property managers and
|
|
facilitating the online sharing of information in a historically technology-averse
|
|
industry.
|
|
\begin{itemize}
|
|
\item Drove product design, visual design, and UX architecture for a major revamping
|
|
of the core product.
|
|
\item Interfaced with customers to set priorities for new feature development.
|
|
\item Conducted hiring and recruiting to build out an engineering team.
|
|
\end{itemize}}
|
|
\cventry{2012--2014}{Associate Developer}{Visionlink Inc.}{Boulder, CO}{}
|
|
{Integral member of an agile development team building the nation's most-used Information
|
|
and Referral platform for organizations such as United Way Worldwide and the American Red
|
|
Cross.
|
|
\begin{itemize}
|
|
\item Refactored and revamped legacy code to increase performance and long-term
|
|
maintainablity.
|
|
\item Worked on several triage-teams to rapidly fix production bugs with strict deadlines.
|
|
\item Built a complex, yet highly-performant tool for searching human services by category.
|
|
\item Acted as a core designer and developer of a major product revamp.
|
|
\begin{itemize}
|
|
\item Drove a complete rethinking of the data model in the product, leading to greater
|
|
unification, simplicity, and consistency;
|
|
\item Championed the adoption of a test-driven-development model;
|
|
\item Drove product documentation and code standardization.
|
|
\end{itemize}
|
|
\end{itemize}}
|
|
|
|
\section{Project Highlights}
|
|
\newcommand{\project}[3]{\item \textbf{#1} -- \textit{#2}\newline{}#3}
|
|
\cvitem{}{\begin{itemize}
|
|
\project{Github Bug Bounty}{https://bounty.github.com/researchers/glittershark.html}{
|
|
Discovered and responsibly disclosed a persistent XSS on Github's main
|
|
website}
|
|
\project{Tvix}{https://cs.tvl.fyi/depot/-/blob/third\_party/nix/README.md}{
|
|
Fork of the Nix build tool delivering increased reliability, code
|
|
quality, and pluggability}
|
|
\project{Panettone}{https://cs.tvl.fyi/depot/-/tree/web/panettone}{
|
|
Aggressively simple bug-tracker developed in Common Lisp for the community
|
|
involved in the development of Tvix. Hosted at https://b.tvl.fyi}
|
|
\project{Org-Clubhouse}{https://github.com/glittershark/org-clubhouse}{
|
|
Emacs library for integration between org-mode and the Clubhouse issue
|
|
tracker}
|
|
\project{core-async-storage}{https://github.com/glittershark/core-async-storage}{
|
|
Simple Clojurescript wrapper around React Native's AsyncStorage using
|
|
core.async}
|
|
\end{itemize}}
|
|
|
|
\end{document}
|
|
% vim: set tw=95 colorcolumn=-1:
|