16 Commits

Author SHA1 Message Date
Bel LaPointe
6ed9ff1071 updated for 2025
All checks were successful
cicd / cicd (push) Successful in 2m4s
2026-01-08 08:25:36 -07:00
Bel LaPointe
a0b60021cf resolve todo 2025-12-18 13:34:51 -07:00
Bel LaPointe
8487f1577e notes to explain resume bullets
Some checks failed
cicd / cicd (push) Failing after 1m26s
2025-12-18 13:33:32 -07:00
Bel LaPointe
da21248adb TODOs in readme 2025-12-18 13:16:12 -07:00
bel
28dd611b7b pdf
All checks were successful
cicd / cicd (push) Successful in 1m51s
2025-09-15 22:22:15 -06:00
bel
7f7256fe07 prettier uwu 2025-09-15 22:21:50 -06:00
bel
a79740c871 pdf
All checks were successful
cicd / cicd (push) Successful in 2m29s
2025-09-15 22:01:51 -06:00
bel
d644cf7be1 i know psql 2025-09-15 21:58:07 -06:00
bel
0bb733ac90 bigger bolder fonter 2025-09-15 21:53:55 -06:00
bel
53ac3de436 shorten first job descriptions 2025-09-15 21:53:25 -06:00
Bel LaPointe
e11eeddb6a only gitea important 2025-09-11 17:21:33 -06:00
Bel LaPointe
c5e75cb2fb +render, +render as sr
Some checks failed
cicd / cicd (push) Failing after 2m8s
2025-09-11 17:14:51 -06:00
Bel LaPointe
b00b568fa0 empty 2025-09-11 16:58:28 -06:00
bel
ec063d080c Add Render stub
All checks were successful
cicd / cicd (push) Successful in 1m57s
2024-02-10 16:44:20 -07:00
Bel LaPointe
c19a6741c1 shuffle
All checks were successful
cicd / cicd (push) Successful in 1m4s
2023-10-29 16:53:20 -06:00
Bel LaPointe
8afa0a8be4 needed export 2023-10-29 16:52:58 -06:00
7 changed files with 176 additions and 92 deletions

View File

@@ -15,10 +15,9 @@ jobs:
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: cicd - name: cicd
run: | run: |
echo "export FIREBASE_CI_TOKEN='${{ secrets.FIREBASE_CI_TOKEN }}'" >> ./.env
echo "export GITLAB_PAT='${{ secrets.GITLAB_PAT }}'" >> ./.env
f=$(mktemp) f=$(mktemp)
echo "FIREBASE_CI_TOKEN='${{ secrets.FIREBASE_CI_TOKEN }}'" >> ./.env
echo "GITLAB_PAT='${{ secrets.GITLAB_PAT }}'" >> ./.env
cat ./.env
echo ' echo '
FROM registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest FROM registry-app.inhome.blapointe.com:5001/portfolio/resume/builder:latest
WORKDIR /mnt WORKDIR /mnt

View File

@@ -1,18 +1,16 @@
# Resume # Resume
* todo
* prepare stories
* cross-team project with a hitch and deadline pressure
* an urgent incident
* in interviews, do the dumb version first
## Usage
1. modify [homebrew.yaml](./src/homebrew/homebrew.yaml) 1. modify [homebrew.yaml](./src/homebrew/homebrew.yaml)
1. generate `cd ./src/homebrew; bash ./homebrew.sh` 1. generate `cd ./src/homebrew; bash ./homebrew.sh` (interrupt when it starts timestamping)
1. `open ./src/homebrew/homebrew.html` 1. `open ./src/homebrew/homebrew.html`
1. `ctrl + p` and save as pdf 1. `ctrl + p` and save as `./src/homebrew/homebrew.pdf`
1. commit + push 1. commit + push
1. `.gitea/...` CICD pushes to firebase + gitlab
## CICD
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

@@ -77,7 +77,7 @@ cd $outdir
git commit -m "$(date -u +%Y-%m-%dT%H:%M:%S)" git commit -m "$(date -u +%Y-%m-%dT%H:%M:%S)"
git push origin main git push origin main
fi fi
) || true )
( (
set -ueo pipefail set -ueo pipefail
@@ -93,4 +93,4 @@ cd $outdir
fi fi
echo firebase deploy "${log_args[@]}" echo firebase deploy "${log_args[@]}"
firebase deploy "${args[@]}" firebase deploy "${args[@]}"
) ) || true

View File

