diff --git a/awesome-cv.cls b/awesome-cv.cls index 1e7d7aa..6928a9b 100644 --- a/awesome-cv.cls +++ b/awesome-cv.cls @@ -83,7 +83,8 @@ % Needed to deal a paragraphs \RequirePackage{parskip} % Needed to deal hyperlink -\RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref} +% \RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref} +\usepackage[colorlinks=true,urlcolor=awesome-skyblue]{hyperref} \hypersetup{% pdftitle={}, pdfauthor={}, @@ -503,7 +504,7 @@ {}% {% \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}% - \href{https://git.howdoicomputer.lol/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% + \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}% }% \ifthenelse{\isundefined{\@gitlab}}% {}% diff --git a/coverletter.tex b/coverletter.tex index bafcc36..5688420 100644 --- a/coverletter.tex +++ b/coverletter.tex @@ -52,7 +52,7 @@ % Available options: circle|rectangle,edge/noedge,left/right \name{Tyler}{Hampton} \position{Site Reliability Engineer{\enskip\cdotp\enskip}DevOps Engineer{\enskip\cdotp\enskip}Platform Engineer} -\address{3883 Turqouise Way. Apt 2205. Oakland. CA 94609} +\address{Oakland. CA. United States} \mobile{(+1) 424-259-2819} \email{howdoicomputer@fastmail.com} @@ -67,18 +67,18 @@ %------------------------------------------------------------------------------- % The company being applied to \recipient - {Company Recruitment Team} - {Google Inc.\\1600 Amphitheatre Parkway\\Mountain View, CA 94043} +{Optiver} +{Strawinskylaan 3095 1077 ZX Amsterdam The Netherlands} % The date on the letter, default is the date of compilation \letterdate{\today} % The title of the letter -\lettertitle{Job Application for Software Engineer} +\lettertitle{Job Application for Infrastructure Engineer} % How the letter is opened -\letteropening{Dear Mr./Ms./Dr. LastName,} +\letteropening{Dear Optiver,} % How the letter is closed \letterclosing{Sincerely,} % Any enclosures with the letter -\letterenclosure[Attached]{Curriculum Vitae} +% \letterenclosure[Attached]{Curriculum Vitae} %------------------------------------------------------------------------------- @@ -91,9 +91,9 @@ % Print the footer with 3 arguments(,
, ) % Leave any of these blank if they are not needed \makecvfooter - {\today} - {Claud D. Park~~~·~~~Cover Letter} - {} +{\today} +{Tyler Hampton~~~·~~~Cover Letter} +{} % Print the title with above letter information \makelettertitle @@ -103,14 +103,9 @@ %------------------------------------------------------------------------------- \begin{cvletter} -\lettersection{About Me} -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis ullamcorper neque sit amet lectus facilisis sed luctus nisl iaculis. Vivamus at neque arcu, sed tempor quam. Curabitur pharetra tincidunt tincidunt. Morbi volutpat feugiat mauris, quis tempor neque vehicula volutpat. Duis tristique justo vel massa fermentum accumsan. Mauris ante elit, feugiat vestibulum tempor eget, eleifend ac ipsum. Donec scelerisque lobortis ipsum eu vestibulum. Pellentesque vel massa at felis accumsan rhoncus. + \lettersection{Application} -\lettersection{Why Google?} -Suspendisse commodo, massa eu congue tincidunt, elit mauris pellentesque orci, cursus tempor odio nisl euismod augue. Aliquam adipiscing nibh ut odio sodales et pulvinar tortor laoreet. Mauris a accumsan ligula. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Suspendisse vulputate sem vehicula ipsum varius nec tempus dui dapibus. Phasellus et est urna, ut auctor erat. Sed tincidunt odio id odio aliquam mattis. Donec sapien nulla, feugiat eget adipiscing sit amet, lacinia ut dolor. Phasellus tincidunt, leo a fringilla consectetur, felis diam aliquam urna, vitae aliquet lectus orci nec velit. Vivamus dapibus varius blandit. - -\lettersection{Why Me?} -Duis sit amet magna ante, at sodales diam. Aenean consectetur porta risus et sagittis. Ut interdum, enim varius pellentesque tincidunt, magna libero sodales tortor, ut fermentum nunc metus a ante. Vivamus odio leo, tincidunt eu luctus ut, sollicitudin sit amet metus. Nunc sed orci lectus. Ut sodales magna sed velit volutpat sit amet pulvinar diam venenatis. + I am currently interested in the Software Engineer - Infrastructure role. Out of all the open positions right now, this one may be what I'm best suited for. \end{cvletter} diff --git a/resume.pdf b/resume.pdf index a439bb1..5ba207f 100644 Binary files a/resume.pdf and b/resume.pdf differ diff --git a/resume.tex b/resume.tex index bb4db9c..f11e154 100644 --- a/resume.tex +++ b/resume.tex @@ -53,7 +53,9 @@ % \photo[rectangle,edge,right]{./examples/profile} \name{Tyler}{Hampton} \position{Systems Engineer{\enskip\cdotp\enskip}SRE{\enskip\cdotp\enskip}Platform Engineer{\enskip\cdotp\enskip}DevOps Engineer} +\address{Oakland CA, United States} +\email{howdoicomputer@fastmail.com} %\dateofbirth{January 1st, 1970} \homepage{howdoicomputer.lol} \github{howdoicomputer} @@ -89,7 +91,7 @@ % \input{resume/presentation.tex} % \input{resume/writing.tex} % \input{resume/committees.tex} -\input{sections/education.tex} +% \input{sections/education.tex} \input{sections/extracurricular.tex} \input{sections/hobbies.tex} diff --git a/sections/experience.tex b/sections/experience.tex index b8fea04..166439e 100644 --- a/sections/experience.tex +++ b/sections/experience.tex @@ -11,27 +11,27 @@ %--------------------------------------------------------- \cventry - {Senior Systems Engineer \& Site Architecture Lead} % Job title + {Senior Systems Engineer} % Job title {Grabango} % Organization {Berkeley, CA, USA} % Location {September 26. 2022 - Present} % Date(s) { \begin{cvitems} % Description(s) of tasks/responsibilities - \item {Mentor and technical lead for DevOps team} - \item {Implemented a HashiCorp Nomad based orchestration system that allocated services across thousands of IoT devices as part of a hybrid infrastructure system bridging physical locations and GCP cloud infrastructure} - \item {Used Dagger and Go to build portable, localized CI/CD pipelines using Docker; used the same Dagger/Go combo to create developer tooling to enable a Platform-as-Service model for deploying services to on-premise infrastructure via Nomad} - \item {Lead meetings and facilitated cultural shifts for adopting SRE practices such as SLIs/SLOs and production readiness checklists} - \item {Lead an internal architecture group involving staff and principal engineers to improve the architecture of physical sites and introduce cultural standards for engineering excellence} - \item {Managed GCP Kubernetes clusters via Terraform and enabled a self-service model by building Helm based deployment pipelines using Jenkins} + \item {Built and administered multiple Kubernetes clusters (GKE) - each spanning hundreds of nodes} + \item {Implemented ArgoCD as a GitOps based modern deployment system} + \item {Supported AI/inference workloads on k8s with Airflow and GPU node pools} + \item {Technical lead for devops team} + \item {Built an internal platform for self-service ownership of cloud and datacenter infrastructure} + \item {Designed Terraform usage patterns and code organization and led multi-month initiative to import hand-spun GCP infrastructure into Terraform state} + \item {Implemented a HashiCorp Nomad based orchestration system that allocated services across thousands of IoT devices as part of a hybrid infrastructure system bridging DC located Nomad and cloud located Kubernetes clusters} + \item {Used Dagger and Go to build portable, localized CI/CD pipelines as well as wrap deployment processes for Kubernetes and Nomad} + \item {Lead an internal architecture group involving staff and principal engineers to improve the architecture of physical sites and introduce SRE processes for teams} \item {Heavily refactored SaltStack codebase to improve idempotency and general code quality as well as make use of Salt's more advanced features like orchestration and event-driven actions} - \item {Co-led a migration to Ansible in an effort to abstract application deployment to Nomad and better define the responsibilities of a configuration management system} - \item {Built a monitoring system with Prometheus, Thanos, Grafana, and Consul that used service discovery to auto-configure application metrics collection} - \item {Improved monitoring, resiliency, and performance for complex storage systems built on top of ZFS} - \item {Retooled AI/ML image inference event streaming architecture by replacing Kafka with RedPanda for improved reliability and performance} - \item {Designed extensive caching layers for package types going to physical sites using pull-through Docker registry caches for container images and Nginx proxies for raw package types} - \item {Lead migration from Nexus, internal PyPi, and Google Artifact Registry to Cloudsmith in order to centralize artifact management, improve supported artifact types, reduce complexity, and save costs} + \item {Designed a Prometheus monitoring system using Thanos to federate across multiple datacenters and Kubernetes clusters with service discovery automatically registering metrics for applications} + \item {Managed Kafka installations across multiple datacenters and Kubernetes clusters for AI inference video pipelines} + \item {Designed caching infrastructure for package distributions to multiple physical sites} \item {Wrote Golang based CLI tooling for the systems engineering team to automate several day-to-day tasks around ticket management, SaltStack state application, k8s automation, and more} - \item {Designed Terraform usage patterns and code organization and led a multi-month initiative to import hand-spun GCP infrastructure into Terraform state} + \item {Authored incident response guides, production readiness review processes, and other related documentation} \end{cvitems} } @@ -43,13 +43,10 @@ {June 22. 2016 - September 9. 2022} % Date(s) { \begin{cvitems} - \item {Technical lead for Cloud Platform team with a head count of 10 engineers} - \item {Onboarded, mentored, and helped grow several engineers and interns while at Shutterfly} - \item {Part of committee of principal, staff, and architect contributors to build a larger architectural model for a migration from data center to AWS} - \item {Migrated over 100 microservices of varying languages to Amazon ECS} - \item {Designed several large, foundational Terraform modules that were used by ~200 engineers to deploy Security Groups, Elastic Container Service clusters, IAM entities, VPCs, ALBS, and more} + \item {Migrated over 100 microservices of varying languages to Amazon ECS as part of a datacenter migration} + \item {Designed several large, foundational Terraform modules that were used by ~200 engineers to deploy Security Groups, ECS clusters, IAM entities, VPCs, ALBS, and more} \item {Designed a AWS global resource testing model that used AWS accounts as test environments for globally available resources like IAM entitites} - \item {Wrote a custom reverse proxy in Go to facilitate a maximized inverse cache hit rate in order to support a legacy .NET application} + \item {Wrote custom reverse proxies in Go} \item {Wrote custom log ingress filters in Node.js on AWS Lambda for translating log entries into structured log events for Splunk ingress} \item {Wrote custom tooling around AWS ECS in Python to enforce draining nodes from tasks during abrupt scaling events} \item {Performed capacity planning in accordance with load testing results and metrics to right size capacity} @@ -58,10 +55,12 @@ \item Wrote custom FluentBit plugins in Ruby to support generalized logging event patterns for applications running on ECS \item {Wrote Terraform module to abstract AWS Kinesis Streams and then assisted teams with a migration away from Kafka} \item {Designed immutable OS image pipeline using Jenkins pipelines, Ansible playbooks, and Packer to produce AWS AMIs that fed into EC2 nodes within autoscaling groups} - \item {Wrote custom integrations for running GPU dependent tasks on ECS nodes in order to support complex topgraphical image generation} - \item {Wrote CLI tooling in Go for Cloud Platform team to automate checking ECS clusters, interacting with internal HTTP endpoints, and more} + \item {Wrote custom integrations for running GPU dependent tasks on ECS nodes in order to support complex topgraphical image generation via AI/ML} + \item {Wrote CLI tooling in Go for internal teams to automate common automation tasks} \item {Extended and customized aws-azure-login Node.js application to support logging into accounts federated to AWS from Azure AD via SAML} - \item {Co-designed a hub and spoke model that used AWS accounts as a security and management segregation layer for environments with Transit Gateway linking all of the environments together} + \item {Designed a hub and spoke model that used AWS Transit Gateway to link environments together} + \item {Part of committee of principal, staff, and architect contributors to build a larger architectural model for a migration from data center to AWS} + \item {Mentored several engineers over the course of my 6 years at the company} \end{cvitems} } @@ -78,6 +77,7 @@ \item {Designed resilient high-availability MySQL cluster using Heartbeat to float a VIP between multiple masters} \item {Maintained several applications deployed via Proxmox as VMs that were converged via Puppet} \item {Wrote a tool in Ruby to migrate employee objects from FreeIPA to Active Directory} + \item {Migrated datacenter applications and Proxmox VMs to Oracle Cloud} \end{cvitems} } @@ -86,13 +86,14 @@ {DevOps Engineer} % Job title {InsideVault} % Organization {San Carlos, CA, USA} % Location - {Febuary 24. 2014 - December 15. 2015} % Date(s) + {Febuary 24. 2014 - January 15. 2016} % Date(s) { \begin{cvitems} \item {Managed MongoDB cluster used by SEO optmization platform} \item {Used Jenkins to build testing and deployment pipelines for Scala applications using sbt} \item {Wrote Chef cookbooks for deploying Apache Mesos cluster members to EC2} - \item {Managed Apache Mesus cluster that was used for distributed batch processing} + \item {Managed Apache Mesos cluster that was used for distributed batch processing} + \item {Built log ingestion pipeline for Apache Mesos batch jobs to self-hosted Kibana/Logstash/ElasticSearch} \end{cvitems} } %--------------------------------------------------------- @@ -103,8 +104,10 @@ {January 23. 2012 - January 10. 2014} % Date(s) { \begin{cvitems} % Description(s) of tasks/responsibilities - \item {Wrote a custom deployment web UI using Ruby and jQuery to integrate Chef, AWS EC2 nodes, and Haproxy to serve as the main deployment interface for over 100 engineers for dozens of Java based microservices} - \item {Wrote Chef cookbooks that converged EC2 nodes so that they could run Java based applications} + \item {Assisted with migration of Java services from physical data center to AWS} + \item {Wrote a custom deployment web UI using Ruby, Padrino, and jQuery to integrate Chef, AWS EC2 nodes, and Haproxy to serve as the main deployment interface for over 100 engineers for dozens of Java based microservices} + \item {Built Chef environment to administer hundreds of EC2 nodes and wrote cookbooks to handle hosted proxies, EC2 nodes, and databases} + \item {Wrote scripts and application cookbooks in Ruby to integrate Java services with AWS dependencies} \item {Rewrote the aforementioned deployment tool as part of a migration from AWS to a data center platform running VMWare VSphere} \end{cvitems} } diff --git a/sections/extracurricular.tex b/sections/extracurricular.tex index 1cf8798..1fc4722 100644 --- a/sections/extracurricular.tex +++ b/sections/extracurricular.tex @@ -18,8 +18,8 @@ { \begin{cvitems} % Description(s) of experience/contributions/knowledge \item {Mentored and onboarded community engineers and local college students into the Code for America organization} - \item {Project lead and main contributor for CaliDrought - a Node.js API that collected drought information from the U.S. government} - \item {Secondary contributor for CaliDroughtViz - a React application using D3.js to visualize drought impact data for California} + \item {Project lead and main contributor for Calidrought - a Node.js API that collected drought information from the U.S. government} + \item {Contributor to \href{https://github.com/sfbrigade/adopt-a-drain}{Adopt-a-Drain} - a platform for citizens to adopt a storm drain and keep it clean} \item {Helped run the chapter through various volunteer activities like managing the treasury and running events} \end{cvitems} } diff --git a/sections/hobbies.tex b/sections/hobbies.tex index 86acf23..313cdef 100644 --- a/sections/hobbies.tex +++ b/sections/hobbies.tex @@ -1,20 +1,23 @@ -\cvsection{Homelab} +\cvsection{Portfolio} \begin{cventries} \cventry - {A pseudo-relevant hobby that is like a second job} + {} {} {} {} { \begin{cvitems} - \item {Three nodes are a k3s cluster running on Raspberry Pis with MetalLB in layer2 mode to serve as a load balancer} - \item {The OS for each k3s node is Ubuntu 20.04 converged with Ansible and the persistent volumes are satisfied by a consumer NAS} - \item {A fourth and primary physical node is a consumer grade hardware box with prosumer hybrid drives in a ZFS mirrored pool. The node is named megamind} - \item {Megamind's underlying operating system is NixOS and immutable deployments to the OS are done via deploy-rs and Nix flakes; failed state applies trigger automatic rollback to last OS state snapshot} - \item {Megamind runs applications and services via Nomad, Consul, Vault} - \item {Individual applications are able to publish their metrics endpoints to Consul and then have their metrics collected via Prometheseus and displayed using Grafana} - \item {Cloudflare handles DNS with subdomains routing to specific services via Traefik; Let's Encrypt is used to provide SSL certs via the DNS challenge method} - \item {Homelab serves as a personal PaaS that Elixir and Go services are deployed to} + \item + {\href{https://github.com/howdoicomputer/aws-cdktf-example}{AWS CDKTF Example} - A reference AWS architecture that deploys an EKS cluster running ArgoCD and Karpenter. Built using the TypeScript version of Terraform CDK} + \item {\href{https://github.com/codeforsanjose/findahome}{Find a Home} - A Rails application to help Bay Area natives navigate a high cost rent market} + \item + {\href{https://github.com/codeforsanjose/calidrought-legacy}{Calidrought} - A Node.js API that aggregated data from a variety of government agencies and presented it for data visualization} + \item + {\href{https://github.com/howdoicomputer/bookshelfbot}{BookshelfBot} - An Elixir based Discord bot that queries books and displays them inline to chats. Actively maintained for a few dozen Discord servers as an official bot} + \item + {\href{https://github.com/howdoicomputer/onair}{OnAir} - A Golang client/server pairing that controls whether or not a radio station `onair` sign is `lit up` dependent on whether or not a user is part of a Discord voice channel} + \item + {\href{https://howdoicomputer.lol}{Blog} - My personal blog hosted on a Nomad orchestrated homelab server where I write about cloud, programming, and homelabbing. Homelab also hosts my personal \href{https://git.howdoicomputer.lol/}{git server} where some other personal projects are kept} \end{cvitems} } \end{cventries} @@ -42,7 +45,14 @@ {} { \begin{cvitems} - \item {Bash, Nomad, Terraform, Python, Node.js, TypeScript, Kubernetes, k8s, Elixir, Nix, Docker, AWS, ECS, Helm, TCP/IP, Prometheus, Consul, Vault, Linux, Go, SaltStack, Ansible, Puppet, Chef, git, DNS, GCP, ZFS, Docker, SQL, Kafka, Grafana, cloud, distributed computing, raft, Ruby, Dagger, bpf, JavaScript} + \item {Programming languages: Go, Elixir, TypeScript/JavaScript/Node, Python, Ruby, Groovy, SQL} + \item {Linux: containers, Docker, TCP/IP, DNS, ZFS, eBPF} + \item {Configuration management systems: SaltStack, Chef, Ansible, Puppet} + \item {HashiConf tools: Terraform, Vault, Consul, Nomad, Packer} + \item {Cloud providers: AWS, GCP} + \item {Products: Jenkins, Dagger, Kafka, Prometheus, Grafana} + \item {Orchestration systems: Kubernetes/k8s, AWS ECS, Mesos, Nomad} + \item {Kubernetes products: Helm, AWS Load Balancer Controller, ArgoCD, Karpenter} \end{cvitems} } \end{cventries} diff --git a/sections/summary.tex b/sections/summary.tex index f183198..ad5f380 100644 --- a/sections/summary.tex +++ b/sections/summary.tex @@ -10,7 +10,7 @@ \begin{cvparagraph} %--------------------------------------------------------- -Have led growth at infrastructure departments in five different companies. 10+ years of diverse software engineering experience with specialties in large-scale container orchestration systems, polished developer platforms, cloud architectures, and more. +Have led growth at infrastructure departments in five different companies. 10+ years of diverse software engineering experience with specialties in large-scale architecture, distributed systems, and polished developer platforms. -Enthusiastic tinkerer. Perpetual homelabber. Prefers a command line interface environment as a big fan of Emacs, Linux, and open-source. +Enthusiastic tinkerer. Open source contributor. Deeply interested in treating platform engineering initiatives as internal products where fellow engineers are valued customers. \end{cvparagraph}