···11+#lang scribble/manual
22+33+@title{Industrial Torment Nexux Disassembly}
44+55+I'm Jacqueline, and this is my website, blog, and whatever else I want it to be.
66+77+@itemlist[
88+ @item{@hyperlink["./resume.html"]{My résumé}, for those interested in hiring someone with an
99+ incredibly strange set of skills.}
1010+1111+ @item{@hyperlink["https://github.com/jackfirth"]{My GitHub profile}, for those interested in
1212+ exploring my projects.}]
+100
resume.scrbl
···11+#lang scribble/manual
22+33+44+@title{Jacqueline Firth's Résumé}
55+66+@tt{jackhfirth@"@"gmail.com, (760) 902-4112}
77+88+Experienced software engineer specializing in developer tooling, compilers, CI/CD systems,
99+programming language theory, functional programming, automated refactoring systems, macro systems,
1010+microservices, and large-scale distributed systems. Currently based in the San Francisco Bay Area.
1111+1212+1313+@section{Experience}
1414+1515+@itemlist[
1616+ @item{@bold{2017 to Present} --- @bold{Software Engineer} at @bold{Google} on the Test Automation
1717+ Platform (TAP) Postsubmit team in Mountain View and Sunnyvale, CA. I worked in Java on backend
1818+ microservices implementing the test scheduling system Google uses to execute all of Google's unit
1919+ tests, running billions of tests per day. I've designed and implemented queueing systems,
2020+ ML-based predictive scheduling systems, high-throughput stream processing systems, and numerous
2121+ libraries and tools to manage our team's multi-million-line codebase. I am the team's resident
2222+ expert on asynchronous programming, concurrency, data structures, static analysis, and testing
2323+ infrastructure.
2424+2525+ In addition to my main work, I've contributed to Google's standard Java libraries, frameworks, and
2626+ static analysis tools, including Guava and ErrorProne. I'm also one of Google's Java readability
2727+ mentors: a collection of a few hundred engineers who educate the rest of Google's developers on
2828+ Java style and best practices through code review and Google's "readability review" process.}
2929+3030+ @item{@bold{2016 to 2017} --- @bold{Software Engineer} at @bold{Google} on the Google Cloud Elysium
3131+ team in San Francisco, CA. I implemented various backend server components of Google Cloud's
3232+ resource administration APIs, paritcularly the Cloud Project, Folder, and Organization APIs.}
3333+3434+ @item{@bold{2015 to 2016} --- @bold{Software Developer} at @bold{Mindjet} in San Francisco, CA. I
3535+ did full stack development on Mindjet's experimental new web platform for business task management.
3636+ We worked with Mongo, NodeJS, and Angular in a functional programming oriented style. I gave multiple
3737+ seminars on functional programming concepts generally and on Haskell specifically to our team to
3838+ educate our developers in this style.}
3939+4040+ @item{@bold{2014 to 2015} --- @bold{Programmer} at @bold{CenterSoft} in Cathedral City, CA. I did
4141+ full stack development on the company's flagship accounting software, working with C#, MySQL, and
4242+ frontend web technologies.}]
4343+4444+4545+@section{Education}
4646+4747+@bold{Bachelors in Mechanical Engineering} with minors in both Math and Physics from
4848+@bold{SUNY Canton, NY} (2009-2013), supplemented by Computer Science courses taken through a
4949+cross-registration program at @bold{St. Lawrence University, NY} (2011-2013). My education
5050+was unusual: I was 14 years old when I began taking SUNY Canton classes full time,
5151+and at the age of 18 I had to leave my bachelor's degree program without finishing it due
5252+to life circumstances.
5353+5454+5555+@section{Projects}
5656+5757+@(define paper-url "https://users.cs.utah.edu/plt/publications/oopsla23-faadffggkkmppst.pdf")
5858+5959+@itemlist[
6060+ @item{@hyperlink["https://racket-lang.org"]{Racket} --- A Lisp/Scheme-like programming language with
6161+ an advanced macro system designed for creating entirely new programming languages. I am a frequent
6262+ contributor to Racket and its ecosystem. I've given numerous talks at
6363+ @hyperlink["https://con.racket-lang.org"]{RacketCon}, many of which are viewable on YouTube.}
6464+6565+ @item{@hyperlink["https://github.com/jackfirth/resyntax"]{Resyntax} --- A static analysis and
6666+ refactoring tool for Racket that transforms Racket's macro system into an automated refactoring
6767+ platform. Multiple core Racket projects rely on its integration with GitHub.}
6868+6969+ @item{@hyperlink["https://github.com/jackfirth/rebellion"]{Rebellion} --- A collection of core
7070+ libraries for Racket created entirely by myself. Includes data structures, stream processing
7171+ libraries built around transducers, concurrency primitives, and various other useful libraries.}
7272+7373+ @item{@hyperlink["https://github.com/racket/rhombus"]{Rhombus} --- An experimental research language
7474+ built on Racket with the intention of bringing Racket's macro system to non-S-expression languages. I
7575+ am a contributor and frequent design discussion participant. I am one of the authors listed on the
7676+ @hyperlink[paper-url]{OOPSLA23 paper on Rhombus}, although I am listed under my previous name (Jack
7777+ Firth).}]
7878+7979+8080+@section{RacketCon Talks}
8181+8282+@(define collections-talk "https://www.youtube.com/watch?v=-eLw9vpcKI8")
8383+@(define resyntax-talk "https://www.youtube.com/watch?v=IoQBNh_NzQM")
8484+@(define rackunit-talk "https://www.youtube.com/live/et0C4ijed04?si=RBNagRyGfsMb1LZQ&t=8592")
8585+@(define warn-talk "https://www.youtube.com/watch?v=i6wXy3MZm64")
8686+@(define expanders-talk "https://www.youtube.com/watch?v=PoHGvY4RZ9U")
8787+8888+@itemlist[
8989+9090+ @item{RacketCon 2024 --- @hyperlink[collections-talk]{Sorted Collections in Rebellion}}
9191+9292+ @item{RacketCon 2022 --- @hyperlink[resyntax-talk]{Resyntax: A Macro-Powered Refactoring Tool}}
9393+9494+ @item{RacketCon 2017 ---
9595+ @hyperlink[rackunit-talk]{A RackUnit Toolkit: Growing Racket’s Testing Ecosystem}}
9696+9797+ @item{RacketCon 2016 ---
9898+ @hyperlink[warn-talk]{Language Integrated Nitpicking: Syntax Warnings in Racket}}
9999+100100+ @item{RacketCon 2015 --- @hyperlink[expanders-talk]{Generic Syntax Expanders and Extensible Macros}}]