Compare commits

..

No commits in common. "main" and "v0.1.5" have entirely different histories.
main ... v0.1.5

25 changed files with 559 additions and 1888 deletions

View File

@ -1,24 +0,0 @@
name: builder
on:
push:
branches:
- main
paths:
- 'Dockerfile.cicd'
jobs:
builder:
name: builder
runs-on: dind
steps:
- name: checkout
uses: actions/checkout@v3
- name: builder
run: |
t=registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
until docker ps; do
sleep 5
done
docker build -t "$t" -f ./Dockerfile.cicd .
docker push "$t"
docker rmi $(docker ps | grep ${t%:*} | grep '<none>' | awk '{print $3}') || true

View File

@ -1,30 +0,0 @@
name: cicd
on:
push:
branches:
- main
paths:
- 'src/**'
jobs:
cicd:
name: cicd
runs-on: dind
steps:
- name: checkout
uses: actions/checkout@v3
- name: cicd
run: |
echo "export FIREBASE_CI_TOKEN='${{ secrets.FIREBASE_CI_TOKEN }}'" >> ./.env
echo "export GITLAB_PAT='${{ secrets.GITLAB_PAT }}'" >> ./.env
f=$(mktemp)
echo '
FROM registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
WORKDIR /mnt
COPY ./ /mnt/
RUN bash -c "true; source ./.env; bash ./deploy.firebase.sh"
' | sed 's/^ *//' > $f
docker build -f $f -t resume-build:resume-build .
result=$?
docker rmi resume-build:resume-build || true
exit $?

View File

@ -0,0 +1,86 @@
version: 1
kind: pipeline
spec:
stages:
- name: debug
type: ci
spec:
steps:
- name: debug
type: run
spec:
name: debug
container: alpine/git
shell: sh
script: |
export build_event=${{ build.event }}
export build_target=${{ build.target }}
export build_before=${{ build.before }}
export build_after=${{ build.after }}
env | grep ^build_
git --no-pager diff --name-only $build_before..$build_after
- name: dockers
type: ci
spec:
volumes:
- name: dockersock
spec: {}
type: temp
steps:
- name: dind
when: build.event == "push" && build.target == "main"
type: background
spec:
container:
image: registry-app.inhome.blapointe.com:5001/docker:latest
privileged: true
mount:
- name: dockersock
path: /var/run
- name: docker
type: run
when: build.event == "push" && build.target == "main"
spec:
name: docker
container: registry-app.inhome.blapointe.com:5001/docker:latest
mount:
- name: dockersock
path: /var/run
shell: sh
script: |
set -ueo pipefail
export build_before=${{ build.before }}
export build_after=${{ build.after }}
apk add --no-cache git
t=registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
if git diff --name-only $build_before..$build_after | grep Dockerfile.cicd; then
until docker ps; do
sleep 5
done
docker build -t "$t" -f ./Dockerfile.cicd .
docker push "$t"
fi
- name: build
type: ci
spec:
steps:
- name: build
type: run
when: build.event == "push" && build.target == "main"
spec:
name: build
container:
image: registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
user: root
envs:
FIREBASE_CI_TOKEN: ${{ secrets.get("resume-firebase-squeaky2x3-gmail-token") }}
GITLAB_PAT: ${{ secrets.get("resume-gitlab-gitlab-breel-dev-token") }}
shell: sh
script: |
export build_before=${{ build.before }}
export build_after=${{ build.after }}
if git --no-pager diff --name-only $build_before..$build_after | grep src.open.resume.d; then
bash ./deploy.firebase.sh
fi

View File

@ -5,17 +5,10 @@ FROM andreysenov/firebase-tools:latest
USER root
RUN echo installing dependencies...
RUN apt update \
&& apt -y install git woff2 bash curl wget gnupg2 \
&& ( \
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
&& echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | tee -a /etc/apt/sources.list.d/google.list \
&& (apt update; apt --fix-broken install; apt -y install google-chrome-stable) \
) \
&& curl -L https://github.com/svenstaro/miniserve/releases/download/v0.24.0/miniserve-0.24.0-x86_64-unknown-linux-musl > /bin/miniserve \
&& chmod +x /bin/miniserve
RUN apt -y install git woff2 bash
RUN echo copying vale...
COPY --from=vale /bin/vale /bin/vale
RUN echo OK

View File