@@ -75,11 +75,11 @@
</view> </view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;"> <view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center;"> <view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;"> <view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view> </view>
<text style="font-weight: bold; letter-spacing: 0.3pt;">WORK EXPERIENCE</text> <text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Work Experience</text>
</view> </view>
@@ -87,15 +87,17 @@
<view> <view>
<text style="color: rgb(23, 23, 23); font-weight: bold;">Qualtrics</text> <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>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">Senior Software Engineer, Team Lead</text> <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;">May 2022 - Present <text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">May 2025 - Present
</text> </text>
</view> </view>
@@ -103,32 +105,79 @@
<view style="display: flex; flex-direction: row;"> <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;"></text> <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;">Cut new PostgreSQL major version support development cost from 8 weeks to 1 week.</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;">Reduced point-in-time-recovery restore failure volume 60% and restore runtime up to 80% with dynamic tuning.</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>
</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;">Crafted PostgreSQL low-downtime migrations and in-place major version upgrades.</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>
</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;">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: 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>
</view> </view>
<view style="display: flex; flex-direction: row;"> <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;"></text> <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;">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.</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;"></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> <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>
<view style="display: flex; flex-direction: row;"> <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;"></text> <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> <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>
<view style="display: flex; flex-direction: row;"> <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;"></text> <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> <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>
<view style="display: flex; flex-direction: row;"> <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;"></text> <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> <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>
@@ -136,8 +185,8 @@
</view> </view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">Software Engineer II</text> <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;">Oct 2019 - May 2022 <text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">Oct 2019 - May 2022
</text> </text>
</view> </view>
@@ -145,26 +194,16 @@
<view style="display: flex; flex-direction: row;"> <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;"></text> <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;">Scripted no-downtime database reconfiguration, which was leveraged by 3 teams to update 168 instances.</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;"></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> <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;">
<text style="color: rgb(23, 23, 23); font-weight: bold; padding-left: 6pt; padding-right: 6pt; line-height: 1.35; margin-top: 0pt;"></text>
<text style="color: rgb(23, 23, 23); font-weight: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">Administered on-call training, including 6 chaos tests gamedays across 5 systems.</text>
</view>
</view> </view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">Software Engineer I</text> <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;">Feb 2018 - Oct 2019 <text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">Feb 2018 - Oct 2019
</text> </text>
</view> </view>
@@ -172,13 +211,13 @@
<view style="display: flex; flex-direction: row;"> <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;"></text> <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 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.</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>
<view style="display: flex; flex-direction: row;"> <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;"></text> <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 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 datastore.</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>
</view> </view>
@@ -190,11 +229,11 @@
</view> </view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;"> <view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center;"> <view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;"> <view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view> </view>
<text style="font-weight: bold; letter-spacing: 0.3pt;">EDUCATION</text> <text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Education</text>
</view> </view>
@@ -203,7 +242,7 @@
<view> <view>
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">Wake Forest University</text> <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: normal;"><no value>
</text> </text>
</view> </view>
@@ -223,32 +262,29 @@
</view> </view>
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;"> <view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center;"> <view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;"> <view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view> </view>
<text style="font-weight: bold; letter-spacing: 0.3pt;">SKILLS</text> <text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">Skills</text>
</view> </view>
<view> <view>
<view style="display: flex; flex-direction: row; justify-content: space-between;"> <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;"> <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 style="color: rgb(23, 23, 23); font-weight: normal;">Languages: Go (Golang), Bash, Python3</text>
</text>
</view> </view>
<view style="display: flex; flex-direction: row; justify-content: space-between;"> <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;"> <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: Docker, Hashicorp, Linux/Unix, AWS, REST, Microservices, Git <text style="color: rgb(23, 23, 23); font-weight: normal;">Platforms: Kubernetes, Temporal, Hashicorp, Linux/Unix, AWS, REST, Microservices</text>
</text>
</view> </view>
<view style="display: flex; flex-direction: row; justify-content: space-between;"> <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;"> <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: MongoDB, Redis, S3, Couchbase, DynamoDB <text style="color: rgb(23, 23, 23); font-weight: normal;">Datastores: PostgreSQL, MongoDB, Redis, S3, Couchbase, DynamoDB</text>
</text>
</view> </view>
</view> </view>

Binary file not shown.

View File

