diff options
Diffstat (limited to 'users/grfn/resume')
-rw-r--r-- | users/grfn/resume/moderncv.cls | 3 | ||||
-rw-r--r-- | users/grfn/resume/moderncvstylecasual.sty | 3 | ||||
-rw-r--r-- | users/grfn/resume/resume.tex | 118 |
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: |