From 9ec52978bc1d80cb268ffb7bc85b1cf8b600df76 Mon Sep 17 00:00:00 2001 From: Dylan Lloyd Date: Fri, 10 Feb 2023 17:07:45 -0500 Subject: [PATCH] add resume cp to makefile & commit current version --- Makefile | 1 + resume.html | 283 ++++++++++++++++++++++++++++++++++++++++++++++++++++ resume.pdf | Bin 0 -> 20137 bytes 3 files changed, 284 insertions(+) create mode 100644 resume.html create mode 100644 resume.pdf diff --git a/Makefile b/Makefile index c675db2..9f753b3 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ default: site build site: _site bundle exec jekyll build -d disinclined.org --trace + cp ~/src/resume/resume.{pdf,html} . serve: bundle exec jekyll serve --trace --verbose --livereload diff --git a/resume.html b/resume.html new file mode 100644 index 0000000..5ae1284 --- /dev/null +++ b/resume.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + +
+
Dylan Lloyd
Software Engineer
dylan@disinclined.org
https://disinclined.org
(917) - 853 - 4726
Professional Experience
Tower Research Capital 2018
- 2023
Liaison to FPGA development from DevTools Compute Development Platform. Sole
developer of specialized dependency management system for FPGA design. Owner-
ship of end to end CI/CD pipelines for hardware simulation on Kubernetes. Man-
aged Kubernetes clusters across bare me tal colocated datacenters. Developed Python
applications for resourc e management, automated image creation and prod uc tion de-
ployment. Managed private GitLab, Gerrit and Gitolite instances for ˜30+ trade
teams. Ownership of highly available geo-distributed Artifactory instances with ˜40
terrabytes of binary and package data. Implemented comprehensive monitoring and
backup strategies for critical servic es .
Addepar 2016 - 2018 Highly available internal toolchain development for machine & environment provi-
sioning, aut he ntication & authorization within an auditable financial platform repre-
senting $500 billion assets under management. Developed Python Flask app lic ations
for internal core workflows. Developed Python utilities to parse and pro ce ss financial
data injested for product. Managed compute resources on AWS.
Pho e ni x Age / Kabam 2013
- 2016
Technical lead of scalable backend infrastructure, and full stack feature development
for top grossing, massively multiplayer mobile games of 15+ million users. Developed
Chef c ookbooks for automated deployment and scaling of production game environ-
ments on Google Cloud.
DuckDuckGo 2011 - 2013 Developed and managed open source repositories hosted on GitHub, responsible for
responding to pull requests. Added features to and maintained the DuckPAN plat-
form. Implemented business driven integrations with companies such as ESPN and
Amazon. Wrote internal services and development tools, servicing ˜4 million daily
users. Managed compute resources on AWS.
Technical Skills
Languages Python, Perl, Ruby, PHP, Objective C, C, C++, J avascript, Java, Shell, SQL, Haskell
Softwar e Packages NGiNX, Apache, MySQL, Mar iaD B, Postgres, Vertica, Couchbase, Redis, Mem-
cached, Nagios, Sensu, Ganglia, Wavefront, Sumologic, BIND, ACME, Postfix, Dove-
cot, Chef, Gitolite, Gitlab, Gerri t, Salt, Docker, Conda, Kubernetes, Artifactory,
Vault, Grafana, Pr ometh e us
Personal Projects
nasm-demonstration 64 and 32 bit Netwide Assembly demonstration, in the form of a needlessly compli-
cated hello world featuring a branch, macro and function.
p owermate I wrote this Haskell program to control Alsa, MPD and Pianobar with a Griffin
Powermate, binding arbitrary shell scripts to physical gestures. It is available in the
Arch User Repository.
matrixnullspace.com A web application written in Python to calculate the null space, eigenvalues and
determinant of a given matrix.
+
+
+ +
+ + diff --git a/resume.pdf b/resume.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2b4d26d693bf58ec520a0443351f559be65dd893 GIT binary patch literal 20137 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 pZDtwBk|^b