@@ -61,20 +61,19 @@
</view> </view>
{{ range .resume.headings }} {{ range .resume.headings }}
<view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 12pt;"> <view style="display: flex; flex-direction: column; gap: 6pt; margin-top: 9pt;">
<view style="display: flex; flex-direction: row; align-items: center;"> <view style="display: flex; flex-direction: row; align-items: center; font-size: 14pt;">
<view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;"> <view style="height: 3.75pt; width: 30pt; background-color: rgb(129, 140, 248); margin-right: 10.5pt;">
</view> </view>
<text style="font-weight: bold; letter-spacing: 0.3pt;">{{ .title }}</text> <text style="font-weight: bold; letter-spacing: 0.3pt;" class="resume-headings-i-title">{{ .title }}</text>
</view> </view>
{{ if .what }} {{ if .what }}
<view> <view>
{{ range .what }} {{ range .what }}
<view style="display: flex; flex-direction: row; justify-content: space-between;"> <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;"> <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 style="color: rgb(23, 23, 23); font-weight: normal;">{{ . }}</text>
</text>
</view> </view>
{{ end }} {{ end }}
</view> </view>
@@ -83,10 +82,12 @@
{{ range .headings }} {{ range .headings }}
<view> <view>
{{ if .headings }} {{ if .headings }}
<text style="color: rgb(23, 23, 23); font-weight: bold;">{{ .title }}</text> <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>
{{ else }} {{ else }}
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">{{ .title }}</text> <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: normal;">{{ .when }} <text style="color: rgb(23, 23, 23); font-weight: normal;">{{ .when }}
</text> </text>
</view> </view>
@@ -101,8 +102,8 @@
{{ range .headings }} {{ range .headings }}
<view style="display: flex; flex-direction: row; justify-content: space-between; margin-top: 4.5pt;"> <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;">{{ .title }}</text> <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;">{{ .when }} <text style="color: rgb(23, 23, 23); font-weight: normal; font-size: 9.5pt;">{{ .when }}
</text> </text>
</view> </view>
@@ -110,7 +111,7 @@
{{ range .what }} {{ range .what }}
<view style="display: flex; flex-direction: row;"> <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;"></text> <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: normal; line-height: 1.35; flex-grow: 1; flex-basis: 0px;">{{ . }}</text>
</view> </view>
{{ end }} {{ end }}

View File

@@ -18,31 +18,82 @@ resume:
link: https://linkedin.com/in/breeldev link: https://linkedin.com/in/breeldev
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>' 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: headings:
- title: WORK EXPERIENCE - title: Work Experience
headings: headings:
- title: Render
headings:
- title: Senior Software Engineer
when: May 2025 - Present
what:
- Cut new PostgreSQL major version support development cost from 8 weeks to 1 week.
# refactored + go generated + templated CI from PG17 to PG18
# had to wait 4w for TimescaleDB to ship, but no active time for us
- Reduced point-in-time-recovery restore failure volume 60% and restore runtime up to 80% with dynamic tuning.
# 40k paid, 30k free in 2025-12
# performance tuning -> PGExport queries
# pitr -> pitr holes, synchronous success tracking
# -50% restore failure rate by limiting postgresql.conf memory
# increment backups after 10k WAL files (1h of replay)
# render_pg_archive.sh synchronously tracks PITR health
#- Shipped autoscaling storage, in-place managed credential rotation
- 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 - title: Qualtrics
headings: headings:
- title: Senior Software Engineer, Team Lead - title: Senior Software Engineer, Team Lead
when: May 2022 - Present when: May 2022 - Dec 2023
what: what:
- Optimized a Go application to increase consumption rate from Kafka by 340%, costing half the engineering effort of the proposed rewrite. - Optimized a Go application to increase consumption rate from Kafka by 340%, costing half the engineering effort of the proposed rewrite.
- 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. # 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. - 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. - 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. - 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. - 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
- title: Software Engineer II - title: Software Engineer II
when: Oct 2019 - May 2022 when: Oct 2019 - May 2022
what: what:
- "Scripted no-downtime database reconfiguration, which was leveraged by 3 teams to update 168 instances." #- "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. - Automated infrastructure patching for 30 microservices and 25 database clusters by creating a modular and testable Bash script framework.
- Administered on-call training, including 6 chaos tests gamedays across 5 systems. # 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.
- title: Software Engineer I - title: Software Engineer I
when: Feb 2018 - Oct 2019 when: Feb 2018 - Oct 2019
what: what:
- 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. - Founded Python tookit for full and incremental MongoDB backups, supporting partitioned deployments. The in-house standard for 21 teams.
- 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 datastore. # Mongosback
- title: EDUCATION # 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
headings: headings:
- title: Wake Forest University - title: Wake Forest University
not-when: Dec 2017 not-when: Dec 2017
@@ -58,10 +109,9 @@ resume:
# when: Jun 2018 # when: Jun 2018
# what: # what:
# - Refactored to correct bugs and improve efficiency by orders of magnitude # - Refactored to correct bugs and improve efficiency by orders of magnitude
- title: SKILLS - title: Skills
what: what:
- 'Languages: Go (Golang), Bash, Python3' - 'Languages: Go (Golang), Bash, Python3'
- 'Platforms: Docker, Hashicorp, Linux/Unix, AWS, REST, Microservices, Git' - 'Platforms: Kubernetes, Temporal, Hashicorp, Linux/Unix, AWS, REST, Microservices'
- 'Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB' - 'Datastores: PostgreSQL, MongoDB, Redis, S3, Couchbase, DynamoDB'