move non-firebase to /src/

This commit is contained in:
bel
2023-10-15 08:58:26 -06:00
parent f30e3fbe71
commit c5bc7e291d
15 changed files with 3 additions and 1 deletions

10
src/go.mod Executable file
View File

@@ -0,0 +1,10 @@
module gogs.inhome.blapointe.com/local/resume
go 1.20
require (
gogs.inhome.blapointe.com/local/args v0.0.0-20230410154220-44370f257b34
golang.org/x/time v0.3.0
)
require gopkg.in/yaml.v2 v2.4.0 // indirect

8
src/go.sum Executable file
View File

@@ -0,0 +1,8 @@
gogs.inhome.blapointe.com/local/args v0.0.0-20230410154220-44370f257b34 h1:0tuX5dfOksiOQD1vbJjVNVTVxTTIng7UrUdSLF5T+Ao=
gogs.inhome.blapointe.com/local/args v0.0.0-20230410154220-44370f257b34/go.mod h1:YG9n3Clg7683ohkVnJK2hdX8bBS9EojIsd1qPZumX0Y=
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

View File

@@ -0,0 +1,55 @@
<html>
<header>
</header>
<body>
<div name="name">
<h1>Bree LaPointe </h1>
<h4>Senior Software Engineer</h4>
</div>
<div name="contact">
<div style="display: inline-block">
<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="mailto:contact@blapointe.com">contact@blapointe.com</a>
</div>
<div style="display: inline-block">
<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">(336) 701 - 6159</a>
</div>
<div style="display: inline-block">
<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>">Provo, UT</a>
</div>
<div style="display: inline-block">
<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/lapoba16">linkedin.com/in/lapoba16</a>
</div>
<div>
map[title:Skills what:[Languages: Golang, Bash, Python3 Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB]]
</div>
<div>
map[headings:[map[headings:[map[title:Senior Software Engineer, Team Lead what:[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.] when:May 2022 - Present] map[title:Software Engineer II what:[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.] when:Oct 2019 - May 2022] map[title:Software Engineer I what:[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.] when:Feb 2018 - Oct 2019]] title:Qualtrics]] title:Work Experience]
</div>
<div>
map[headings:[map[title:Wake Forest University what:[Master of Science in Computer Science - 3.88/4.00] when:Dec 2017] map[title:High Point University what:[Bachelor of Arts in Computer Science - 3.91/4.00] when:Dec 2015]] title:Education]
</div>
<div>
map[headings:[map[title:Arabidopsis thaliana computationally-generated next-state gene interaction models what:[Refactored to correct bugs and improve efficiency by orders of magnitude] when:Jun 2018]] title:Publications]
</div>
</div>
<div name="headings">
</div>
</body>
<footer>
</footer>
</html>

16
src/homebrew/homebrew.sh Normal file
View File

@@ -0,0 +1,16 @@
#! /bin/bash
if ! which tpl; then
go install github.com/bluebrown/go-template-cli/cmd/tpl@latest
fi &> /dev/null
if ! which gojq; then
go install github.com/itchyny/gojq@latest
fi &> /dev/null
while sleep 1; do
clear
cat ./homebrew.yaml \
| gojq --yaml-input . \
| tpl --file homebrew.tmpl \
| tee ./homebrew.html
done

View File

@@ -0,0 +1,27 @@
<html>
<header>
</header>
<body>
<div name="name">
<h1>{{ range .resume.name }}{{ . }} {{ end }}</h1>
<h4>{{ .resume.title }}</h4>
</div>
<div name="contact">
{{ range .resume.contact.links }}
<div style="display: inline-block">
{{ .svg }}
<a href="{{ .link }}">{{ .text }}</a>
</div>
{{ end }}
{{ range .resume.headings }}
<div>
{{ . }}
</div>
{{ end }}
</div>
<div name="headings">
</div>
</body>
<footer>
</footer>
</html>

View File

@@ -0,0 +1,63 @@
resume:
name:
- Bree
- LaPointe
title: 'Senior Software Engineer'
contact:
links:
- 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: 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/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: Skills
what:
- 'Languages: Golang, Bash, Python3'
- 'Platforms: Docker, Hashicorp, Linux/Unix, AWS, Jenkins, REST, Microservices, Git'
- 'Datastores: MongoDB, Redis, S3, Couchbase, DynamoDB'
- title: Work Experience
headings:
- title: Qualtrics
headings:
- title: Senior Software Engineer, Team Lead
when: May 2022 - Present
what:
- 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:
- 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:
- 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
when: Dec 2017
what:
- Master of Science in Computer Science - 3.88/4.00
- title: High Point University
when: Dec 2015
what:
- Bachelor of Arts in Computer Science - 3.91/4.00
- 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

34
src/main.go Executable file
View File

@@ -0,0 +1,34 @@
package main
import (
"fmt"
"gogs.inhome.blapointe.com/local/args"
"log"
"net/http"
"golang.org/x/time/rate"
)
func main() {
as := args.NewArgSet()
as.Append(args.INT, "port", "port to listen on", 8080)
as.Append(args.STRING, "root", "root dir to serve", "./public")
as.Append(args.INT, "rps", "rate limit in requests per second", 3)
if err := as.Parse(); err != nil {
panic(err)
}
log.Printf("listening on %v to serve %s at %d rps", as.GetInt("port"), as.GetString("root"), as.GetInt("rps"))
s := http.FileServer(http.Dir(as.GetString("root")))
limiter := rate.NewLimiter(rate.Limit(as.GetInt("rps")), as.GetInt("rps"))
log.Fatal(http.ListenAndServe(fmt.Sprintf(":%d", as.GetInt("port")), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if err := limiter.Wait(r.Context()); err != nil {
log.Println("rate limited:", err)
return
}
s.ServeHTTP(w, r)
})))
}

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