82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
252 lines
12 KiB
TeX
252 lines
12 KiB
TeX
%% start of file `template.tex'.
|
|
%% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
|
|
%% Copyright 2014-2023 Griffin Smith (root@gws.fyi).
|
|
%
|
|
% 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{Aspen}{Smith}
|
|
\pronouns{she/her}
|
|
\title{Software Engineer}
|
|
\phone[mobile]{(720) 206-7218}
|
|
\email{aspen@gws.fyi}
|
|
\homepage{gws.fyi}
|
|
\extrainfo{she/her}
|
|
|
|
|
|
\begin{document}
|
|
\makecvtitle{}
|
|
\section{Skills}
|
|
\cvitem{Rust}{Expertise in high-performance, low latency, low-level systems
|
|
development with Rust, including everything from fundamental data structure
|
|
implementation to asynchronous distributed systems development}
|
|
\cvitem{Clojure}{Extensive experience architecting, deploying, and building
|
|
complex web applications in Clojure and Clojurescript, with a focus on
|
|
Re-Frame and Reagent. Experience testing distributed systems in Clojure using
|
|
Jepsen.}
|
|
\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{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 as an
|
|
implementer, in the context of an innovative new database implementing a query
|
|
planner and incremental materialization for the PostgreSQL and MySQL dialects of
|
|
SQL from the ground up -- and of course also a user}
|
|
|
|
\subsection{Additional Tools}
|
|
\cvitem{}{\footnotesize
|
|
\begin{itemize*}
|
|
\item Vim
|
|
\item Emacs (yes, also)
|
|
\item Kubernetes
|
|
\item Git
|
|
\item Terraform
|
|
\item AWS
|
|
\item GCP
|
|
\item Datomic
|
|
\item Elasticsearch
|
|
\item Redis
|
|
\item Docker
|
|
\item Java
|
|
\item Scala
|
|
\item QuickCheck (and similar tools)
|
|
\item Jepsen
|
|
\item Python
|
|
\item Elixir
|
|
\end{itemize*}
|
|
\newline
|
|
\textbf{Novice Level:}
|
|
\begin{itemize*}
|
|
\item C++
|
|
\item Erlang
|
|
\item Prolog
|
|
\item Idris
|
|
\item Agda
|
|
\item Tensorflow
|
|
\end{itemize*}}
|
|
|
|
\section{Experience}
|
|
\cventry{2020--2023}{Staff Software Engineer}{ReadySet}{Remote}{}
|
|
{Founding engineer at a startup bringing a high performance
|
|
partially-stateful, incrementally-maintained SQL database based on the Noria
|
|
thesis to market
|
|
\begin{itemize}
|
|
\item Served as the main technical leadership for the project throughout its
|
|
maturation from a research codebase to a production-grade system
|
|
\item Extended the Noria PhD thesis by implementing methods from multiple
|
|
research papers, masters theses, and other papers from database
|
|
research, in addition to original database research and development.
|
|
\item Invented or helped develop multiple novel database techniques in
|
|
partially materialized dataflow, including index planning and
|
|
selection, pagination, post-lookup aggregate processing, partial
|
|
``straddled'' joins, weak indexes for correct execution of partial
|
|
joins, and more.
|
|
\item Invented novel ways to test SQL databases, including a new deterministic
|
|
generator for SQL queries.
|
|
\item Developed the clustered high availability distributed runtime mode from
|
|
a buggy research feature into a production ready distributed system
|
|
that passed a suite of Jepsen tests.
|
|
\item Implemented a significant fraction of the SQL query planner, which
|
|
required both implementing algorithms specified in database research
|
|
papers and inventing new techniques to work around the limitations of
|
|
partially materialized dataflow
|
|
\item Optimized critical components of the code base, including algorithmic
|
|
optimizations, CPU cache analysis, low-level data structures, and
|
|
broad system runtime analysis
|
|
\item Implemented a type inference engine and expression evaluator that
|
|
supported multiple dialects of SQL configured at compile-time, with
|
|
maximum code reuse while preserving maintainability
|
|
\item Mentored multiple junior and senior engineers
|
|
\item Open-Source contributions visible at
|
|
\url{https://github.com/readysettech/readyset/commits?author=glittershark}
|
|
\end{itemize}}
|
|
\cventry{2019--2020}{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{How much does Rust's bounds checking actually cost?}
|
|
{\url{https://blog.readyset.io/bounds-checks/}}{Blog post providing a deep
|
|
evaluation of the runtime cost of bounds checking in safe languages like Rust.
|
|
Front page of Hacker News, doubled month-over-month ReadySet waitlist signups}
|
|
\project{Tvix}{\url{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}{\url{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}{\url{https://github.com/glittershark/org-clubhouse}}{
|
|
Emacs library for integration between org-mode and the Clubhouse issue
|
|
tracker}
|
|
\project{Github Bug Bounty}{\url{https://bounty.github.com/researchers/glittershark.html}}{
|
|
Discovered and responsibly disclosed a persistent XSS on Github's main
|
|
website}
|
|
\project{core-async-storage}{\url{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:
|