My personal website.

Add index and resume source files

Changed files
+112
+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
··· 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}}]