--- roles: - id: bazel-configurability image: jobs/google/bazel.png name: Software Engineer # III team: Bazel Configurability company: Google startDate: 2016-07-15 # vague guess - this was around when I would have # started getting to work on reviewing configurability # changes and getting up to speed on this team endDate: 2019-10-04 # dead on, this was my last day at Google shortDescription: | Optimizations and flexibility for multiplatform builds for Bazel projects. description: | Let's see here. What did I do on Configurability? Besides _endless_ amounts of **trimming**? achievements: # * PB: Personal postmortem for burnout # * Organizer for BazelCon 2018 # * PB: Really easy to understand configuration trimming document ("one of the best docs I've read at Google") # * PB: BazelCon 2018 office hours, copy editing, logistics # * Worked to improve configurability team culture # * Helped teach other Bazel developers about Bazel configurability - multiple Bazel U sessions # * Bazel Android support: feature flags # * "This is so much better it hurts." - from attribute code refactoring as part of this # * Whitelisting mechanism as part of this, used by another developer for another feature # * Bazel configurability: manual trimming design + rollout # * Test trimming (saved 5min+ recompile on every test flag change) # * Tagged trimming (design + migration tool + rollout - for example, a project with 5GB memory use that had ballooned to 10+ GB and OOM-ing could drop down to a very buildable 8GB) # * Bazel configurability: automatic trimming research # * 2 years, ~60 pages of design documents, 2 different prototypes # * PB: Helped others understand Bazel feature flags - id: trimming description: | I did _endless_ amounts of **trimming**. - id: other description: | I did other stuff, **too**. - id: bazel-release image: jobs/google/bazel-old.png name: Software Engineer in Test # II team: Bazel Release Process company: Google startDate: 2013-09-15 # rough guess, since I was still working on Wallet in # Q3 2013, but had fully transitioned to Bazel by # Q3 2014 - but it hadn't gotten cold yet endDate: 2017-06-15 # did I truly ever stop working on the release process? # however, this is around when it stopped being my job description: "The long version is, I did so much freaking junk on this thing." shortDescription: "The short version is, a lot." achievements: - id: mentor description: | I taught Florian the secrets of releases. - id: teach description: | I taught everyone else how to be sheriff. # * Bazel release process fixing and documentation # * Bazel release process overhaul design # * PB: Sheriffing (x3) # * PB: Diagnosed & wrote tool to fix bug in test, reenabling releases # * Perf: Engineering conscientiousness (doing the right thing) # * Perf: Energetic and invested - id: bazel-android image: jobs/google/bazel-old.png name: Software Engineer # II team: Bazel Android Support company: Google startDate: 2013-09-15 # same as Bazel Release Process endDate: 2016-11-15 # vague guess - this is around when my focus shifted to # configurability full-time, since before that I was # doing configurability as a side job and Android as a # primary job description: null # * Bazel Android support: native code, Jack, resource-split APKs, aidl tooling fixes # * dynamic configs on aspects as part of Jack # * PB: Big release process documentation # * PB: Release process migration design help # * PB: Python and release process teaching # * PB: release process tools moved into binfs and hashbang # * PB: --legacy_android_support no-oping # * Spot: Consulted with Snapchat - id: google-tooling image: jobs/google/google.png name: Software Engineer in Test # II team: Internal Tooling company: Google startDate: 2013-02-15 # rough guess, since Jon mentioned my work on the tool # in Q3 2013 # which was after I started the UI work in Summer # which was after I'd been invited to start working on # the project around midway through Q1 endDate: 2017-12-18 # dead on, this is the day I got a peer bonus for # helping with turning this down description: null # * account making service # * PB: account creation tool (x3) + shutdown # * Spot: Gaiamaker - id: wallet-testing image: jobs/google/wallet.png name: Software Engineer in Test # II team: Wallet Web Frontend company: Google startDate: 2011-07-18 # dead on, this was my start date endDate: 2013-09-15 # same as with the Bazel Release Process start date, # since they're the same day description: null # * Web wallet testing # * Helped organize team fun events on Whisky # * PB: Guice wiring and integration testing support - id: agora-games image: jobs/agora.gif name: Software Intern company: Agora Games startDate: 2010-11-04 # or thereabouts, this is when I was interviewing endDate: 2010-12-04 # as recorded in a livejournal comment... # Agora Games: Ruby web testing - id: star-analytics image: jobs/staranalytics.png name: Software Intern team: Star Task Builder company: Star Analytics startDate: 2010-04-15 # very approximate, got my IP phone/laptop around then endDate: 2011-05-15 # ish, I stopped this around when I left school # Star Analytics C# frontend - id: misc image: jobs/blocks.svg name: Hobbyist team: Other (personal, school, side jobs etc.) Projects startDate: null endDate: null # ## Personal projects # * Personal blog website using Eleventy + Netlify # * Anki plugins for Japanese study # * Personal Docker server for mail and nextcloud # * Discord bots # * Assortment of handmade Minecraft plugins, self-run server # * PDF page-identification and splitting C# utility for helping at the church # * Python/GTK+ based rental property payment tracking # * Javascript based dice roller for MSN+ # ## RPI projects # * Python OpenGL-based game # * Rails based task management project: https://github.com/thoughtbeam/flagship_tasks # ## Regis projects # * C SDL-based game # * Python/GTK+ based assignment tracker # * Python based encrypted chat program # * Java based student chat program