-
Notifications
You must be signed in to change notification settings - Fork 0
/
Connor Bell CV.tex
147 lines (121 loc) · 8.66 KB
/
Connor Bell CV.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
\documentclass[10pt,a4paper,ragged2e]{altacv}
\RequirePackage{hyperref}
\usepackage{ifxetex,ifluatex}
\ifxetex
\usepackage{catchfile}
\newcommand\getenv[2][]{%
\immediate\write18{kpsewhich --var-value #2 > \jobname.tmp}%
\CatchFileDef{\temp}{\jobname.tmp}{\endlinechar=-1}%
\if\relax\detokenize{#1}\relax\temp\else\let#1\temp\fi}
\else
\ifluatex
\newcommand\getenv[2][]{%
\edef\temp{\directlua{tex.sprint(
kpse.var_value("\luatexluaescapestring{#2}") or "" ) }}%
\if\relax\detokenize{#1}\relax\temp\else\let#1\temp\fi}
\else
\usepackage{catchfile}
\newcommand{\getenv}[2][]{%
\CatchFileEdef{\temp}{"|kpsewhich --var-value #2"}{\endlinechar=-1}%
\if\relax\detokenize{#1}\relax\temp\else\let#1\temp\fi}
\fi
\fi
\usepackage{xstring}
\usepackage{hyphenat}
\usepackage{microtype}
\tolerance=9999
\emergencystretch=10pt
\hyphenpenalty=1000
\exhyphenpenalty=100
\geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[default]{lato}
\definecolor{VividPurple}{HTML}{FF8106}
\definecolor{SlateGrey}{HTML}{2E2E2E}
\definecolor{LightGrey}{HTML}{666666}
\colorlet{heading}{VividPurple}
\colorlet{accent}{VividPurple}
\colorlet{emphasis}{SlateGrey}
\colorlet{body}{LightGrey}
\renewcommand{\itemmarker}{{\small\textbullet}}
\renewcommand{\ratingmarker}{\faCircle}
\getenv[\version]{version}
\getenv[\shortversion]{shortversion}
\usepackage{atbegshi,picture}
\usepackage{transparent}
\AtBeginShipout{\AtBeginShipoutUpperLeft{%
\put(\dimexpr\paperwidth-1cm\relax,-1.5cm){\makebox[0pt][r]{\textcolor{LightGrey}{Version: \version}}}%
}}
\begin{document}
\name{Connor Bell}
\tagline{\{ Solutions Architecture / DevOps / AWS / Terraform \& Pulumi / Linux / Kubernetes / TypeScript \}}
% \photo{2.3cm}{isso}
\personalinfo{%
\href{mailto:cv-\[email protected]}{\email{cv-\[email protected]}}
\href{https://goo.gl/maps/13fCVSAsxh428rwcA}{\location{Reading, Berkshire, UK}}
\href{https://www.linkedin.com/in/connor--bell/}{\linkedin{connor-{}-bell}}
\href{http://github.com/Makeshift}{\github{makeshift}}
}
\begin{fullwidth}
\makecvheader
\end{fullwidth}
\AtBeginEnvironment{itemize}{\small}
\cvsection[page1sidebar]{Current Position}
\cvevent{Senior DevOps Engineer}{Echobox}{Aug 2023 -- Current}{London - Remote}
Supporting a large group of developers, I am the primary architect and engineer for cloud infrastructure within Echobox, focusing on AWS \& EKS. I pride myself on providing engineers a fast and smooth experience getting their code into production.
\smallskip
\begin{itemize}
\item Designed and maintained Infrastructure as Code in CDK \& Pulumi targetting AWS and Kubernetes for a variety of workloads
\item Migrated CI and CD pipelines from CodeBuild/CodePipeline to GitHub Actions, resulting in significant improvements to quality of life for developers along with a 8x decrease in average end-to-end run-time and an overall reduction in cost with smart utilisation of self-hosted runners
\item Authored reusable modules following best-practice recommendations to enable developers to easily deploy MongoDB clusters, EKS clusters and GitHub Actions workflows
\item Implemented Helm libraries for standard patterns, significantly reducing duplicate code and maintenance requirements, as well as consistency over the org
\item Revamped monitoring and metrics aggregation from a variety of methods into a hub-and-spoke style multi-cluster Prometheus + Thanos implementation, allowing both cluster-level and global-level visibility without sacrificing availability
\item Gave 'deep-dive' presentations to technical teams on best-practice AWS and Kubernetes recommendations and worked with them to ensure their workloads were being ran in a scalable, maintainable way
\item Helped plan and orchestrate org-wide migrations of MongoDB and EKS clusters to new regions, ensuring minimal downtime and impact to customers
\end{itemize}
\cvsection{Key Skills}
\begin{itemize}
\item Development of bespoke {\bf AWS} solutions via {\bf Terraform}, {\bf CDK} and {\bf Pulumi}
\item Significant experience with various {\bf AWS} products, including EC2, ECS, Route53, CloudFormation, Step Functions, S3 and more.
\item Experience and knowledge of {\bf continuous integration systems} (Github Actions, CircleCI, Jenkins, AWS Code Suite, Drone) and common testing frameworks.
\item Experience developing both internal and customer-facing bespoke {\bf Node.js} solutions. Some of my personal projects can be found on GitHub.
\item Extensive knowledge of {\bf Docker} \& Docker-Compose, focusing on converting existing services to serverless.
\item Experience with designing and maintaining {\bf Kubernetes} clusters for production usage, both in AWS EKS and self-hosted.
\item Extensive knowledge of {\bf Terraform}, {\bf CDK} \& {\bf Pulumi} (with {\bf TypeScript \& NodeJS}), having designed and developed a large number of bespoke modules for a myriad of workloads and usecases.
\item Experience with {\bf VMware ESXi} and {\bf Xen} Hypervisor as virtualisation platforms, and administration of these systems.
\item Experience with the {\bf Atlassian} suite, including Jira, Confluence and Bitbucket.
\end{itemize}
\clearpage
\cvsection{Personal Experience}
I run a homelab for learning new software and practicing, containing a myriad of devices such as a pfSense router, Cisco switches and firewalls, HP and Dell rack servers running Xenserver and Docker, Ubiquiti hardware and a multitude of Raspberry Pi's.
I've recently delved into running a Kubernetes cluster at home and am in the process of moving personal workloads to it.
\smallskip
\cvsection[page2sidebar]{Previous Experience}
\cvevent{Senior DevOps Engineer}{The Instutitue for Environmental Analytics}{Apr 2020 -- Aug 2023}{Reading}
\begin{itemize}
\item Architected a WRF data pipeline to replace a set of manually configured on-prem VMs. Transitioned their infrastructure into AWS, utilising Step Functions to orchestrate AWS Batch jobs to run the generation in parallel. The rapid prototyping this allowed reduced turnaround time from 2 months to 2 days, and offered a decease in infrastructure and labour cost of over 90\%.
\item Transitioned the company from manually-managed/constructed VMs across multiple clouds/on-prem to fully Terraform-managed AWS infrastructure, introducing autoscaling, spot/reserved instance savings and made every host ephemeral
\item Transitioned the flagship product, Energy Metric (a SaaS renewable energy modelling webapp) from a single-VM manual deployment to a cloud-native, highly scalable model with CI/CD
\item Transitioned company to GitHub Actions with automatically provisioned ephemeral runners, allowing them to go from a single CI run taking up ~5 hours and only having a concurrency of 2 to permitting as many concurrent runs as necessary and taking around 30 minutes
\item Worked closely with development teams to understand their CI/CD usecases in order to best develop their automation to match their workflows
\item Built out and integrated tools such as Sentry, Rundeck, Slack-integrated bots, Prometheus \& Grafana
\item Introduced and trained development teams on Cloud concepts such as lambdas, cloud blob storage, and permissions and how to utilise them effectively when their projects move from local development environments to the cloud.
\end{itemize}
\cvevent{DevOps Engineer}{FICO}{Oct 2017 -- Apr 2020}{Reading}
\begin{itemize}
\item Assisted in transitioning from on-premise voice systems to AWS with a focus on infrastructure as code using CloudFormation
\item Spearheaded the effort to containerise existing services to run inside an AWS ECS cluster
\item Maintained on-premise datacentres running a mixture of CentOS7, RHEL6 and RHEL5 running on both bare-metal and XenServer hypervisors
\item Implemented and maintained CI/CD pipelines using Drone, CloudFormation and Jenkins
\item Fully developed and maintained a batch file import framework written in Node.JS designed to import millions of cases per day, converting various client formats to a standardised internal format
\end{itemize}
\divider
\cvevent{Student Developer}{Datel}{June 2015 -- Aug 2016}{Warrington}
\begin{itemize}
\item Development of bespoke Sage ERP implementations for customers
\item Web-based mobile development in Javascript and Node.JS, utilising Microsoft Vision to read customer receipts for a finance tracking system
\item An NFC based project to allow employees to clock in and out with a swipe of a card
\end{itemize}
\clearpage
\end{document}