Resume update

This commit is contained in:
Jeremy Wall 2021-09-29 18:07:15 -04:00
parent 567bec51e8
commit a60956865a
12 changed files with 373 additions and 2 deletions

View File

@ -1,12 +1,18 @@
content := $(wildcard content/*.md themes/even/sass/*.scss themes/even/static/* themes/even/templates/*.html themes/even/templates/categories/*.html themes/even/templates/shortcodes/*.html themes/even/templates/tags/*.html) content := $(wildcard content/*.md themes/even/sass/*.scss themes/even/static/* themes/even/templates/*.html themes/even/templates/categories/*.html themes/even/templates/shortcodes/*.html themes/even/templates/tags/*.html)
build: content/.built build: content/.built static/pdf/resume-jeremy-wall.pdf
all: build deploy all: build deploy
content/.built: $(content) content/.built: $(content)
zola build -o public/ nix-shell -p zola --command "zola build -o public/"
touch content/.built touch content/.built
static/pdf/resume-jeremy-wall.pdf: resume/resume.sil resume/resume.lua
mkdir -p static/pdf/
mkdir -p ~/.local/share/fonts
cp resume/.fonts/* ~/.local/share/fonts/
nix-shell -p sile --command "sile -o $@ resume/resume.sil"
publish: build publish: build
cd public cd public
gsutil -m rsync -d -r public gs://jeremy.marzhillstudios.com/ gsutil -m rsync -d -r public gs://jeremy.marzhillstudios.com/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

151
resume/resume.lua Normal file
View File

@ -0,0 +1,151 @@
-- Copyright 2021 Jeremy Wall
--
-- Licensed under the Apache License, Version 2.0 (the "License");
-- you may not use this file except in compliance with the License.
-- You may obtain a copy of the License at
--
-- http://www.apache.org/licenses/LICENSE-2.0
--
-- Unless required by applicable law or agreed to in writing, software
-- distributed under the License is distributed on an "AS IS" BASIS,
-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-- See the License for the specific language governing permissions and
-- limitations under the License.
local plain = SILE.require("plain", "classes")
local resume = plain { id = resume }
SILE.require("packages/url")
SILE.require("packages/pdf")
SILE.require("packages/rules")
-- Setup our settings.
SILE.settings.declare({
parameter = "resume.author",
default = "",
type = "string",
help = "The author of this resume"
})
SILE.settings.declare({
parameter = "resume.email",
default = "",
type = "string",
help = "Resume Author email address",
})
SILE.settings.declare({
parameter = "resume.site",
default = "",
type = "string",
help = "Resume Author website",
})
SILE.settings.declare({
parameter = "resume.keywords",
default = "",
type = "string",
help = "Resume keywords",
})
SILE.settings.set("document.parindent", SILE.nodefactory.glue())
local simpletable = SILE.require("packages/simpletable")
simpletable.init(SILE.documentState.documentClass, {tableTag = "table", trTag = "tr", tdTag = "td"})
resume:declareFrame("content", {
left = "20%pw",
right = "80%pw",
top = "10%ph",
bottom = "10%ph",
})
resume.pageTemplate.firstContentFrame = resume.pageTemplate.frames["content"]
SILE.registerCommand("resume", function(opts, content)
local author = SILE.settings.get("resume.author")
if author == "" then
SILE.warn("resume.author was empty. Author info will be missing.")
else
SILE.call("pdf:metadata", {key="Author", val=author}, "")
end
local keywords = SILE.settings.get("resume.keywords")
if keywords == "" then
SILE.warn("resume.keywords was empty. site keywords will be missing.")
else
SILE.call("pdf:metadata", {key="Keywords", val=keywords}, "")
end
local email = SILE.settings.get("resume.email")
if email == "" then
SILE.warn("resume.email was empty. Email info will be missing.")
end
local site = SILE.settings.get("resume.site")
if site == "" then
SILE.warn("resume.site was empty. site info will be missing.")
end
SILE.call("section", {}, function()
SILE.typesetter:typeset(author)
end)
SILE.call("table", {}, function()
SILE.call("tr", {}, function()
SILE.call("td", {}, function()
SILE.call("bold", {}, function()
SILE.typesetter:typeset("Email: ")
end)
end)
SILE.call("td", {}, function()
SILE.call("email", {src=email})
end)
end)
SILE.call("tr", {}, function()
SILE.call("td", {}, function()
SILE.call("bold", {}, function()
SILE.typesetter:typeset("Site: ")
end)
end)
SILE.call("td", {}, function()
SILE.call("psite")
end)
end)
end)
SILE.process(content)
end)
SILE.registerCommand("email", function(opts, content)
if opts["src"] then
SILE.call("href", {src="mailto:" .. opts["src"]}, opts["src"])
else
SILE.error("src attribute is required")
end
end)
SILE.registerCommand("site", function(opts, content)
if opts["src"] then
SILE.call("href", {src="https://" .. opts["src"]}, opts["src"])
end
end)
SILE.registerCommand("psite", function(opts, content)
local site = SILE.settings.get("resume.site")
if site == "" then
SILE.warn("resume.site was empty. site info will be missing.")
end
SILE.call("site", {src=site}, "")
end)
-- TODO(jwall): Bullet could be way better than it currently is.
resume.registerCommands = function()
plain.registerCommands()
SILE.doTexlike([[%
\define[command=section]{\font[size=3em]{\process} \bigskip}%
\define[command=subsection]{\bigskip \font[size=2em]{\process} \bigskip}%
\define[command=bold]{\font[style=bold]{\process}}%
\define[command=para]{\process \medskip}%
\define[command=bullet]{* \process}%
]])
end
return resume

214
resume/resume.sil Normal file
View File

@ -0,0 +1,214 @@
\begin[papersize=letter, class=resume]{document}
\set[parameter=resume.author, value="Jeremy Wall"]
\set[parameter=resume.site, value="jeremy.marzhillstudios.com"]
\set[parameter=resume.email, value=jeremy@marzhillstudios.com]
\set[parameter=resume.keywords, value="java,javascript,typescript,python,perl,clojure,rust,go,c#,haskell,erlang,programming,resume"]
\begin{resume}
\subsection{About Me}
\para{
I am a self taught coder with a love for languages and good
design. I've been working in the industry for a little more than 10
years. I've been learning and coding in the open source community for
far longer than that though. From hacking personal customizations in
\href[src=http://blender.org]{Blender}, to coding my own website, to
writing about various languages and technologies on that site. I've
been an active part of the programming community for more than 20
years.
}
\para{
I'm passionate about the tools used in the craft of software
development. Build systems, Test frameworks, Editors/IDE's all
fascinate me and I'm constantly looking for new ways to streamline and
improve the process of software construction. }
\subsection{Notable Personal Projects}
\bullet{UCG a Configuration format compiler at \site[src=github.com/zaphar/ucg]}
\bullet{Rust ICMP Socket library at
\site[src=github.com/zaphar/icmp_socket]}
\bullet{Parsing combinator library at
\site[src=github.com/zaphar/abortable_parser]}
\bullet{Network quality exporter for prometheus at
\site[src=github.com/zaphar/durnitisp]}
\bullet{Original author of C# support for
\site[src=bazel.io/] at \site[src=github.com/bazelbuild/rules_dotnet]}
\bullet{One of the only people to provide a pull example for the
libgit2 rust bindings at
\href[src=https://github.com/rust-lang/git2-rs/blob/master/examples/pull.rs]{pull.rs on github}}
\medskip
\para{You can see the rest of my personal coding projects on
\site[src=github.com/zaphar]}.
\bigskip
\fullrule
\bigskip \goodbreak
\section{Employment}
\subsection{GoHealth, Inc - VP of Engineering 2021 - Present}
\para{I was promoted to VP of Engineering during my 5th year and helped to drive
processes for technology adoption, security and compliance. My areas of oversight
were our new Customer Retention stack, Shared Services, Tech Support,
and Data Engineering.}
\subsection{GoHealth, Inc - Principal Engineer 2016 - 2021}
% Figure out how to indent this entire paragraph
\para{I joined GoHealth to help them as they moved toward a more agile model
in the SDLC. They were beginning to embrace Continuous Integration and
Continuous Delivery. My responsibilites as Principal Engineer were to:}
- Mentor other developers
- Provide technical direction for old and legacy applications
- Help to form and refine their processes around development, releases and QA.
- Help to foster a strong engineering culture.
\bigskip
\para{Shortly after joining GoHealth I also took on the management of a newly
forming SRE team. Helping to bootstrap that team and give guidance on best
practices for managing new and old deployments of applications in the GoHealth
platform. I was also given oversight of the data engineering group around 4 years into my
tenure as a Principal there.}
\subsection{VAE, Inc. - Senior Architect 2014 - 2016}
\para{The software stack we used at VAE was C# running on both Mono and
.Net runtimes. It is a suite of network engineering tools used by
Network Engineers and Network Operations to manage and view the
current state of their network. While there I helped to:}
- Develop software engineering processes.
- Integrate tooling to ensure software quality.
- Provide high level design guidance for products.
- Mentor junior developers.
\bigskip
\subsection{Google - Software engineer 2008 - 2014}
\para{I was part of the DoubleClick acquisition by Google and continued working on
the Google Affiliate Network product for the first two years. Wrote most of
the code to migrate our data to Google infrastructure and datastores.
Launched the first integrations with Google systems.}
\para{I then worked on the Project Hosting product on https://code.google.com/p/.
This product has since been discontinued by Google.}
\para{After Project hosting I moved into the Web Server team for the
Search Page. I worked on tooling for the templating language and
CSS/Javascript/HTML management. While there I worked on integrating
a CSS compiler for the Templating engine. This support greatly
improved the experience of styling search features and controlling
the impact of CSS on a page.}
\para{I also worked on evaluating the HTML5 Web Compoenents standards to
see how they might improve the search page. This required reading
the W3C standards, prototyping templating engine support for them,
and running some experiments on the front page.}
\para{Pretty much all the technology at Google is custom but relies
heavily on non-relational distributed datastores, and highly
scalable distributed architectures.}
\subsection{Doubleclick/Performics Software Engineer 2007 -}
\para{Worked on the affiliate ad product for Doubleclick/Performics in several
different initiatives. The web stack was Linux, Apache, ModPerl and used
DB2/Oracle/MySQL for the database. While there I helped to:}
- Champion and prioritize tasks for a migration from an IBM
DB2 database to an Oracle Database
- Code and setup a unit test infrastructure for javascript development.
- Design and write a UI framework to improve development speed
and maintainability of frontends to the reporting API.
\subsection{Healthcom - SubContractor 2007}
\para{Worked on a health device information tracking service. The system recieved
health information from various remote devices in patients homes. It tracked
the data and events and graphed them for the healthcare providers. It also
alerted based off of certain criteria for the data.}
\para{The system was written in Perl and consumed web services, ftp uploads,
and encrypted network connections to gather the data. The data was stored in
Postgresql. The web stack was Apache and Perl on Windows.}
\fullrule
\bigskip \goodbreak
\section{Technologies}
\para{This is an incomplete list of the technologies I've had experience with just touching
the high points. I'm a generalist who goes deep in a few areas and with an emphasis on
maintainability and longevity of the systems or code I'm involved with.}
\subsection{Non Relational Datastores}
\bullet{CouchBase}
\bullet{MongoDB}
\bullet{Bigtable}\bigskip
\subsection{Relational Databases}
\bullet{DB2}
\bullet{Oracle}
\bullet{Postgres}
\bullet{Mysql}
\bullet{SQL Server}\bigskip
\subsection{Languages}
\para{I know a fairly wide variety of languages not all of which I could use
in production settings. Learning and even creating languages is something
of a hobby for me. A partial list is here.}
\bullet{Rust}
\bullet{Go}
\bullet{Erlang}
\bullet{UCG}
\bullet{Javascript}
\bullet{Typescript}
\bullet{Java}
\bullet{Julia}
\bullet{Python}
\bullet{C#}
\bullet{C}
\end{resume}
\end{document}

BIN
static/pdf/resume-jeremy-wall.pdf Executable file → Normal file

Binary file not shown.