about summary refs log tree commit diff
path: root/users/grfn
diff options
context:
space:
mode:
authorAspen Smith <root@gws.fyi>2023-10-17T03·14-0400
committerclbot <clbot@tvl.fyi>2024-01-18T15·40+0000
commit6ae1bc1063f8a31cfa4b9be84ae9eb8753b9a964 (patch)
tree5136ba470543dcf55c79f88e78b410b9afebc1e3 /users/grfn
parent4497ac41ab63a24499e796ff5f50ff79970c5727 (diff)
feat(grfn/resume): refresh resume r/7414
Change-Id: I01947db529b4f4906b46c68f1cd64d76f68f9f23
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9763
Reviewed-by: aspen <root@gws.fyi>
Autosubmit: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
Diffstat (limited to 'users/grfn')
-rw-r--r--users/grfn/resume/moderncv.cls3
-rw-r--r--users/grfn/resume/moderncvstylecasual.sty3
-rw-r--r--users/grfn/resume/resume.tex118
3 files changed, 83 insertions, 41 deletions
diff --git a/users/grfn/resume/moderncv.cls b/users/grfn/resume/moderncv.cls
index a40f80733736..32489071332b 100644
--- a/users/grfn/resume/moderncv.cls
+++ b/users/grfn/resume/moderncv.cls
@@ -219,6 +219,7 @@
 % defines one's name

 % usage: \name{<firstname>}{<lastname>}

 \newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}

+\newcommand*{\pronouns}[1]{\def\@pronouns{#1}}

 % defines one's title (optional)

 % usage: \title{<title>}

 \renewcommand*{\title}[1]{\def\@title{#1}}

@@ -284,7 +285,7 @@
 % usage: \moderncvstyle{<style variant name>}

 \newcommand*{\moderncvstyle}[1]{

   \RequirePackage{moderncvstyle#1}}

-  

+

 % loads a color scheme

 % usage: \moderncvcolor{<color scheme name>}

 \newcommand*{\moderncvcolor}[1]{

diff --git a/users/grfn/resume/moderncvstylecasual.sty b/users/grfn/resume/moderncvstylecasual.sty
index e375e7612a5a..f8cf856d1aae 100644
--- a/users/grfn/resume/moderncvstylecasual.sty
+++ b/users/grfn/resume/moderncvstylecasual.sty
@@ -64,6 +64,7 @@
 % fonts

 \renewcommand*{\namefont}{\fontsize{38}{40}\mdseries\upshape}

 \renewcommand*{\addressfont}{\normalsize\mdseries\slshape}

+\newcommand*{\pronounsfont}{\fontsize{18}{40}\mdseries\upshape}

 

 % commands

 \renewcommand*{\makecvtitle}{%

@@ -86,7 +87,7 @@
   \@initializelength{\makecvtitlepicturewidth}%

   \settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%

   \parbox[b]{\textwidth-\makecvtitlepicturewidth}{%

-    \raggedleft\namefont{\color{color2!50}\@firstname} {\color{color2}\@lastname}}\\[-.35em]% alternate design: \MakeLowercase and no space

+    \raggedleft\namefont{\color{color2!50}\@firstname} {\color{color2}\@lastname} {\color{color2!50}\pronounsfont{\@pronouns}}}\\[-.35em]% alternate design: \MakeLowercase and no space

   {\color{color2!50}\rule{\textwidth}{.25ex}}%

   % optional title

   \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\null\hfill\titlestyle{\@title}}\\[2.5em]% \null is required as there is no box on the line after \\, so glue (and leaders) disappears; this is in contrast to after \par, where the next line starts with an indent box (even after \noindent).

diff --git a/users/grfn/resume/resume.tex b/users/grfn/resume/resume.tex
index 933558d570b6..fb226c4ddffc 100644
--- a/users/grfn/resume/resume.tex
+++ b/users/grfn/resume/resume.tex
@@ -1,6 +1,6 @@
 %% start of file `template.tex'.
 %% Copyright 2006-2013 Xavier Danaux (xdanaux@gmail.com).
-%% Copyright 2014-2020 Griffin Smith (wildgriffin45@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,
@@ -27,19 +27,25 @@
 \usepackage[scale=0.8, margin=0.65in]{geometry}
 \setlength{\hintscolumnwidth}{2.6cm}
 
-\name{Griffin}{Smith}
+\name{Aspen}{Smith}
+\pronouns{she/her}
 \title{Software Engineer}
 \phone[mobile]{(720) 206-7218}
-\email{grfn@gws.fyi}
-\homepage{https://www.gws.fyi}
-\extrainfo{References available upon request}
+\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.}
+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
@@ -48,10 +54,6 @@ deliver increased ergonomics and safety.}
 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.}
@@ -61,36 +63,35 @@ 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.}
+\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 Puppet
+        \item Terraform
         \item AWS
-        \item Reagent
+        \item GCP
         \item Datomic
         \item Elasticsearch
         \item Redis
-        \item DynamoDB
         \item Docker
-        \item JIRA
         \item Java
+        \item Scala
         \item QuickCheck (and similar tools)
+        \item Jepsen
         \item Python
         \item Elixir
     \end{itemize*}
     \newline
     \textbf{Novice Level:}
     \begin{itemize*}
-        \item Rust
         \item C++
         \item Erlang
         \item Prolog
@@ -100,8 +101,41 @@ against that database.}
     \end{itemize*}}
 
 \section{Experience}
-\subsection{Employment}
-\cventry{2019-present}{Engineering Manager}{Urbint}{New York, NY}{}
+\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.
@@ -190,23 +224,29 @@ against that database.}
 
 \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}}
+\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: