+12
index.scrbl
+12
index.scrbl
···
1
+
#lang scribble/manual
2
+
3
+
@title{Industrial Torment Nexux Disassembly}
4
+
5
+
I'm Jacqueline, and this is my website, blog, and whatever else I want it to be.
6
+
7
+
@itemlist[
8
+
@item{@hyperlink["./resume.html"]{My résumé}, for those interested in hiring someone with an
9
+
incredibly strange set of skills.}
10
+
11
+
@item{@hyperlink["https://github.com/jackfirth"]{My GitHub profile}, for those interested in
12
+
exploring my projects.}]
+100
resume.scrbl
+100
resume.scrbl
···
1
+
#lang scribble/manual
2
+
3
+
4
+
@title{Jacqueline Firth's Résumé}
5
+
6
+
@tt{jackhfirth@"@"gmail.com, (760) 902-4112}
7
+
8
+
Experienced software engineer specializing in developer tooling, compilers, CI/CD systems,
9
+
programming language theory, functional programming, automated refactoring systems, macro systems,
10
+
microservices, and large-scale distributed systems. Currently based in the San Francisco Bay Area.
11
+
12
+
13
+
@section{Experience}
14
+
15
+
@itemlist[
16
+
@item{@bold{2017 to Present} --- @bold{Software Engineer} at @bold{Google} on the Test Automation
17
+
Platform (TAP) Postsubmit team in Mountain View and Sunnyvale, CA. I worked in Java on backend
18
+
microservices implementing the test scheduling system Google uses to execute all of Google's unit
19
+
tests, running billions of tests per day. I've designed and implemented queueing systems,
20
+
ML-based predictive scheduling systems, high-throughput stream processing systems, and numerous
21
+
libraries and tools to manage our team's multi-million-line codebase. I am the team's resident
22
+
expert on asynchronous programming, concurrency, data structures, static analysis, and testing
23
+
infrastructure.
24
+
25
+
In addition to my main work, I've contributed to Google's standard Java libraries, frameworks, and
26
+
static analysis tools, including Guava and ErrorProne. I'm also one of Google's Java readability
27
+
mentors: a collection of a few hundred engineers who educate the rest of Google's developers on
28
+
Java style and best practices through code review and Google's "readability review" process.}
29
+
30
+
@item{@bold{2016 to 2017} --- @bold{Software Engineer} at @bold{Google} on the Google Cloud Elysium
31
+
team in San Francisco, CA. I implemented various backend server components of Google Cloud's
32
+
resource administration APIs, paritcularly the Cloud Project, Folder, and Organization APIs.}
33
+
34
+
@item{@bold{2015 to 2016} --- @bold{Software Developer} at @bold{Mindjet} in San Francisco, CA. I
35
+
did full stack development on Mindjet's experimental new web platform for business task management.
36
+
We worked with Mongo, NodeJS, and Angular in a functional programming oriented style. I gave multiple
37
+
seminars on functional programming concepts generally and on Haskell specifically to our team to
38
+
educate our developers in this style.}
39
+
40
+
@item{@bold{2014 to 2015} --- @bold{Programmer} at @bold{CenterSoft} in Cathedral City, CA. I did
41
+
full stack development on the company's flagship accounting software, working with C#, MySQL, and
42
+
frontend web technologies.}]
43
+
44
+
45
+
@section{Education}
46
+
47
+
@bold{Bachelors in Mechanical Engineering} with minors in both Math and Physics from
48
+
@bold{SUNY Canton, NY} (2009-2013), supplemented by Computer Science courses taken through a
49
+
cross-registration program at @bold{St. Lawrence University, NY} (2011-2013). My education
50
+
was unusual: I was 14 years old when I began taking SUNY Canton classes full time,
51
+
and at the age of 18 I had to leave my bachelor's degree program without finishing it due
52
+
to life circumstances.
53
+
54
+
55
+
@section{Projects}
56
+
57
+
@(define paper-url "https://users.cs.utah.edu/plt/publications/oopsla23-faadffggkkmppst.pdf")
58
+
59
+
@itemlist[
60
+
@item{@hyperlink["https://racket-lang.org"]{Racket} --- A Lisp/Scheme-like programming language with
61
+
an advanced macro system designed for creating entirely new programming languages. I am a frequent
62
+
contributor to Racket and its ecosystem. I've given numerous talks at
63
+
@hyperlink["https://con.racket-lang.org"]{RacketCon}, many of which are viewable on YouTube.}
64
+
65
+
@item{@hyperlink["https://github.com/jackfirth/resyntax"]{Resyntax} --- A static analysis and
66
+
refactoring tool for Racket that transforms Racket's macro system into an automated refactoring
67
+
platform. Multiple core Racket projects rely on its integration with GitHub.}
68
+
69
+
@item{@hyperlink["https://github.com/jackfirth/rebellion"]{Rebellion} --- A collection of core
70
+
libraries for Racket created entirely by myself. Includes data structures, stream processing
71
+
libraries built around transducers, concurrency primitives, and various other useful libraries.}
72
+
73
+
@item{@hyperlink["https://github.com/racket/rhombus"]{Rhombus} --- An experimental research language
74
+
built on Racket with the intention of bringing Racket's macro system to non-S-expression languages. I
75
+
am a contributor and frequent design discussion participant. I am one of the authors listed on the
76
+
@hyperlink[paper-url]{OOPSLA23 paper on Rhombus}, although I am listed under my previous name (Jack
77
+
Firth).}]
78
+
79
+
80
+
@section{RacketCon Talks}
81
+
82
+
@(define collections-talk "https://www.youtube.com/watch?v=-eLw9vpcKI8")
83
+
@(define resyntax-talk "https://www.youtube.com/watch?v=IoQBNh_NzQM")
84
+
@(define rackunit-talk "https://www.youtube.com/live/et0C4ijed04?si=RBNagRyGfsMb1LZQ&t=8592")
85
+
@(define warn-talk "https://www.youtube.com/watch?v=i6wXy3MZm64")
86
+
@(define expanders-talk "https://www.youtube.com/watch?v=PoHGvY4RZ9U")
87
+
88
+
@itemlist[
89
+
90
+
@item{RacketCon 2024 --- @hyperlink[collections-talk]{Sorted Collections in Rebellion}}
91
+
92
+
@item{RacketCon 2022 --- @hyperlink[resyntax-talk]{Resyntax: A Macro-Powered Refactoring Tool}}
93
+
94
+
@item{RacketCon 2017 ---
95
+
@hyperlink[rackunit-talk]{A RackUnit Toolkit: Growing Racket’s Testing Ecosystem}}
96
+
97
+
@item{RacketCon 2016 ---
98
+
@hyperlink[warn-talk]{Language Integrated Nitpicking: Syntax Warnings in Racket}}
99
+
100
+
@item{RacketCon 2015 --- @hyperlink[expanders-talk]{Generic Syntax Expanders and Extensible Macros}}]