@ -1,16 +1,23 @@
# Resume
* todo
* prepare stories
* cross-team project with a hitch and deadline pressure
* an urgent incident
* in interviews, do the dumb version first
1. open https://www.open-resume.com/resume-builder
1. in browser, `inspect > storage > local storage > about:srcdoc`
1. `cat ./open-resume.com.d/local*.json`
1. paste into `about:srcdoc` `Value`
1. refresh
1. download resume as `./open-resume.com.d/resume.pdf`
1. inspect iframe > `<html>` > copy outer HTML
1. `pbpaste > ./open-resume.com.d/resume.html`
1. `cd ./open-resume.com.d/; bash ./clean_resume_html.sh; cd ..`
1. `bash ./deploy.firebase.sh`
## Usage
# Today
1. modify [homebrew.yaml](./src/homebrew/homebrew.yaml)
1. generate `cd ./src/homebrew; bash ./homebrew.sh` (interrupt when it starts timestamping)
1. `open ./src/homebrew/homebrew.html`
1. `ctrl + p` and save as pdf
1. commit + push
1. `.gitea/...` CICD pushes to firebase + gitlab
1. `gitness.inhome.blapointe.com` has a `./.harness` pipeline
1. the pipeline
1. renders [Resume](#resume) as `$(mktemp -d)/public`
1. clones [gitlab](https://gitlab.com/breel/resume.git)
1. replaces [gitlab](https://gitlab.com/breel/resume.git) with `.../public/`
1. pushes [gitlab](https://gitlab.com/breel/resume.git)
1. [render](https://dashboard.render.com/static/srv-cklkk8o710pc73d7fn7g) detects public repo event and updates its static site hosting for [breel.dev](https://breel.dev)
1. [firebase](https://console.firebase.google.com/u/0/project/blapointe-com/overview) deploys `.../public/` for [blapointe.com](https://blapointe.com)

View File

@ -1,857 +0,0 @@
# TODO https://www.linkedin.com/posts/brianjenney_ive-spoken-with-about-500-developers-in-activity-7119717343127117824-I016/?utm_source=share&utm_medium=member_desktop
# > did [x] using [y] which led to [z].
- when: 2019
rendered: Decreased backend service's annual outages by 91% and reduced hardware costs by 40% by selecting, training owners on, and migrating without downtime to a different database.
quantity:
- 718 avg outage min per year down to 64 avg outage min per year
- 356 outage minutes 2018 for marauders-map
- 352 outage minutes 2018 for couchbase
- 203 outage minutes 2018 for gobs
- 47 outage minutes 2019 for marauders-map
- 149 outage minutes 2019 for couchbase
- 282 outage minutes 2019 for gobs
- 47 outage minutes 2019 for geni
- 184 outage minutes 2020 for gobs
- 5 outage minutes 2020 for geni
- 48 outage minutes 2021 for couchbase
- 48 outage minutes 2021 for gobs
- 31 outage minutes 2022 for gobs
- 131 outage minutes 2023 for couchbase
- 131 outage minutes 2023 for gobs
- 12 outage minutes 2023 for geni
- when: 2020
rendered: Automated infrastructure patching without customer impact for 30 microservices and 25 database clusters by creating a modular and testable Bash script framework.
- when: 2020
what:
- edits healthcheck as a modular stack monorepo before it was cool that does visibility+remediation
why:
- pride-in-craft
grade: c
quantity:
- routinely randomly sampled N ETL
- scanned ~N rows per second vs 3 source systems
- fixed ~N per day
rendered: "Established a healthcheck system to scan X rows per second, resolve drift from upstream systems, and expose findings."
- when: 2020
what:
- BoQ hosting 2020..2023
why:
- pride-in-craft
- pride-for-others
grade: c
quantity:
- N text books
- audience of N
- 1 time a week
rendered: "Hosted engineering book club, including book selection and weekly group reflection."
- when: 2020
what:
- GOBS from p2p to stateless (via redis, killing leveldb)
- decoupled cache miss rate from releases
- decreased thread scalability
- decoupled disk size service scale
- same team known technology less sentinel operational burden
- decreased error rate from N to N during releases
why:
- scalability
grade: b
quantity:
- reduced touchpoints per call from N to N
rendered: "Simplified microservice by extracting peer-to-peer layer, decoupling single nodes' performance, availability, and scale from global performance."
- when: 2020
what:
- nexpose-remediations and blackduck sme
why:
- scalability
grade: c
quantity:
- decoupled knowledge of problem space from solution
- implement optional interface with your tribal knowledge and done
- made things like log4j feasible
- scripted tribal knowledge
rendered: null
- when: 2020
what:
- scale test rems vs re
why:
- failfast
grade: d
quantity: [""]
rendered: null
- when: 2020
what:
- mongo sme designed and released rems-mongo
why:
- scalability
grade: d
quantity: [""]
rendered: null
- when: 2020
what:
- re, terminator to nomad
why:
- scalability
grade: d
quantity: [""]
rendered: null
- when: 2020
what:
- design GOBS off of Couchbase
why:
- scalability
grade: a
quantity:
- single greatest operational pain, instability cause, financial burden
- horizontal scale on known, stable technology to reduce total team space
- simplified complex system to core requirements
- GOBS on Mongo with Xongo w/ Ryan intern mentor
- for all gobs,geni,maraudersmap,couchbase...
- ...35 outages/722 minutes 18 // geni on cb
- ...21 outages/290 minutes 19 // geni on cb
- ...13 outages/615 minutes 20
- ...8 outages/88 minutes 21
- ...13 outages/31 minutes 22
- ...14 outages/143 minutes 23
rendered: "Designed a replacement for a system, which yielded 28 outages annually, based entirely on technologies well understood by the team."
- when: 2020
what:
- REMS migration implementation
why:
- pride-in-craft
grade: c
quantity:
- no incidents
rendered: null
- when: 2020
what:
- DRS for REMS
why:
- scalability
- isolation for REMS
grade: c
quantity: [""]
rendered: null
- when: 2020
what:
- FSDef,FSIndex to GOBS from Couchbase
why:
- scalability
grade: b
quantity: [""]
rendered: null
- when: 2020
what:
- Mongo on TLS SME/pilot
- Redis on TLS,Password no downtime migration via middleware
why:
- scalability
grade: c
quantity:
- 0 incident
- 0 downtime
rendered: null
- when: 2020
what:
- Mongosback V2 for cron > rundeck
- Mongosback V2.1 autorelease after bake time, indexes
why:
- pride-in-craft
grade: a
quantity:
- onboarding from copy-paste to 1 line change
- served N teams over N years
rendered: Created custom Python tooling to create, increment, restore, and check for MongoDB database backups for standalone, replicated, and sharded deployments without customer impact, and has been the in-house standard for 21 teams for 4 years.
- when: 2020
what:
- REMS+DSCat Mongo SME
why:
- pride-in-craft
grade: c
quantity: [""]
rendered: null
- when: 2021
rendered: Developed and owned highly available and reliable data storage and operational tooling.
- when: 2021
rendered: Mentored 2 intern, 2 new grad, and 4 mid-level engineers on operational tools, best practices for maintainable software, and career development.
- when: 2021
rendered: Genericized AWS asset management tooling ahead of company-wide mass migration initiative.
- when: 2021
rendered: Championed disaster recovery by supporting training runs with documentation, tools, and live support across teams and enforced continuous compliance for 17 database clusters with monitoring and alerting.
- when: 2021
rendered: Lent expertise owning MongoDB across teams by advising on configuration and data models and genericizing disaster recovery tooling for 21 teams.
- when: 2021
what:
- systems review planning
why:
- pride-in-craft
- pride-for-others
grade: c
quantity: [""]
rendered: null
- when: 2021
what:
- mentored new hire until he left the team for his starter project (S3)
why:
- pride-in-craft
- pride-for-others
grade: c
quantity: [""]
rendered: null
- when: 2021
what:
- mentored sr engineer on Bash, rundeck, in-house metrics and alerting, ssh...
why:
- pride-in-craft
grade: d
quantity: [""]
rendered: null
- when: 2021
what:
- on-call training with chaos testing, hands-on, log perusing
- Mongo multi-phase, multi-timezone interactive training with offline reading and video + online chaos testing + forum for anonymous feedback
why:
- pride-in-craft
- pride-for-others
grade: c
quantity:
- N chaos tests // 2021-06-16, 2022-08-08, 2023.02.01, 2019-01-23, 2019-08-09, 2019-09-04
- N systems // re, geni, gobs, terminator, is
- N participants
rendered: "Administered on-call training, including 6 chaos tests gamedays across 5 systems."
- when: 2021
what:
- s2se; scripted Galera with safety for multi-team // https://qualtrics.slack.com/archives/C016VAW2L04/p1613540701066600
why:
- scalability
- pride-in-craft
grade: b
quantity:
- 3 teams // https://qualtrics.slack.com/archives/C016VAW2L04/p1613540701066600 // vocalizedb=3*8, dis=3*8, me=5*3*8
- spreadsheet with N steps // https://docs.google.com/spreadsheets/d/1JsxGdEWlGOFivJZMOBMmlkaoqRz3gTJB7NtjVGI3q-I/edit#gid=644182888 // https://qualtrics.slack.com/archives/C016VAW2L04/p1612567987267700 // https://gitlab-app.eng.qops.net/data-store/orchestration/runbooks/-/blob/8d30ca087c6f1a5518515b98e7948b48aac6d08a/Maintenance/Galera_to_TLS/upgrade.sh
- "Scripted no-downtime database reconfiguration, which reduced 44 manual steps per node to 3 and was leveraged by 3 teams to update 168 instances."
- our N clusters
rendered: "Scripted no-downtime database reconfiguration, which was leveraged by 3 teams to update 168 instances."
- when: 2021
what:
- dr backup check to monitor s3 compliance w/ 19 teams onboarded and eventually handed to dbteam
why:
- scalability
grade: b
quantity:
- 16 teams // s3-backup-check $ git grep '^[a-z].*:' $(git rev-list --all) | grep :config.*yaml: | sed 's/.*:config.//' | sed 's#/.*##' | sort -u | tr '\n' ' '; echo .examples action-planning analytics-engine datastore dbteam devplat-mongo dp-orchestration dp-orchestration.yaml:geni-mongo-$DC: dp-orchestration.yaml:rdb-$DC-i: dp-orchestration.yaml:rdb-$DC-s: dtool exh geni.yaml:backups: geni.yaml:geni: geni.yaml:rdb: jfe job-platform orch pxapp statwing ta tickets workflow-triggers
- parallelized to P=3 and trivially configurable
- caught N issues backups failing causes for us
rendered: Founded the in-house standard system to continuously verify 16 teams' compliance with disaster recovery requirements.
- when: 2021
what:
- REMS on SSDs analysis, budget proposal, approval, deploy, mock traffic
why:
- scalability
grade: b
quantity:
- N% more cost but N% less shards
- https://docs.google.com/document/d/1Yh-HrA4xuaZD4CMFJwqHjir_B4qLIPbXEUmw9m5azy8/edit#heading=h.uw3h16ap7r5f
rendered: "Forecasted financial and complexity cost to launch on cheap hardware yielded $N savings over 2 years. // compute $ and include dev cost of setting up new shards, say .5 dev week so 1k=100k/52/2 per shard"
- when: 2021
what:
- Took REMS migration implementaion back from handoff and reduced ETA from inf to 3w at max speed w/ visibility and parallelism
why:
- pride-in-craft
grade: b
quantity: [""]
rendered: null
- when: 2021
what:
- found Go likes lots of small > few big RAM nodes
why:
- pride-in-craft
grade: d
quantity: [""]
rendered: null
- when: 2021
what:
- REMS quality of life
- idempotency test
- brand/user/issuer/byte limiting
- squishing
- lazy JSON parsing
- resumable jobs
- heartbeating jobs
why:
- scalability
grade: d
quantity:
- reduced RAM from >N to N with lazy json flame graphs
rendered: null
- when: 2021
what:
- DSCat mongo query analysis and optimization
why:
- pride-in-craft
grade: c
quantity: [""]
rendered: null
- when: 2021
what:
- cross-team Mongo incident remediation, support, guidance, SME
why:
- pride-in-craft
grade: b
quantity: [""]
rendered: null
- when: 2021
what:
- couchsback to v2 as rclone
why:
- scalability
grade: c
quantity: [""]
rendered: null
- when: 2021
what:
- pushed against proposed optimizations (rems cleaning of old edit fields on stale edits) and proved gains (.3% data saved on wire to TS) wouldnt pay off but complied when commanded
why:
- scalability
grade: b
quantity: [""]
rendered: null
- when: 2021
what:
- LegacyPublicAPI; they wanted to hand to us, so I executed what itd take to shift ownership to us and documented the gotchas, and it was so bad that they reverted my complete code and revisited so this handoff wouldnt repeat with other teams
why:
- pride-in-craft
grade: d
quantity: [""]
rendered: null
- when: 2021
what:
- healthcheck platform design approved but implementaion priority rejected
why:
- pride-in-craft
- pride-for-others
grade: c
quantity: [""]
rendered: null
- when: 2022
rendered: Mentored entry and mid-level engineers on stability, clean code, and distributed systems.
- when: 2022
rendered: Hosted engineering book and white paper clubs for continuous improvement and cross-team experience sharing for 2 years.
- when: 2022
rendered: Recovered 98% of data lost in critical incident via coordinating cross-team efforts and dissecting native database operation logs.
- when: 2022
what:
- champion of quality; suspected and saw symptoms of data incorrectness in REMS snapshots, insisted and provided more and more evidence despite willful holiday ignorance, eventually recognized as p1
why:
- pride-in-craft
grade: c
quantity:
- discovered bug affecting N rows
rendered: null
- when: 2022
what:
- became team lead
why:
- scalability
grade: c
quantity: [""]
rendered: null
- when: 2022
what:
- cost-benefit of geni on ddb; 10x the cost but reduces hardlyAnyOperationalBurdenQuantified
why:
- pride-in-craft
grade: b
quantity:
- contrary to popular opinion, found N% more cost for N risk to move mongo to DDB as-is
rendered: Challenged deprecation of MongoDB for DynamoDB, ultimately saving $N annually and operational burden on N teams.
- when: 2022
what:
- geni iops -> i insist and tune docker when team wants to ignore call to action
why:
- pride-in-craft
grade: c
quantity: [""]
rendered: null
- when: 2022
what:
- response-files OOMs image resizing sidecar proposed + open source used
why:
- scalability
- pride-in-craft
grade: c
quantity:
- N ooms/errors per week
- N on call alerts for nothing
- 0 migration pain
rendered: null
- when: 2022
what:
- generic aws migration scripts w/ mentee leveraged by tens of teams for s3, ddb, lambda, sns, sqs
what2: |
https://huggingface.co/chat/conversation/6533fbd355db1e7b0bf62a3b
Model: mistralai/Mistral-7B-Instruct-v0.1
https://www.linkedin.com/posts/thedanielbotero_use-these-chatgpt-prompts-if-you-want-to-activity-7119669945298284546-q1DA/?utm_source=share&utm_medium=member_desktop
created custom AWS asset management tooling that streamlined our infrastructure management process and saved time and resources
why:
- pride-in-craft
- pride-for-others
- scalability
grade: a
quantity:
- 9 teams
- |
Production[674592268301]/api_access $ ls replication-user-* | grep -o 'replication.user.[a-z]*-' | uniq
replication-user-datasets-
replication-user-datastore-
replication-user-des-
replication-user-distributions-
replication-user-dp-
replication-user-dpie-
replication-user-eax-
replication-user-graphic-
replication-user-xmd-
- with 1 mentee
- each team saved N man hours
- 7 aws technologies
rendered: "Spearheaded AWS asset replication tooling, sparing 9 teams from duplicating work relocating up to 7 AWS technologies each."
- when: 2022
what:
- cicd for team; onboarding + converting + creating continuous testing framework
why:
- scalability
grade: b
quantity:
- N repos from wild west to E2E // atlas-data loader, -qmp, -qmp canary, -data loader canary, qdp counts, janus
- blocked N releases // from spinnaker ui probably
- ajw initial release from 25% e2e test to 75%
- more E2E tests on previously E2E test free repos because old mentee sahithig didnt feel comfortable joining the team fearing shes break stuff
- test everything; our tests found FSCS outages and then FSCS team found they had no visibility
- test everything; atlas data loader first e2e test
- test everything; block dev if merging release isnt noop
- test everything; legacy responses first e2e test
- test everything; except dont; response-files keepalives cross-dc would expire and break response-files allocs permanently, so tests couldnt pass to release fix
- test everything; janus cruddy e2e tests
- 10 data-store/* repos, 1 legacyresponses
- |
fffffffff finding carter throughput gonna hurt if even possible
well, i guess i just need to find b1 failures because qamel fail and check commit diff for the one after
only since cruddy invention
spinnaker prunes so
- |
'from:@Spinnaker "Deploy to Beta" "Failed" in:#datastore-releases'
11 unique dates in -30d..now
10 unique dates in -60d..-30d
10 unique dates in -90d..-60d
rendered: "Created automated release test suites for 11 services, which catches 10 would-be customer facing bugs per month on average."
- when: 2022
what:
- sahithig + itony mentorships; spead asks whats wrong with onboarding? what onboarding!
why:
- pride-in-craft
- pride-for-others
- scalability
grade: b
quantity: [""]
rendered: null
- when: 2022
what:
- monorepo and parallelizing and caching packages = Jenkins from 10m to 2m
why:
- pride-in-craft
- scalability
grade: d
quantity: [""]
rendered: null
- when: 2022
what:
- autopatching for vuln remediation via scheduled builds for team w/ stable, quiet cicd
- scalability
grade: d
quantity:
- our team does N images per month vs DPORCS
- N of last N weeks fedramp high compliant
rendered: null
- when: 2022
what:
- The REMS Data Loss Incident
- mongo bug around leaked oplog lock = no disk persistence = total loss
- upstream replayed jobs or shared their mongodb oplog so i could rebuild
- forward-facing communication; instead of sorry, this is our root cause and future prevention
why:
- pride-in-craft
grade: b
quantity:
- N% jobs restored
- N of N parties fully recovered
rendered: null
- when: 2022
what:
- miss; jfe needs faster virus scanning so I give em 10%. They want 10x because they retry all N files of their batch of M every time. Losers.
why:
- scalability
grade: d
quantity: [""]
rendered: null
- when: 2022
what:
- every aws migration solo or nearly
why:
- scalability
grade: c
quantity: [""]
rendered: null
- when: 2022
what:
- became team lead and promoted to l5
why:
- role-model-dad
grade: b
quantity: [""]
rendered: null
- when: 2022
what:
- coda doc for planning splits owners from contributors w/ weights
why:
- scalability
grade: b
quantity:
- hit N% of team commitments up from N
rednered: null
rendered2: "Revised bottom-up quarterly planning to consider variable development time costs, averaging in N% more team committments hit. // this is pretty fuckin vauge..."
- when: 2022
what:
- miss; davidc exported to orcs despite wishes to stay
why:
- pride-in-craft
- role-model-dad
grade: d
quantity: [""]
rendered: null
- when: 2022
what:
- swimlanes of rems; byte write/read rate limits, terminator specific pool
why:
- scalability
- pride-in-craft
grade: d
quantity: [""]
rendered: null
- when: 2022
what:
- tested REMS no-ops when carter ignored me asking him to
- please write 1 test before i get back from vacation
- 0 forever
why:
- pride-in-craft
- pride-for-others
grade: d
quantity: [""]
rendered: null
- when: 2022
what:
- generic nomad cost analysis grafana
why:
- scalability
grade: b
quantity:
- generic cost analysis found $N over provisioned hardware transformation+rems
rendered: "Built a cost analysis Grafana dashboard that revealed $Nk in over allocated elastic compute hardware annually."
- when: 2023
what:
- learning the performance feedback game; my perception is no one elses reality; make a rubric and define specific examples against it
why:
- pride-in-craft
- pride-for-others
- role-model-dad
grade: b
quantity: [""]
rendered: null
- when: 2023
what:
- miss; horizons doc review wasnt generalized/brief enough
why:
- pride-in-craft
- pride-for-others
- customer-obsesssion
grade: d
quantity: [""]
rendered: null
- when: 2023
what:
- 2nd highest contributor to runbook blitz
why:
- pride-in-craft
- pride-for-others
grade: d
quantity: [""]
rendered: null
- when: 2023
what:
- when overloaded with ops, told team and offloaded + handed off threads
why:
- pride-in-craft
grade: c
quantity: [""]
rendered: null
- when: 2023
what:
- fairness for rems; if attempt to use N threads per box, defer to low prio queue
why:
- pride-in-craft
- scalability
grade: c
quantity:
- sandboxed about N minor incidents per month
rendered: null
- when: 2023
what:
- interactive cicd tutorial with dpie so they could execute side-by-side
- not my fault they didnt
why:
- pride-for-others
- scalability
grade: b
quantity: [""]
rendered: null
- when: 2023
what:
- chaos test gameday to train new teammate oncall
why:
- pride-in-craft
grade: c
quantity:
- N chaos tests
rendered: null
- when: 2023
what:
- Couchbase-aggedon
- i told em how to patch that shit motherfuckers are usual
- i go to office because that team insists
- i stop em from terminating early many times
- '* a hash means we dont need to check, right?'
- '* ive got a script its good enough i wrote it'
- '* ive got v2 of my script its good enough i wrote it'
- '* this is a lotta pain, we should give up'
- taught 8 teammates how to sed/grep/script/Bash
- delegating threads; spiking accesslogs, spiking redis dumps, spiking couchbase backup/restore
- discovered bugs that meant some threads were not viable
- reduced problem to safest state for round 1, next safest for round 2, ...
why:
- pride-in-craft
grade: a
quantity:
- N% data restored
- 2 fault remediations blocked
- N% data jeopardized
- N% data identified free and delegated to N engineers
rendered: "Enforced <a high quality bar> in a data loss incident, delegating identifying the N% of data lost, 3 distinct restoration efforts, and developing automated validation to block 2 incorrect remediation attempts."
- when: 2023
what:
- BoQ final
why:
- scalability
grade: d
quantity: [""]
rendered: null
- when: 2023
what:
- generic datastore customers could opt into us doing stateramp for them in GENI if they set jwts
why:
- pride-in-craft
- scalability
grade: b
quantity:
- N teams had a zero or near zero onboarding lift
rendered: null
- when: 2023
what:
- REMS /partitions, /entrypoints for TS to parallel data load via index scan+hash live vs. keithc INSISTED on not live :eye_roll:
why:
- pride-in-craft
- scalability
grade: b
quantity:
- N% dev work for N% gains
- system more flexible to add/remove/update configuration vs baked index
- |
performance of native
for each key in index:
yield key from index
so N index keys yielded from mongo*
performance of live
for each key in index_a:
if partition(key) in range:
yield key from index
dont store a second index, so halve index use
inverse linear scaling with partition count network bytes
1 partition == native
2 partitions == 2*native
3 partitions == 3*native
BUT internally, mongo was doing 2*, 3*, so now we are doing as much complexity but client side so adding network cost
so what is cost of doing N on local vs remote?
well, what is cost of 1 network hop vs cpu filtering? should be that ratio
.4ms vs COST_OF_(HASHING_15_CHARS+GC+MOD)
but all of this still would be done, just async and 99% unused
.4ms vs .1ms
4:1
https://qualtrics.slack.com/archives/DGS4G1J87/p1678121083319669
rendered: Devised a MongoDB live indexing strategy, which supported both current and future use cases, and saved the computing and filling of a new 99% unused native database index.
- when: 2023
what:
- proposed AtlasQMP as bugfixed singleton, parallelized nomad, or lambda cost and speed and devcost and deliverytime
- high availability; 2 instances of singleton with distributed lock as cheap and good enough path forward
why:
- pride-in-craft
- scalability
grade: b
quantity:
- spike into 3 alternative
- review by team
- final option cost $N% of pre-spike expectations, N% dev work, N% risk
- https://docs.google.com/document/d/10lpn6c8hHRs2dGAm37sP0wKR5vbzJ4zbtY9zBDopTMU/edit
- was 40k items per second, now 175k
- would require qmp proxy to scale about as much as we would drop nomad BUT we gain lambda cost assuming never replay
- so $600 per mo worldwide to $1200 per mo worldwide
- 7k per year isnt very much with cheating
- 2 dev weeks to revamp and clean up
- lets say 4 dev weeks to get qmp team to scale up proxy, the incidents that wouldve caused, and assume kinesis to rest wouldve been trivial
rendered: Optimized a Go application to increase consumption rate from Kafka by 340%, costing half the engineering effort of the proposed rewrite.
- when: 2023
what:
- response-files split from library-files so we can move to our own database without sideaffect
why:
- scalability
- pride-in-craft
grade: c
quantity:
- N% of our requests were for a different team's operations
- N% of our features were for a different team's features
- first wait for them, then fork and pass
rendered: null
- when: 2023
what:
- challenge; q2/q3 planning without knowing what medical leave teammate would do
- 1. offboard what mattered that he was doing
- 2. ask him repeatedly to offboard early and ask for updates how its going
- 3. guess things he really wants and assume he wont be here for forseeable future even if he does return
- coordinate with mathis on expectations upon his return
why:
- pride-for-others
grade: d
quantity: [""]
rendered: null
- when: 2023
what:
- REMS vs Translations
- Translatsions gets 500 rows from AE without translations and translates those
- '* prone to eventual consistency, blocks, brand deprioritizing, random bugs'
- REMS got a backlog so we told them first
- '* and we bumped over and over for them to look'
- ' * and it escalated to a snafu'
- '* root cause was squishing taking 90% of our cpu on this backlog of repeat work so sync squishing expedited to full release'
- REMS emit a bug to TS that missed edits, so Translatsions kept re-translating what REMS perceived to be no-ops
why:
- pride-in-craft
grade: c
quantity: [""]
rendered: null
- when: 2023
what:
- insist on oncall covers during stressful weeks, high effort windows, and okr release time
why:
- role-model-dad
- pride-in-craft
grade: b
quantity: [""]
rendered: null
- when: 2023
what:
- still SME on mongo backups and use-case-specific performance optimization
why:
- pride-in-craft
- scalability
grade: c
quantity: [""]
rendered: null
- when: 2023
what:
- more E2E tests on previously E2E test free repos because old mentee sahithig didnt feel comfortable joining the team fearing shes break stuff
why:
- pride-in-craft
- scalability
- pride-for-others
grade: c
quantity: [""]
rendered: null
- when: 2023
what:
- navigated a teammate getting exported to a team he didnt want to join AND later getting exported from that team and almost someone else getting exported too
why:
- pride-in-craft
- role-model-dad
grade: d
quantity: [""]
rendered: null
- when: 2023
what:
- CSchmalzle
- '* burnt out in q1 from too many projects in-flight'
- ' * bi-weekly are you closing stuff?'
- ' * daily yaknow that 2 day thing? is it done? when will it be done? what do we need to do to ship it? for 2 months'
- ' * insisted he pick things to handoff and we got 2 from him'
- '* released a lotta stuff untested and broken and i doubled back to fix it'
- ' * entire team adds quality as key result'
- '* terrible mr of copy-pasting + 2k lines of code'
- ' * learn2git'
- ' * multi-mr'
- ' * refactors separate'
- '* wants to release his mass changes that include customer-facing system behavior changes because well be more correct'
- ' * and lots of support to remediate kanban'
- ' * and i say NO u fok'
why:
- pride-for-others
- scalability
grade: c
quantity:
- weekly checkins for burnout causes
rendered: null
- when: 2023
what:
- i get team approval on a design to stop not-deleting customer data, they say we should fix at system level, so I spike and prove system level, just for other team to nope.avi out (REMS MoM delete)
- designed rems mom deleting parallel with atlas, proposed drs team fixes it and impacted team volume, got deferred indefinitely and solved the same problem yet again but for rems mom
why:
- pride-in-craft
grade: b
quantity:
- demonstrated N system race conditions and touch points
rendered: "Mapped N unhandled inter-system race conditions to their single point of failure."
- when: 2023
what:
- XMD Contact Consolidation Consumer
- read our kafka topic like this and call your apis with it
- ezpz BUT i dont wanna own your business logic by proxy
- but our manager said you would, and something about throttling
- handle our 429s and youll be k
- but our manager...
- ...3 weeks later...
- listen here m8, u guys own your own 1 write per second shit, ya hear?
- we didnt even want that, yall just took 2 years to get back to us >:(
- o
why:
- pride-in-craft
grade: c
quantity:
- sample size 1 week revealed new team was scared of N ops per second but N was 1
rendered: null
- when: 2022
what:
- feedback; told sean implying we should spend QED time on ops work is against the spirit of QED time but he is an authority figure and makes it uncomfortable not to
grade: b
quantity: [""]
rendered: null
- when: 2022
what:
- feedback; when i needed to ask michaelp for a remote exception, i had to share i was hesistant because he made possibly leaving engineers sound ostracized and ejected immediately
grade: c
quantity: [""]
rendered: null

View File

@ -1,529 +0,0 @@
- when: 2020
what: edits healthcheck as a modular stack monorepo before it was cool that does visibility+remediation
how: []
why:
- pride-in-craft
- when: 2020
what: BoQ hosting 2020..2023
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2020
what: GOBS from p2p to stateless (via redis, killing leveldb)
how: []
why:
- scalability
- when: 2020
what: nexpose-remediations and blackduck sme
how: []
why:
- scalability
- when: 2020
what: scale test rems vs re
how: []
why:
- failfast
- when: 2020
what: mongo sme designed and released rems-mongo
how: []
why:
- scalability
- when: 2020
what: re, terminator to nomad
how: []
why:
- scalability
- when: 2020
what: design GOBS off of Couchbase
how: []
why:
- scalability
- when: 2020
what: REMS migration implementation
how: []
why:
- pride-in-craft
- when: 2020
what: DRS for REMS
how: []
why:
- scalability
- when: 2020
what: isolation for REMS
how: []
why:
- scalability
- when: 2020
what: FSDef,FSIndex to GOBS from Couchbase
how: []
why:
- scalability
- when: 2020
what: GOBS on Mongo with Xongo w/ Ryan intern
how: []
why:
- pride-in-craft
- when: 2020
what: Mongo on TLS SME/pilot
how: []
why:
- scalability
- when: 2020
what: Mongosback V2 for cron > rundeck
how: []
why:
- pride-in-craft
- when: 2020
what: REMS+DSCat Mongo SME
how: []
why:
- pride-in-craft
- when: 2021
what: systems review planning
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2021
what: mentored new hire until he left the team for his starter project (S3)
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2021
what: mentored sr engineer on bash, rundeck, in-house metrics and alerting, ssh...
how: []
why:
- pride-in-craft
- when: 2021
what: on-call training with chaos testing, hands-on log perusing
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2021
what: s2se; scripted Galera with safety for multi-team
how: []
why:
- scalability
- pride-in-craft
- when: 2021
what: dr backup check to monitor s3 compliance w/ 19 teams onboarded and eventually handed to dbteam
how: []
why:
- scalability
- when: 2021
what: Mongosback V2.1 autorelease after bake time, indexes
how: []
why:
- pride-in-craft
- when: 2021
what: REMS on SSDs analysis, budget proposal, approval, deploy, mock traffic
how: []
why:
- scalability
- when: 2021
what: Took REMS migration implementaion back from handoff and reduced ETA from inf to 3w at max speed w/ visibility and parallelism
how: []
why:
- pride-in-craft
- when: 2021
what: found Go likes lots of small > few big RAM nodes
how: []
why:
- pride-in-craft
- when: 2021
what: |
REMS quality of life
* idempotency test
* brand/user/issuer/byte limiting
* squishing
* lazy JSON parsing
* resumable jobs
* heartbeating jobs
how: []
why:
- scalability
- when: 2021
what: DSCat mongo query analysis and optimization
how: []
why:
- pride-in-craft
- when: 2021
what: cross-team Mongo incident remediation, support, guidance, SME
how: []
why:
- pride-in-craft
- when: 2021
what: couchsback to v2 as rclone
how: []
why:
- scalability
- when: 2021
what: pushed against proposed optimizations (rems cleaning of old edit fields on stale edits) and proved gains (.3% data saved on wire to TS) wouldnt pay off but complied when commanded
how: []
why:
- scalability
- when: 2021
what: Mongo multi-phase, multi-timezone interactive training with offline reading and video + online chaos testing + forum for anonymous feedback
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2021
what: LegacyPublicAPI; they wanted to hand to us, so I executed what it'd take to shift ownership to us and documented the gotchas, and it was so bad that they reverted my complete code and revisited so this handoff wouldnt repeat with other teams
how: []
why:
- pride-in-craft
- when: 2021
what: healthcheck platform design approved but implementaion priority rejected
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2022
what: champion of quality: suspected and saw symptoms of data incorrectness in REMS snapshots, insisted and provided more and more evidence despite willful holiday ignorance, eventually recognized as p1
how: []
why:
- pride-in-craft
- when: 2022
what: became team lead
how: []
why:
- scalability
- when: 2022
what: cost-benefit of geni on ddb: 10x the cost but reduces hardlyAnyOperationalBurdenQuantified
how: []
why:
- pride-in-craft
- when: 2022
what: geni iops -> i insist and tune docker when team wants to ignore call to action
how: []
why:
- pride-in-craft
- when: 2022
what: response-files OOMs image resizing sidecar proposed + open source used
how: []
why:
- scalability
- pride-in-craft
- when: 2022
what: generic aws migration scripts w/ mentee leveraged by tens of teams for s3, ddb, lambda, sns, sqs
how: []
why:
- pride-in-craft
- pride-for-others
- scalability
- when: 2022
what: cicd for team; onboarding + converting + creating continuous testing framework
how: []
why:
- scalability
- when: 2022
what: sahithig + itony mentorships; spead asks what's wrong with onboarding? what onboarding!
how: []
why:
- pride-in-craft
- pride-for-others
- scalability
- when: 2022
what: monorepo and parallelizing and caching packages = Jenkins from 10m to 2m
how: []
why:
- pride-in-craft
- scalability
- when: 2022
what: autopatching for vuln remediation via scheduled builds for team w/ stable, quiet cicd
how: []
- scalability
- when: 2022
what: |
The REMS Data Loss Incident
* mongo bug around leaked oplog lock = no disk persistence = total loss
* upstream replayed jobs or shared their mongodb oplog so i could rebuild
* forward-facing communication; instead of sorry, this is our root cause and future prevention
how: []
why:
- pride-in-craft
- when: 2022
what: miss; jfe needs faster virus scanning so I give 'em 10%. They want 10x because they retry all N files of their batch of M every time. Losers.
how: []
why:
- scalability
- when: 2022
what: every aws migration solo or nearly
how: []
why:
- scalability
- when: 2022
what: ajw initial release from 25% e2e test to 75%
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2022
what: became team lead :sparkles: and promoted to l5
how: []
why:
- role-model-dad
- when: 2022
what: coda doc for planning splits owners from contributors w/ weights
how: []
why:
- scalability
- when: 2022
what: miss; davidc exported to orcs despite wishes to stay
how: []
why:
- pride-in-craft
- role-model-dad
- when: 2022
what: swimlanes of rems; byte write/read rate limits, terminator specific pool
how: []
why:
- scalability
- pride-in-craft
- when: 2022
what: |
tested REMS no-ops when carter ignored me asking him to
* "please write 1 test before i get back from vacation"
* 0 forever
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2022
what: generic nomad cost analysis grafana
how: []
why:
- scalability
- when: 2023
what: learning the performance feedback game; my perception is no one else's reality; make a rubric and define specific examples against it
how: []
why:
- pride-in-craft
- pride-for-others
- role-model-dad
- when: 2023
what: miss; horizons doc review wasnt generalized/brief enough
how: []
why:
- pride-in-craft
- pride-for-others
- customer-obsesssion
- when: 2023
what: 2nd highest contributor to runbook blitz
how: []
why:
- pride-in-craft
- pride-for-others
- when: 2023
what: when overloaded with ops, told team and offloaded + handed off threads
how: []
why:
- pride-in-craft
- when: 2023
what: fairness for rems; if attempt to use N threads per box, defer to low prio queue
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: |
interactive cicd tutorial with dpie so they could execute side-by-side
* not my fault they didnt
how: []
why:
- pride-for-others
- scalability
- when: 2023
what: chaos test gameday to train new teammate oncall
how: []
why:
- pride-in-craft
- when: 2023
what: |
Couchbase-aggedon
* i told 'em how to patch that shit motherfuckers are usual
* i go to office because that team insists
* i stop 'em from terminating early many times
* a hash means we dont need to check, right?
* ive got a script it's good enough i wrote it
* ive got v2 of my script it's good enough i wrote it
* this is a lotta pain, we should give up
* taught 8 teammates how to sed/grep/script/bash
* delegating threads; spiking accesslogs, spiking redis dumps, spiking couchbase backup/restore
* discovered bugs that meant some threads were not viable
* reduced problem to safest state for round 1, next safest for round 2, ...
how: []
why:
- pride-in-craft
- when: 2023
what: BoQ final
how: []
why:
- scalability
- when: 2023
what: generic datastore customers could opt into us doing stateramp for them in GENI if they set jwts
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: REMS /partitions, /entrypoints for TS to parallel data load via index scan+hash live vs. keithc INSISTED on not live :eye_roll:
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: proposed AtlasQMP as bugfixed singleton, parallelized nomad, or lambda cost and speed and devcost and deliverytime
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: response-files split from library-files so we can move to our own database without sideaffect
how: []
why:
- scalability
- pride-in-craft
- when: 2023
what: |
challenge; q2/q3 planning without knowing what medical leave teammate would do
* 1. offboard what mattered that he was doing
* 2. ask him repeatedly to offboard early and ask for updates how it's going
* 3. guess things he really wants and assume he won't be here for forseeable future even if he does return
* coordinate with mathis on expectations upon his return
how: []
why:
- pride-for-others
- when: 2023
what: |
REMS vs Translations
* Translatsions gets 500 rows from AE without translations and translates those
* prone to eventual consistency, blocks, brand deprioritizing, random bugs
* REMS got a backlog so we told them first
* and we bumped over and over for them to look
* and it escalated to a snafu
* root cause was squishing taking 90% of our cpu on this backlog of repeat work so sync squishing expedited to full release
* REMS emit a bug to TS that missed edits, so Translatsions kept re-translating what REMS perceived to be no-ops
how: []
why:
- pride-in-craft
- when: 2023
what: insist on oncall covers during stressful weeks, high effort windows, and okr release time
how: []
why:
- role-model-dad
- pride-in-craft
- when: 2023
what: still SME on mongo backups and use-case-specific performance optimization
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: more E2E tests on previously E2E test free repos because old mentee sahithig didn't feel comfortable joining the team fearing she's break stuff
how: []
why:
- pride-in-craft
- scalability
- pride-for-others
- when: 2023
what: navigated a teammate getting exported to a team he didnt want to join AND later getting exported from that team and almost someone else getting exported too
how: []
why:
- pride-in-craft
- role-model-dad
- when: 2023
what: |
CSchmalzle
* burnt out in q1 from too many projects in-flight
* bi-weekly "are you closing stuff?"
* daily "yaknow that 2 day thing? is it done? when will it be done? what do we need to do to ship it?" for 2 months
* insisted he pick things to handoff and we got 2 from him
* released a lotta stuff untested and broken and i doubled back to fix it
* entire team adds quality as key result
* terrible mr of copy-pasting + 2k lines of code
* "learn2git"
* multi-mr
* refactors separate
* wants to release his mass changes that include customer-facing system behavior changes because "we'll be more correct"
* and lots of support to remediate kanban
* and i say NO u fok
how: []
why:
- pride-for-others
- scalability
- when: 2023
what: i get team approval on a design to stop not-deleting customer data, they say we should fix at system level, so I spike and prove system level, just for other team to nope.avi out (REMS MoM delete)
how: []
why:
- pride-in-craft
- when: 2023
what: |
XMD Contact Consolidation Consumer
* "read our kafka topic like this and call your apis with it"
* ezpz BUT i dont wanna own your business logic by proxy
* "but our manager said you would, and something about throttling"
* handle our 429s and you'll be k
* "but our manager..."
* ...3 weeks later...
* listen here m8, u guys own your own 1 write per second shit, ya hear?
* "we didnt even want that, y'all just took 2 years to get back to us >:("
* o
how: []
why:
- pride-in-craft
- when: 2023
what: test everything; atlas qmp canary from ignored to release blocking via librdkafka configs, sleep deletions
how: []
why:
- pride-in-craft
- when: 2023
what: test everything; atlas data loader first e2e test
how: []
why:
- pride-in-craft
- when: 2023
what: test everything; block dev if merging release isn't noop
how: []
why:
- scalability
- when: 2023
what: test everything; legacy responses first e2e test
how: []
why:
- scalability
- when: 2023
what: test everything; except don't; response-files keepalives cross-dc would expire and break response-files allocs permanently, so tests couldn't pass to release fix
how: []
why:
- pride-in-craft
- when: 2023
what: test everything; our tests found FSCS outages and then FSCS team found they had no visibility
how: []
why:
- pride-in-craft
- when: 2023
what: test everything; janus cruddy e2e tests
how: []
why:
- pride-for-others
- when: 2023
what: high availability; 2 instances of singleton with distributed lock as cheap and good enough path forward
how: []
why:
- pride-in-craft
- scalability
- when: 2023
what: designed rems mom deleting parallel with atlas, proposed drs team fixes it and impacted team volume, got deferred indefinitely and solved the same problem yet again but for rems mom
how: []
why:
- pride-in-craft
- scalability
- when: 2022
what: feedback; told sean implying we should spend QED time on ops work is against the spirit of QED time but he is an authority figure and makes it uncomfortable not to
- when: 2022
what: feedback; when i needed to ask michaelp for a remote exception, i had to share i was hesistant because he made possibly leaving engineers sound ostracized and ejected immediately

View File

@ -1,87 +0,0 @@
- what: ''
priority: low
who: []
- what: 'why are you hiring?'
priority: high
who: ['recruiter', 'manager']
- what: 'why have you stayed?'
priority: high
who: ['recruiter', 'dev', 'manager']
- what: 'what type of people are successful here?'
priority: high
who: ['recruiter', 'dev', 'manager']
- what: 'what is 401k?'
priority: high
who: ['recruiter']
- what: 'how is on-call?'
priority: high
who: ['dev']
- what: 'tell me about incidents: remediation and reflection'
priority: high
who: ['dev', 'manager']
- what: 'what does feedback look like?'
priority: high
who: ['dev', 'manager']
- what: '6 month plan? 2 year plan?'
priority: high
who: ['dev', 'manager']
- what: 'how is tech debt handled?'
priority: high
who: ['dev', 'manager']
- what: 'how is a deadline failure handled?'
priority: high
who: ['dev', 'manager']
- what: 'open source stance'
priority: high
who: ['dev', 'manager']
- what: 'what has the team worked on recently?'
priority: med
who: ['dev']
- what: 'what is the decision making process, like for a project?'
priority: med
who: ['dev']
- what: 'what does testing look like'
priority: med
who: ['dev']
- what: 'what is the role of r&d?'
priority: med
who: ['recruiter', 'dev', 'manager']
- what: 'tell me the release process'
priority: med
who: ['dev']
- what: 'how is burnout handled?'
priority: med
who: ['dev', 'manager']
- what: 'what career paths are there? IC vs manager?'
priority: low
who: ['recruiter', 'manager']
- what: 'what does taking time off look like? what does taking sick days look like?'
priority: low
who: ['recruiter', 'dev', 'manager']
- what: 'opinion on employees learning?'
priority: low
who: ['recruiter', 'dev']
- what: 'you all ever do hackathons?'
priority: low
who: ['dev', 'manager']
- what: 'if there is a staging environment, then how does it differ from prod?'
priority: low
who: ['dev', 'manager']
- what: 'is the company profitable? projected to be?'
priority: low
who: ['manager']
- what: 'how will the company culture scale? what do you want to retain vs grow?'
priority: low
who: ['recruiter', 'manager']
- what: 'is there unpaid time off?'
priority: low
who: ['recruiter']
- what: 'what separates you from competitor?'
priority: low
who: ['recruiter', 'manager']
- what: 'when an employee suffers burn out, what do you want their experience to be?'
priority: low
who: ['manager']
- what: 'what is your WHY?'
priority: low
who: ['manager']

View File

@ -1,7 +0,0 @@
#! /bin/bash
cd "$(dirname "$(realpath "$BASH_SOURCE")")"
cat ./20* \
| gojq -c --yaml-input '.[] | [.grade, (.quantity | length), .]' \
| sort \
| head -n ${1:-${N:-15}} \
| $(which jq) -c

View File

@ -1,8 +0,0 @@
- topic: resume wording
src: https://www.linkedin.com/posts/thedanielbotero_use-these-chatgpt-prompts-if-you-want-to-activity-7119669945298284546-q1DA/?utm_source=share&utm_medium=member_desktop
prompt: |
Review my current resume and suggest improvements to ensure it is error-free, precise, and effectively communicates my skill, expertise, and experience. Provide feedback on the structure, including formatting and layout, and avoid any kind of personal opinions or preferences or biases.
- topic: LinkedIn profile headline
src: https://www.linkedin.com/posts/thedanielbotero_use-these-chatgpt-prompts-if-you-want-to-activity-7119669945298284546-q1DA/?utm_source=share&utm_medium=member_desktop
prompt: |
I work in Software Development as a Senior Software Engineer. Can you help me in creating a headline that will catch the interest of recruiters and possible employers?

View File

@ -1,10 +0,0 @@
#! /bin/bash
cd "$(dirname "$(realpath "$BASH_SOURCE")")"
cat 2* \
| gojq -c --yaml-input '.[] | {when: .when, s: .rendered}' \
| grep -v null \
| grep -v '""' \
| $(which jq) -r -c . \
| sort \
| $(which jq) -s 'group_by(.when) | map({key: (.[0].when | tostring), value: [.[] | .s]}) | from_entries' \
| gojq --yaml-output

View File

@ -8,11 +8,19 @@ cd src
if which vale; then
f=$(mktemp)
cp homebrew/homebrew.yaml $f
cat open-resume.com.d/local-storage-about-srcdoc-open-resume.json | sed 's/"[^"]*":/"."/g' > $f
vale sync
vale $f || true
fi
if tty && ! which firebase; then
f="$(mktemp)"
wget https://firebase.tools -O - > "$f"
export upgrade=true
sudo bash "$f"
fi
which firebase
outdir=$(mktemp -d)
cleanup() {
rm -rf "$outdir"
@ -21,10 +29,9 @@ trap cleanup EXIT
rm -rf $outdir
mkdir -p $outdir/public
cp homebrew/homebrew.html $outdir/public/index.html
cp -r ./homebrew/fonts $outdir/public/
cp homebrew/homebrew.pdf $outdir/public/BreeLaPointeResume.pdf
ls $outdir/public/BreeLaPointeResume.pdf
cp ./open-resume.com.d/resume.html.2 $outdir/public/index.html
cp ./open-resume.com.d/resume.pdf $outdir/public/BreeLaPointeResume.pdf
cp -r ./open-resume.com.d/fonts $outdir/public/
(
if ! which woff2_compress; then
@ -46,19 +53,9 @@ ls $outdir/public/BreeLaPointeResume.pdf
echo asserting ${basename_f%.ttf}.woff2
grep -R "${basename_f%.ttf}.woff2" "$outdir/public"
done
find "$outdir/public" -type f | grep -v public.fonts | while read -r f; do
sed -i 's#type="font/ttf"#type="font/woff2"#g' "$f"
done
du -sh "$outdir/public/fonts/"*
)
if tty && ! which firebase; then
f="$(mktemp)"
wget https://firebase.tools -O - > "$f"
export upgrade=true
sudo bash "$f"
fi
which firebase
cp -r ../firebase.json ../.firebaserc ../.firebase $outdir/
sed -i "s#deploy/public#public#" $outdir/firebase.json
cd $outdir
@ -77,7 +74,7 @@ cd $outdir
git commit -m "$(date -u +%Y-%m-%dT%H:%M:%S)"
git push origin main
fi
)
) || true
(
set -ueo pipefail
@ -93,4 +90,4 @@ cd $outdir
fi
echo firebase deploy "${log_args[@]}"
firebase deploy "${args[@]}"
) || true
)

View File

@ -1,43 +0,0 @@
#! /bin/sh
set -o pipefail
set -e
set -u
cd src
echo PRINTING PDF
echo ...which google
bin=google-chrome-stable
if ! which $bin; then
bin=chromium
fi
which $bin
if ! which miniserve; then
wget -O $GOPATH/bin/miniserve https://github.com/svenstaro/miniserve/releases/download/v0.24.0/miniserve-0.24.0-x86_64-unknown-linux-musl
chmod +x $GOPATH/bin/miniserve
fi
which miniserve
miniserve -p 58080 ./homebrew/ &
pid=${!}
until curl localhost:58080; do sleep 5; done
$bin \
--no-sandbox \
--headless \
--disable-gpu \
--print-to-pdf=./homebrew/homebrew.pdf \
--run-all-compositor-stages-before-draw \
--no-pdf-header-footer \
http://localhost:58080/homebrew.html
get_state() {
cksum ./homebrew/homebrew.pdf | awk '{print $1}'
}
state=$(get_state)
while true; do
sleep 5
if [ "$state" == "$(get_state)" ]; then
break
fi
done
kill $pid || true
echo

View File

@ -5,7 +5,6 @@
<link rel="preload" as="font" href="./fonts/Lato-Bold.ttf" type="font/ttf" crossorigin="anonymous">
</link>
<style>
@media print { .no-print, .no-print * { visibility: hidden !important; } }
@font-face {font-family: "Roboto"; src: url("./fonts/Roboto-Regular.ttf");}
@font-face {font-family: "Roboto"; src: url("./fonts/Roboto-Bold.ttf"); font-weight: bold;}@font-face {font-family: "Lato"; src: url("./fonts/Lato-Regular.ttf");}
@font-face {font-family: "Lato"; src: url("./fonts/Lato-Bold.ttf"); font-weight: bold;}@font-face {font-family: "Montserrat"; src: url("./fonts/Montserrat-Regular.ttf");}
@ -19,27 +18,17 @@
@font-face {font-family: "Merriweather"; src: url("./fonts/Merriweather-Bold.ttf"); font-weight: bold;}
</style>
</head>
<body style="margin: auto !important; padding-bottom: .0em !important; max-width: 512pt; margin: 0; padding: 0; -webkit-text-size-adjust:none;">
<body style="margin: auto !important; padding-bottom: .0em !important; width: 512pt; margin: 0; padding: 0; -webkit-text-size-adjust:none;">
<div>
<div class="frame-content">
<document title="Bree LaPointe Resume" author="Bree LaPointe " producer="OpenResume">
<page style="display: flex; flex-direction: column; color: rgb(23, 23, 23); font-family: Lato; font-size: 11.5pt;">
<page style="display: flex; flex-direction: column; color: rgb(23, 23, 23); font-family: Lato; font-size: 11pt;">
<view style="width: 100%; height: 10.5pt; background-color: rgb(129, 140, 248);">
</view>
<view style="display: flex; flex-direction: column; padding: 0px 18pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text>
<text style="color: rgb(129, 140, 248); font-weight: bold; font-size: 20pt;">Bree LaPointe
</text>
</text>
<a href="./BreeLaPointeResume.pdf" download class="no-print">
<text style="color: rgb(99, 99, 99); font-weight: normal; text-decoration: none;"><u>Download as PDF</u>
</text>
</a>
</view>
<text style="color: rgb(129, 140, 248); font-weight: bold; font-size: 20pt;">Bree LaPointe
</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Senior Software Engineer
</text>
<view style="display: flex; flex-flow: row wrap; justify-content: space-between; margin-top: 1.5pt;">
@ -47,27 +36,30 @@
<view style="display: flex; flex-direction: row; align-items: center; gap: 3pt;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"></path></svg>
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;hello&#64;breel.dev" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">hello&#64;breel.dev</text>
<a href="mailto:contact@blapointe.com" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">contact@blapointe.com</text>
</a>
</view>
<view style="display: flex; flex-direction: row; align-items: center; gap: 3pt;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"></path></svg>
<a href="tel:3367016159" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">(336) 701-6159</text>
</a>
</view>
<view style="display: flex; flex-direction: row; align-items: center; gap: 3pt;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"></path></svg>
<a href="<no value>" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Provo, UT</text>
</a>
</view>
<view style="display: flex; flex-direction: row; align-items: center; gap: 3pt;">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>
<a href="https://linkedin.com/in/breeldev" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">linkedin.com/in/breeldev</text>
<a href="https://linkedin.com/in/lapoba16" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">linkedin.com/in/lapoba16</text>
</a>
</view>
@ -75,11 +67,11 @@
</view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; align-items: center;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view>
<text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Work Experience</text>
<text style="font-weight: bold; letter-spacing: 0.3pt;">WORK EXPERIENCE</text>
</view>
@ -87,17 +79,15 @@
<view>
<span style="font-size: 14pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;" class="resume-headings-i-headings-i-title-w-headings">Render</text>
</span>
<text style="color: rgb(23, 23, 23); font-weight: bold;">Qualtrics</text>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">Senior Software Engineer</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">May 2025 - Present
<text style="color: rgb(23, 23, 23); font-weight: normal;">Senior Software Engineer, Team Lead</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">May 2022 - Present
</text>
</view>
@ -105,16 +95,26 @@
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Stabilized automated management, performance tuning, and point-in-time-recovery infrastructure of tens of thousands of PostgreSQL databases.</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Mentored entry and mid-level engineers on stability, clean code, and distributed systems.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Hosted engineering book and white paper clubs for continuous improvement and cross-team experience sharing for 2 years.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Recovered 98% of data lost in critical incident via coordinating cross team efforts and dissecting native database operation logs.</text>
</view>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">Software Engineer</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">Dec 2023 - May 2025
<text style="color: rgb(23, 23, 23); font-weight: normal;">Software Engineer II</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Oct 2019 - May 2022
</text>
</view>
@ -122,29 +122,36 @@
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Crafted PostgreSQL low-downtime migrations and in-place major version upgrades.</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Developed and owned highly available and reliable data storage and operational tooling.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Mentored 2 interns, 2 new hires, and 3 mid-level cross team engineers on operational tools, maintainable software, and career development.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Genericized AWS asset management tooling ahead of company-wide mass migration initiative.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Championed disaster recovery by supporting training runs with documentation, tools, and live support across teams and enforced continuous compliance for 17 database clusters with monitoring and alerting.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Lent expertise owning MongoDB across teams by advising on configuration and data models and genericizing disaster recovery tooling for 21 teams.</text>
</view>
</view>
</view>
<view>
<span style="font-size: 14pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;" class="resume-headings-i-headings-i-title-w-headings">Qualtrics</text>
</span>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">Senior Software Engineer, Team Lead</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">May 2022 - Dec 2023
<text style="color: rgb(23, 23, 23); font-weight: normal;">Software Engineer I</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Feb 2018 - Oct 2019
</text>
</view>
@ -152,67 +159,13 @@
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Optimized a Go application to increase consumption rate from Kafka by 340%, costing half the engineering effort of the proposed rewrite.</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Automated no-downtime system patching for 30 services and 25 database clusters by creating a modular and testable scripting framework.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Spearheaded AWS asset replication tooling, sparing 9 teams from duplicating work relocating up to 7 AWS technologies each.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Mentored 2 intern, 2 new grad, and 4 mid-level engineers on operational tools, best practices for maintainable software, and career development.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Founded the in-house standard system to continuously verify 16 teams' compliance with disaster recovery requirements.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Created automated release test suites for 11 services, which catches 10 would-be customer facing bugs per month on average.</text>
</view>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">Software Engineer II</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">Oct 2019 - May 2022
</text>
</view>
<view style="display: flex; flex-direction: column; margin-top: 4.5pt;">
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Automated infrastructure patching for 30 microservices and 25 database clusters by creating a modular and testable Bash script framework.</text>
</view>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">Software Engineer I</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">Feb 2018 - Oct 2019
</text>
</view>
<view style="display: flex; flex-direction: column; margin-top: 4.5pt;">
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Founded Python tookit for full and incremental MongoDB backups, supporting partitioned deployments. The in-house standard for 21 teams.</text>
</view>
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Decreased internal service's annual outages by 91% and hardware costs by 40% via database migration. Scoped alternatives, projected costs, and designed cutover.</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">Raised backend service's availability to 99.99% and reduced hardware costs by 40% by selecting, training team on, and live migrating to a different datastore.</text>
</view>
@ -224,11 +177,11 @@
</view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; align-items: center;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view>
<text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Education</text>
<text style="font-weight: bold; letter-spacing: 0.3pt;">EDUCATION</text>
</view>
@ -237,8 +190,8 @@
<view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;" class="resume-headings-i-headings-i-title-wo-headings">Wake Forest University</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;"><no value>
<text style="color: rgb(23, 23, 23); font-weight: bold;">Wake Forest University</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Dec 2017
</text>
</view>
@ -252,34 +205,90 @@
</view>
<view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;">High Point University</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Dec 2015
</text>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Bachelor of Arts in Computer Science - 3.91/4.00 GPA
</text>
</view>
</view>
</view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; align-items: center;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view>
<text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Skills</text>
<text style="font-weight: bold; letter-spacing: 0.3pt;">PUBLICATIONS</text>
</view>
<view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;">Arabidopsis thaliana computationally-generated next-state gene interaction models</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">Jun 2018
</text>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Refactored to correct bugs and improve efficiency by orders of magnitude
</text>
</view>
</view>
</view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; align-items: center;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view>
<text style="font-weight: bold; letter-spacing: 0.3pt;">SKILLS</text>
</view>
<view>
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226
<text style="color: rgb(23, 23, 23); font-weight: normal;">Languages: Go (Golang), Bash, Python3</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Languages: Golang, Bash, Python3
</text>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226
<text style="color: rgb(23, 23, 23); font-weight: normal;">Platforms: Kubernetes, Temporal, Hashicorp, Linux/Unix, AWS, REST, Microservices</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git
</text>
</view>
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226
<text style="color: rgb(23, 23, 23); font-weight: normal;">Datastores: PostgreSQL, MongoDB, Redis, S3, Couchbase, DynamoDB</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;">
<text style="color: rgb(23, 23, 23); font-weight: normal;">Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB
</text>
</view>
</view>

Binary file not shown.

View File

@ -7,23 +7,10 @@ if ! which gojq; then
go install github.com/itchyny/gojq@latest
fi &> /dev/null
html_escape_str() {
local str="$1"
for i in $(seq 0 $(("${#str}"-1))); do
LC_CTYPE=C printf '&#%d;' "'"${1:i:1}
done
}
html_escape_str contact@blapointe.com
while sleep 1; do
date
cat ./homebrew.yaml \
| sed "s/@/$(html_escape_str @ | sed 's/\&/\\\&/g')/g" \
| sed "s/mailto:/$(html_escape_str mailto: | sed 's/\&/\\\&/g')/g" \
| sed "s/tel:/$(html_escape_str tel: | sed 's/\&/\\\&/g')/g" \
| gojq --yaml-input . \
| tpl --file homebrew.tmpl \
> ./homebrew.html.2
mv ./homebrew.html.2 ./homebrew.html
date
> ./homebrew.html
done

View File

@ -5,7 +5,6 @@
<link rel="preload" as="font" href="./fonts/Lato-Bold.ttf" type="font/ttf" crossorigin="anonymous">
</link>
<style>
@media print { .no-print, .no-print * { visibility: hidden !important; } }
@font-face {font-family: "Roboto"; src: url("./fonts/Roboto-Regular.ttf");}
@font-face {font-family: "Roboto"; src: url("./fonts/Roboto-Bold.ttf"); font-weight: bold;}@font-face {font-family: "Lato"; src: url("./fonts/Lato-Regular.ttf");}
@font-face {font-family: "Lato"; src: url("./fonts/Lato-Bold.ttf"); font-weight: bold;}@font-face {font-family: "Montserrat"; src: url("./fonts/Montserrat-Regular.ttf");}
@ -19,27 +18,17 @@
@font-face {font-family: "Merriweather"; src: url("./fonts/Merriweather-Bold.ttf"); font-weight: bold;}
</style>
</head>
<body style="margin: auto !important; padding-bottom: .0em !important; max-width: 512pt; margin: 0; padding: 0; -webkit-text-size-adjust:none;">
<body style="margin: auto !important; padding-bottom: .0em !important; width: 512pt; margin: 0; padding: 0; -webkit-text-size-adjust:none;">
<div>
<div class="frame-content">
<document title="{{ range .resume.name }}{{ . }} {{ end }}Resume" author="{{ range .resume.name }}{{ . }} {{ end }}" producer="OpenResume">
<page style="display: flex; flex-direction: column; color: rgb(23, 23, 23); font-family: Lato; font-size: 11.5pt;">
<page style="display: flex; flex-direction: column; color: rgb(23, 23, 23); font-family: Lato; font-size: 11pt;">
<view style="width: 100%; height: 10.5pt; background-color: rgb(129, 140, 248);">
</view>
<view style="display: flex; flex-direction: column; padding: 0px 18pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text>
<text style="color: rgb(129, 140, 248); font-weight: bold; font-size: 20pt;">{{ range .resume.name }}{{ . }} {{ end }}
</text>
</text>
{{ if .resume.pdf_file_name }}
<a href="./{{ .resume.pdf_file_name }}" download class="no-print">
<text style="color: rgb(99, 99, 99); font-weight: normal; text-decoration: none;"><u>Download as PDF</u>
</text>
</a>
{{ end }}
</view>
<text style="color: rgb(129, 140, 248); font-weight: bold; font-size: 20pt;">{{ range .resume.name }}{{ . }} {{ end }}
</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .resume.title }}
</text>
<view style="display: flex; flex-flow: row wrap; justify-content: space-between; margin-top: 1.5pt;">
@ -47,13 +36,9 @@
{{ range .resume.contact.links }}
<view style="display: flex; flex-direction: row; align-items: center; gap: 3pt;">
{{ .svg }}
{{ if .link }}
<a href="{{ .link }}" style="text-decoration: none;" target="_blank" rel="noreferrer">
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .text }}</text>
</a>
{{ else }}
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .text }}</text>
{{ end }}
</view>
{{ end }}
@ -61,19 +46,20 @@
</view>
{{ range .resume.headings }}
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;">
<view style="display: flex; flex-direction: row; align-items: center;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view>
<text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">{{ .title }}</text>
<text style="font-weight: bold; letter-spacing: 0.3pt;">{{ .title }}</text>
</view>
{{ if .what }}
<view>
{{ range .what }}
<view style="display: flex; flex-direction: row; justify-content: space-between;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ . }}</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;">•
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ . }}
</text>
</view>
{{ end }}
</view>
@ -82,12 +68,10 @@
{{ range .headings }}
<view>
{{ if .headings }}
<span style="font-size: 14pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;" class="resume-headings-i-headings-i-title-w-headings">{{ .title }}</text>
</span>
<text style="color: rgb(23, 23, 23); font-weight: bold;">{{ .title }}</text>
{{ else }}
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: bold;" class="resume-headings-i-headings-i-title-wo-headings">{{ .title }}</text>
<text style="color: rgb(23, 23, 23); font-weight: bold;">{{ .title }}</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .when }}
</text>
</view>
@ -102,8 +86,8 @@
{{ range .headings }}
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;">
<text style="color: rgb(23, 23, 23); font-weight: normal; font-style: italic;" class="resume-headings-i-headings-i-headings-i-title">{{ .title }}</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">{{ .when }}
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .title }}</text>
<text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .when }}
</text>
</view>
@ -111,8 +95,8 @@
{{ range .what }}
<view style="display: flex; flex-direction: row;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;">&#8226</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">{{ . }}</text>
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.3;">•</text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.3; flex-grow: 1; flex-basis: 0px;">{{ . }}</text>
</view>
{{ end }}

View File

@ -1,110 +1,63 @@
resume:
pdf_file_name: BreeLaPointeResume.pdf
name:
- Bree
- LaPointe
title: 'Senior Software Engineer'
contact:
links:
- text: 'hello@breel.dev'
link: 'mailto:hello@breel.dev'
- text: contact@blapointe.com
link: mailto:contact@blapointe.com
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M64 112c-8.8 0-16 7.2-16 16v22.1L220.5 291.7c20.7 17 50.4 17 71.1 0L464 150.1V128c0-8.8-7.2-16-16-16H64zM48 212.2V384c0 8.8 7.2 16 16 16H448c8.8 0 16-7.2 16-16V212.2L322 328.8c-38.4 31.5-93.7 31.5-132 0L48 212.2zM0 128C0 92.7 28.7 64 64 64H448c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128z"></path></svg>'
#- text: (336) 701-6159
# link: 'tel:3367016159'
# svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"></path></svg>'
- text: (336) 701-6159
link: tel:3367016159
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z"></path></svg>'
- text: Provo, UT
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0zM192 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"></path></svg>'
- text: linkedin.com/in/breeldev
link: https://linkedin.com/in/breeldev
- text: linkedin.com/in/lapoba16
link: https://linkedin.com/in/lapoba16
svg: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" style="width: 13pt; height: 13pt; fill: rgb(82, 82, 82);"><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"></path></svg>'
headings:
- title: Work Experience
- title: WORK EXPERIENCE
headings:
- title: Render
headings:
- title: Senior Software Engineer
when: May 2025 - Present
what:
- Stabilized automated management, performance tuning, and point-in-time-recovery infrastructure of tens of thousands of PostgreSQL databases.
# 40k paid, 30k free in 2025-12
# performance tuning -> PGExport queries
# pitr -> pitr holes, synchronous success tracking
- title: Software Engineer
when: Dec 2023 - May 2025
what:
- Crafted PostgreSQL low-downtime migrations and in-place major version upgrades.
# PGUpgrades
# continuous canary testing matrix
# 3 major version targets
# FCR
# all-in-one solution for cross-region, cross-account, cross-provider migrations
# via physical replication
# customer-triggered promotion
# coupled to power HIPAA migration
- title: Qualtrics
headings:
- title: Senior Software Engineer, Team Lead
when: May 2022 - Dec 2023
when: May 2022 - Present
what:
- Optimized a Go application to increase consumption rate from Kafka by 340%, costing half the engineering effort of the proposed rewrite.
# Atlas QMP Consumer
# optimized garbage collection of many small objects
# from maps and allocs to pointers and slices
#- Devised a MongoDB live indexing strategy, which supported both current and future use cases, and saved the computing and filling of a new 99% unused native database index.
- Spearheaded AWS asset replication tooling, sparing 9 teams from duplicating work relocating up to 7 AWS technologies each.
# Scanned AWS assets -> interactive script replicated configs to new AWS region
# cloned S3, SQS, SNS, DynamoDB assets
- Mentored 2 intern, 2 new grad, and 4 mid-level engineers on operational tools, best practices for maintainable software, and career development.
- Founded the in-house standard system to continuously verify 16 teams' compliance with disaster recovery requirements.
# Mongosback backup-check lists S3 for last backup timestamp
- Created automated release test suites for 11 services, which catches 10 would-be customer facing bugs per month on average.
# CRUDdy
# tied to Nomad spec
# on boot, healthchecks fail for new instance until e2e tests pass per-instance
# blocked releases to staging
- Mentored entry and mid-level engineers on stability, clean code, and distributed systems.
- Hosted engineering book and white paper clubs for continuous improvement and cross-team experience sharing for 2 years.
- Recovered 98% of data lost in critical incident via coordinating cross team efforts and dissecting native database operation logs.
- title: Software Engineer II
when: Oct 2019 - May 2022
what:
#- "Scripted no-downtime database reconfiguration, which was leveraged by 3 teams to update 168 instances."
- Automated infrastructure patching for 30 microservices and 25 database clusters by creating a modular and testable Bash script framework.
# Nexpose-Remediations
# Couchbase, Mongo, GaleraDB covered
# spindown, isSpindownComplete, patch, reboot, pollRebooted, spinup, isSpinupComplete
# used cross-team for all Mongo instances
# bash tested via `source unit_test_setup.sh; test my_method`
#- Administered on-call training, including 6 chaos tests gamedays across 5 systems.
- Developed and owned highly available and reliable data storage and operational tooling.
- Mentored 2 interns, 2 new hires, and 3 mid-level cross team engineers on operational tools, maintainable software, and career development.
- Genericized AWS asset management tooling ahead of company-wide mass migration initiative.
- Championed disaster recovery by supporting training runs with documentation, tools, and live support across teams and enforced continuous compliance for 17 database clusters with monitoring and alerting.
- Lent expertise owning MongoDB across teams by advising on configuration and data models and genericizing disaster recovery tooling for 21 teams.
- title: Software Engineer I
when: Feb 2018 - Oct 2019
what:
- Founded Python tookit for full and incremental MongoDB backups, supporting partitioned deployments. The in-house standard for 21 teams.
# Mongosback
# Python3 script
# Handles sharded AND replica sets
# watches for any shard in progress AND replica set healthy enough to continue
- Decreased internal service's annual outages by 91% and hardware costs by 40% via database migration. Scoped alternatives, projected costs, and designed cutover.
# Couchbase for GENI (MaraudersMap) was a mess
# indexes just kinda disappeared, meaning table scans often
# evaluated Mongo, Galera, CockroachDB
# Mongo ran with little RAM on laptop + fast startup + lowest latency
- title: Education
- Automated no-downtime system patching for 30 services and 25 database clusters by creating a modular and testable scripting framework.
- Raised backend service's availability to 99.99% and reduced hardware costs by 40% by selecting, training team on, and live migrating to a different datastore.
- title: EDUCATION
headings:
- title: Wake Forest University
not-when: Dec 2017
when: Dec 2017
what:
- Master of Science in Computer Science - 3.88/4.00 GPA
#- title: High Point University
# not-when: Dec 2015
# what:
# - Bachelor of Arts in Computer Science - 3.91/4.00 GPA
#- title: PUBLICATIONS
# headings:
# - title: Arabidopsis thaliana computationally-generated next-state gene interaction models
# when: Jun 2018
# what:
# - Refactored to correct bugs and improve efficiency by orders of magnitude
- title: Skills
- title: High Point University
when: Dec 2015
what:
- Bachelor of Arts in Computer Science - 3.91/4.00 GPA
- title: PUBLICATIONS
headings:
- title: Arabidopsis thaliana computationally-generated next-state gene interaction models
when: Jun 2018
what:
- Refactored to correct bugs and improve efficiency by orders of magnitude
- title: SKILLS
what:
- 'Languages: Go (Golang), Bash, Python3'
- 'Platforms: Kubernetes, Temporal, Hashicorp, Linux/Unix, AWS, REST, Microservices'
- 'Datastores: PostgreSQL, MongoDB, Redis, S3, Couchbase, DynamoDB'
- 'Languages: Golang, Bash, Python3'
- 'Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git'
- 'Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB'

View File

@ -0,0 +1,37 @@
#! /bin/bash
set -o pipefail
echo '> copy outer HTML of html just inside iframe' >&2
font_family="$(cat resume.html | grep -o 'font-family[^;]*' | tail -n 1 | awk '{print $NF}')"
cat resume.html \
| sed 's/>...<\/text/> - <\/text/g' \
| sed 's/overflow: hidden;/margin: auto !important; padding-bottom: .0em !important;/g' \
| sed 's/padding: 0px 60pt;/padding: 0px 18pt;/' \
| sed 's/width: 612pt;/width: 512pt;/' \
| sed "s#<link [^>]*as=\"font\"[^>]*/fonts/[^${font_family:0:1}][^>]*>##g" \
| sed "s#<link [^>]*as=\"font\"[^>]*/fonts/${font_family:0:1}[^${font_family:1:1}][^>]*>##g" \
| sed "s#/fonts/#./fonts/#g" \
> resume.html.2 \
|| rm resume.html.2
for font_file in $(
cat resume.html.2 \
| grep -o 'href="./fonts/[^"]*' \
| sed 's#.*"./##'
); do
if [ ! -f "$font_file" ]; then
mkdir -p ./${font_file%/*}/
curl -sS -L https://www.open-resume.com/$font_file > $font_file
fi
done
# | sed 's#"/fonts/#"https://www.open-resume.com/fonts/#g' \
#| sed 's/margin-top: 15pt;/margin-top: 20pt;/g' \
#| sed 's/margin-top: 12pt;/margin-top: 17pt;/g' \
#| sed 's/margin-top: 8pt;/margin-top: 12pt;/g' \
#| sed 's/margin-top: 6pt;/margin-top: 10pt;/g' \

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,153 @@
{
"resume": {
"profile": {
"name": "Bree LaPointe",
"summary": "Senior Software Engineer",
"email": "contact@blapointe.com",
"phone": "(336) 701-6159",
"location": "Provo, UT",
"url": "linkedin.com/in/lapoba16"
},
"workExperiences": [
{
"company": "Qualtrics",
"jobTitle": "Senior Software Engineer, Team Lead",
"date": "May 2022 - Present",
"descriptions": [
"Mentored entry and mid-level engineers on stability, clean code, and distributed systems.",
"Hosted engineering book and white paper clubs for continuous improvement and cross-team experience sharing for 2 years.",
"Recovered 98% of data lost in critical incident via coordinating cross team efforts and dissecting native database operation logs."
]
},
{
"company": "Qualtrics",
"jobTitle": "Software Engineer II",
"date": "Oct 2019 - May 2022",
"descriptions": [
"Developed and owned highly available and reliable data storage and operational tooling.",
"Mentored 2 interns, 2 new hires, and 3 mid-level cross team engineers on operational tools, maintainable software, and career development.",
"Genericized AWS asset management tooling ahead of company-wide mass migration initiative.",
"Championed disaster recovery by supporting training runs with documentation, tools, and live support across teams and enforced continuous compliance for 17 database clusters with monitoring and alerting.",
"Lent expertise owning MongoDB across teams by advising on configuration and data models and genericizing disaster recovery tooling for 21 teams."
]
},
{
"company": "Qualtrics",
"jobTitle": "Software Engineer I",
"date": "Feb 2018 - Oct 2019",
"descriptions": [
"Automated no-downtime system patching for 30 services and 25 database clusters by creating a modular and testable scripting framework.",
"Raised backend service's availability to 99.99% and reduced hardware costs by 40% by selecting, training team on, and live migrating to a different datastore."
]
}
],
"educations": [
{
"school": "Wake Forest University",
"degree": "Master of Science in Computer Science",
"gpa": "3.88/4.00",
"date": "Dec 2017",
"descriptions": []
},
{
"school": "High Point University",
"degree": "Bachelor of Arts in Computer Science",
"gpa": "3.91/4.00",
"date": "Dec 2015",
"descriptions": []
}
],
"projects": [
{
"project": "Arabidopsis thaliana computationally-generated next-state gene interaction models",
"date": "June 2018",
"descriptions": [
"Refactored to correct bugs and improve efficiency by orders of magnitude"
]
}
],
"skills": {
"featuredSkills": [
{
"skill": "",
"rating": 4
},
{
"skill": "",
"rating": 4
},
{
"skill": "",
"rating": 4
},
{
"skill": "",
"rating": 4
},
{
"skill": "",
"rating": 4
},
{
"skill": "",
"rating": 4
}
],
"descriptions": [
"Languages: Golang, Bash, Python3",
"Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git",
"Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB"
],
"notfeaturedSkills": [
{
"skill": "Golang",
"rating": 4
},
{
"skill": "Bash",
"rating": 4
},
{
"skill": "Python3",
"rating": 3
}
]
},
"custom": {
"descriptions": []
}
},
"settings": {
"themeColor": "#818cf8",
"fontFamily": "Lato",
"fontSize": "11",
"documentSize": "Letter",
"formToShow": {
"workExperiences": true,
"educations": true,
"projects": true,
"skills": true,
"custom": false
},
"formToHeading": {
"workExperiences": "WORK EXPERIENCE",
"educations": "EDUCATION",
"projects": "PUBLICATIONS",
"skills": "SKILLS",
"custom": "PUBLICATIONS"
},
"formsOrder": [
"workExperiences",
"educations",
"projects",
"skills",
"custom"
],
"showBulletPoints": {
"educations": false,
"projects": true,
"skills": true,
"custom": false
}
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.