Compare commits
1 Commits
master
..
42786bdd92
| Author | SHA1 | Date | |
|---|---|---|---|
| 42786bdd92 |
@@ -1,5 +1 @@
|
|||||||
personal_repl-1.1 en 0
|
personal_repl-1.1 en 0
|
||||||
authoritive authoritative
|
|
||||||
maths Math
|
|
||||||
open-source sponsor's
|
|
||||||
ordinating coordinating
|
|
||||||
|
|||||||
+59
-65
@@ -1,75 +1,69 @@
|
|||||||
personal_ws-1.1 en 74
|
personal_ws-1.1 en 68
|
||||||
AAAAA
|
AAAAA
|
||||||
Ansible
|
RaspberryPi
|
||||||
AnthillPro
|
Grantham
|
||||||
AppStream
|
|
||||||
Atlassian
|
|
||||||
Calify
|
|
||||||
ChatOps
|
|
||||||
Cloudformation
|
|
||||||
Cloudreach
|
|
||||||
Cloudreach's
|
|
||||||
Cloudwatch
|
|
||||||
CodeDeploy
|
|
||||||
Cognito
|
|
||||||
Config
|
|
||||||
DevOps
|
DevOps
|
||||||
|
TheMajority
|
||||||
|
canham
|
||||||
|
statefull
|
||||||
|
Jinja
|
||||||
ElastiCache
|
ElastiCache
|
||||||
FastTrack
|
Atlassian
|
||||||
|
Lamda
|
||||||
|
backends
|
||||||
|
unmanaged
|
||||||
|
Subreddit
|
||||||
|
subreddit
|
||||||
|
Config
|
||||||
|
orchestrator
|
||||||
Github
|
Github
|
||||||
Gitlab
|
Gitlab
|
||||||
Gpodder
|
|
||||||
Grantham
|
|
||||||
Heymarket
|
|
||||||
Jinja
|
|
||||||
JuanCanham
|
|
||||||
Kaseya
|
|
||||||
Kaseya's
|
|
||||||
Kubernetes
|
|
||||||
Lamda
|
|
||||||
LinkedIn
|
|
||||||
Milkround
|
|
||||||
Monit
|
|
||||||
Mopidy
|
|
||||||
MusicBox
|
|
||||||
Musicbox
|
|
||||||
NBIM's
|
|
||||||
Norges
|
|
||||||
OAuth
|
|
||||||
Powershell
|
|
||||||
RaspberryPi
|
|
||||||
Rekognition
|
Rekognition
|
||||||
Sceptre
|
Calify
|
||||||
Serverless
|
Cloudwatch
|
||||||
Subreddit
|
JuanCanham
|
||||||
Supporttree
|
|
||||||
SysOps
|
|
||||||
SystemD
|
|
||||||
Terraform
|
|
||||||
TheMajority
|
|
||||||
backend
|
|
||||||
backends
|
|
||||||
canham
|
|
||||||
countryCode
|
|
||||||
datacentre
|
|
||||||
endDate
|
|
||||||
frontend
|
|
||||||
hackathon
|
|
||||||
hackathons
|
|
||||||
knowledgebase
|
|
||||||
natively
|
|
||||||
orchestrator
|
|
||||||
piRobotWars
|
|
||||||
prototyped
|
|
||||||
pythonic
|
pythonic
|
||||||
|
Cloudreach
|
||||||
|
Serverless
|
||||||
serverless
|
serverless
|
||||||
skunkworks
|
countryCode
|
||||||
startDate
|
SysOps
|
||||||
statefull
|
Powershell
|
||||||
|
Monit
|
||||||
|
Kaseya's
|
||||||
|
endDate
|
||||||
studyType
|
studyType
|
||||||
subreddit
|
Cloudreach's
|
||||||
subskills
|
FastTrack
|
||||||
unmanaged
|
piRobotWars
|
||||||
virtualised
|
Cloudformation
|
||||||
webapp
|
frontend
|
||||||
|
knowledgebase
|
||||||
|
Supporttree
|
||||||
whitepapers
|
whitepapers
|
||||||
|
prototyped
|
||||||
|
datacentre
|
||||||
|
skunkworks
|
||||||
|
Milkround
|
||||||
|
virtualised
|
||||||
|
Heymarket
|
||||||
|
Mopidy
|
||||||
|
CodeDeploy
|
||||||
|
Kaseya
|
||||||
|
subskills
|
||||||
|
hackathons
|
||||||
|
ChatOps
|
||||||
|
AppStream
|
||||||
|
SystemD
|
||||||
|
Musicbox
|
||||||
|
MusicBox
|
||||||
|
Norges
|
||||||
|
AnthillPro
|
||||||
|
hackathon
|
||||||
|
LinkedIn
|
||||||
|
NBIM's
|
||||||
|
natively
|
||||||
|
startDate
|
||||||
|
Kubernetes
|
||||||
|
Terraform
|
||||||
|
Ansible
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
dist/
|
dist/
|
||||||
*~
|
*~
|
||||||
*.bak
|
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
[filtering]
|
|
||||||
ignorewarnings=url-whitespace
|
|
||||||
@@ -9,7 +9,7 @@ help:
|
|||||||
@echo ' * all [clean install deploy-full]'
|
@echo ' * all [clean install deploy-full]'
|
||||||
@echo ' * local [lint validate build test]'
|
@echo ' * local [lint validate build test]'
|
||||||
@echo ' * deploy - does not clear the CDN'
|
@echo ' * deploy - does not clear the CDN'
|
||||||
@echo ' * deploy-full [local deploy clear post-test]'
|
@echo ' * deploy-full [deploy clear post-test]'
|
||||||
@echo ' * mrproper - removes node_modues'
|
@echo ' * mrproper - removes node_modues'
|
||||||
|
|
||||||
all: clean install deploy-full
|
all: clean install deploy-full
|
||||||
@@ -36,11 +36,10 @@ lint:
|
|||||||
cfn-lint deploy/cloudformation/*
|
cfn-lint deploy/cloudformation/*
|
||||||
|
|
||||||
prepare: clean resume.yaml
|
prepare: clean resume.yaml
|
||||||
mkdir -p dist/images/
|
|
||||||
./transform.py
|
./transform.py
|
||||||
./generate_qrcode.py "https://$(SITENAME)" QR
|
./generate_qrcode.py "https://$(SITENAME)" QR
|
||||||
cp -r images dist/
|
cp -r images dist/
|
||||||
rm dist/images/*~ || true
|
rm dist/images/*~
|
||||||
|
|
||||||
validate: prepare
|
validate: prepare
|
||||||
$(hackmyresume) validate dist/resume.json
|
$(hackmyresume) validate dist/resume.json
|
||||||
@@ -52,7 +51,7 @@ build: prepare
|
|||||||
test:
|
test:
|
||||||
$(linkchecker) dist/resume.html
|
$(linkchecker) dist/resume.html
|
||||||
|
|
||||||
deploy:
|
deploy: local
|
||||||
./deploy/deploy-cloudformation.sh $(SITENAME)
|
./deploy/deploy-cloudformation.sh $(SITENAME)
|
||||||
aws s3 sync --delete dist/ s3://$(subst .,-,$(SITENAME))
|
aws s3 sync --delete dist/ s3://$(subst .,-,$(SITENAME))
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ This repository contains
|
|||||||
* [A script to preform arbitrary transforms on yaml](transform.py)
|
* [A script to preform arbitrary transforms on yaml](transform.py)
|
||||||
* The tools to generate my host my CV:
|
* The tools to generate my host my CV:
|
||||||
* [cloudformation templates](deploy/cloudformation/)
|
* [cloudformation templates](deploy/cloudformation/)
|
||||||
* [scripts used to deploy them](deploy/)
|
* [scripts used to deploy them]((deploy/)
|
||||||
* [A makefile to tie it all together](Makefile)
|
* [A makefile to tie it all together](Makefile)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,14 +4,16 @@ Email: cv@juancanham.com
|
|||||||
|
|
||||||
Web: https://cv.juancanham.com
|
Web: https://cv.juancanham.com
|
||||||
|
|
||||||
A Cloud Engineer & Developer, with experience at a variety of companies, across a range of technologies
|
A Pragmatic Cloud "DevOps" Engineer, with experience at a variety of companies, across a range of technologies
|
||||||
driving both technological change as well as business focused outcomes.
|
driving both technological change as well as business focused outcomes.
|
||||||
Capable of wearing whatever hat is needed for a given job.
|
Capable of wearing whatever hat is needed for a given job, primarily working as both:
|
||||||
|
* an architect, aligning the technical solutions to the customers requirements
|
||||||
|
* a technical lead, both delivering code and guiding/mentoring/supporting teams as required.
|
||||||
|
|
||||||
|
|
||||||
## SKILLS
|
## SKILLS
|
||||||
|
|
||||||
- Programming: Python Ruby Bash JavaScript Dart Apex/Java Other Languages
|
- Programming: Python Ruby Bash JavaScript Apex/Java Other Languages
|
||||||
- AWS: Cloudformation IAM Lambda DynamoDB Core AWS services Additional AWS services
|
- AWS: Cloudformation IAM Lambda DynamoDB Core AWS services Additional AWS services
|
||||||
- DevOps tools and methodologies: IaC Immutability Configuration Management TDD - Infrastructure TDD - Application Build systems Containers Init systems Agile
|
- DevOps tools and methodologies: IaC Immutability Configuration Management TDD - Infrastructure TDD - Application Build systems Containers Init systems Agile
|
||||||
- Google: GCP Google deployment manager Google App Engine Google Apps
|
- Google: GCP Google deployment manager Google App Engine Google Apps
|
||||||
@@ -22,24 +24,11 @@ Capable of wearing whatever hat is needed for a given job.
|
|||||||
### *Open Source Developer*, [Self](https://juancanham.com) (2019-07 — Present)
|
### *Open Source Developer*, [Self](https://juancanham.com) (2019-07 — Present)
|
||||||
|
|
||||||
Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools
|
Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools
|
||||||
- Built a mobile app to showcase user sourced data, using Flutter and Dart
|
- Quickly Built a tool to view twitter exports
|
||||||
- Contributed to existing open source projects such as Gpodder and Gpodder.net
|
- Begun work on a module
|
||||||
- Built a tool to view twitter exports
|
|
||||||
- Built a website to highlight the problems with FPTP
|
- Built a website to highlight the problems with FPTP
|
||||||
- Built a tool to monitor activity on toxic internet communities
|
- Built a tool to monitor activity on toxic internet communities
|
||||||
|
|
||||||
### *Volunteer & Volunteer Coordinator*, (2022-01 — Present)
|
|
||||||
|
|
||||||
Volunteering at various organizations, including coordinating volunteers and donated resources.
|
|
||||||
|
|
||||||
### *Senior Cloud Engineer*, [DPR consulting](https://www.dpr.co.uk/) (2020-04 — 2021-10)
|
|
||||||
|
|
||||||
Full stack developer (including support & infrastructure engineering) for multiple customer facing serverless applications.
|
|
||||||
- Picked up Typescript and React and to deliver front-end improvements
|
|
||||||
- Improved build pipelines, to deliver CI while pushed quality left, by enforcing linting and coverage testing
|
|
||||||
- (Collectively) improved our processes significantly to much better reflect agile best practices
|
|
||||||
- Built and migrated to a multi-account structure with an access account deployed entirely as configuration
|
|
||||||
|
|
||||||
### *Cloud Systems Developer Lead*, [Cloudreach](https://www.cloudreach.com) (2014-03 — 2019-07)
|
### *Cloud Systems Developer Lead*, [Cloudreach](https://www.cloudreach.com) (2014-03 — 2019-07)
|
||||||
|
|
||||||
Worked on customer projects as a Lead/Architect and mentored a small team.
|
Worked on customer projects as a Lead/Architect and mentored a small team.
|
||||||
@@ -56,7 +45,7 @@ Worked with the leadership team to improve the System Developers role.
|
|||||||
|
|
||||||
### *Internal hackathons/skunkworks Developer*, [Cloudreach](https://www.cloudreach.com) (2012-02 — 2019-07)
|
### *Internal hackathons/skunkworks Developer*, [Cloudreach](https://www.cloudreach.com) (2012-02 — 2019-07)
|
||||||
|
|
||||||
|
While at Cloudreach, worked on various spikes and hackathons
|
||||||
- Built Automated tanks that used image recognition to move and fire at each other.
|
- Built Automated tanks that used image recognition to move and fire at each other.
|
||||||
- Built various useful internal tools, that remained in use for years
|
- Built various useful internal tools, that remained in use for years
|
||||||
- Built a variety of IaC tools, that made deployments easier
|
- Built a variety of IaC tools, that made deployments easier
|
||||||
@@ -69,7 +58,7 @@ Worked on technical projects on AWS, Google Apps & Salesforce both individually
|
|||||||
- Worked across 3 cloud platforms (Google, AWS, Salesforce)
|
- Worked across 3 cloud platforms (Google, AWS, Salesforce)
|
||||||
- Delivered difficult Google 2 Google migrations on tight deadlines
|
- Delivered difficult Google 2 Google migrations on tight deadlines
|
||||||
|
|
||||||
### *Support Engineer*, [Supporttree](http://supporttree.co.uk) (2010-01 — 2012-02)
|
### *Support Engineer*, [Supporttree](https://supporttree.co.uk) (2010-01 — 2012-02)
|
||||||
|
|
||||||
Full support for small businesses including end user systems, on-premise servers and cloud services.
|
Full support for small businesses including end user systems, on-premise servers and cloud services.
|
||||||
- Worked in a user facing role, for a variety of small businesses
|
- Worked in a user facing role, for a variety of small businesses
|
||||||
@@ -99,11 +88,9 @@ Full support for small businesses including end user systems, on-premise servers
|
|||||||
|
|
||||||
## INTERESTS
|
## INTERESTS
|
||||||
|
|
||||||
- VOLUNTEERING
|
|
||||||
|
|
||||||
- OPEN SOURCE & LINUX
|
- OPEN SOURCE & LINUX
|
||||||
|
|
||||||
- TRAVELING
|
- TRAVELLING
|
||||||
|
|
||||||
- PUNK ROCK, POLITICS & THE PUB
|
- PUNK ROCK, POLITICS & THE PUB
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ from qrcode import QRCode
|
|||||||
|
|
||||||
|
|
||||||
def generate_qrcode(site, filename):
|
def generate_qrcode(site, filename):
|
||||||
"""Function to generate QR code wth boarder of 1"""
|
""" Function to generate QR code wth boarder of 1 """
|
||||||
qrcode = QRCode(border=1)
|
qrcode = QRCode(border=1)
|
||||||
qrcode.add_data(site)
|
qrcode.add_data(site)
|
||||||
qrcode.make()
|
qrcode.make()
|
||||||
|
|||||||
Generated
-14938
File diff suppressed because it is too large
Load Diff
+7
-5
@@ -3,14 +3,16 @@
|
|||||||
"version": "0.9.0",
|
"version": "0.9.0",
|
||||||
"description": "Juan Canham's Resume/CV",
|
"description": "Juan Canham's Resume/CV",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fresh-theme-bootstrap": "git+https://git.juancanham.com/JuanCanham/fresh-theme-bootstrap.git",
|
"hackmyresume": "^1.8.0",
|
||||||
"fresh-theme-elegant": "git+https://git.juancanham.com/JuanCanham/fresh-theme-elegant.git#feature/interactive",
|
|
||||||
"hackmyresume": "git+https://git.juancanham.com/JuanCanham/HackMyResume.git#juan-canham-json-theme",
|
|
||||||
"jsonresume-theme-modern": "git+https://git.juancanham.com/JuanCanham/jsonresume-theme-modern.git",
|
|
||||||
"kcv-cli": "^1.3.0",
|
"kcv-cli": "^1.3.0",
|
||||||
"kcv-theme-fresh": "^0.0.4",
|
"kcv-theme-fresh": "^0.0.4",
|
||||||
"resume-cli": "^3.0.6"
|
"resume-cli": "^1.2.7",
|
||||||
|
"jsonresume-theme-modern": "git+https://git.juancanham.com/JuanCanham/jsonresume-theme-modern.git",
|
||||||
|
"fresh-theme-bootstrap": "git+https://git.juancanham.com/JuanCanham/fresh-theme-bootstrap.git",
|
||||||
|
"fresh-theme-elegant": "git+https://git.juancanham.com/JuanCanham/fresh-theme-elegant.git#feature/interactive",
|
||||||
|
"fresh-themes": "git+https://git.juancanham.com/JuanCanham/fresh-themes.git#feature/certifications",
|
||||||
},
|
},
|
||||||
|
"devDependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,5 +5,3 @@ pylint==2.*
|
|||||||
qrcode==6.*
|
qrcode==6.*
|
||||||
yamllint==1.20.*
|
yamllint==1.20.*
|
||||||
image==1.5.28
|
image==1.5.28
|
||||||
yq==2.*
|
|
||||||
niet==2.4.*
|
|
||||||
|
|||||||
+12
-39
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"basics": {
|
"basics": {
|
||||||
"name": "Juan Barry Manual Canham",
|
"name": "Juan Barry Manual Canham",
|
||||||
"label": "Cloud Engineer",
|
"label": "Cloud \"DevOps\" Engineer",
|
||||||
"summary": "A Cloud Engineer & Developer, with experience at a variety of companies, across a range of technologies\ndriving both technological change as well as business focused outcomes.\nCapable of wearing whatever hat is needed for a given job.\n",
|
"summary": "A Pragmatic Cloud \"DevOps\" Engineer, with experience at a variety of companies, across a range of technologies\ndriving both technological change as well as business focused outcomes.\nCapable of wearing whatever hat is needed for a given job, primarily working as both:\n* an architect, aligning the technical solutions to the customers requirements\n* a technical lead, both delivering code and guiding/mentoring/supporting teams as required.\n",
|
||||||
"website": "https://cv.juancanham.com",
|
"website": "https://cv.juancanham.com",
|
||||||
"email": "cv@juancanham.com",
|
"email": "cv@juancanham.com",
|
||||||
"picture": "images/QR.png",
|
"picture": "images/QR.png",
|
||||||
"location": {
|
"location": {
|
||||||
"city": "Oakland",
|
"city": "London",
|
||||||
"countryCode": "United States of America",
|
"countryCode": "England",
|
||||||
"region": "NA"
|
"region": "EU"
|
||||||
},
|
},
|
||||||
"profiles": [
|
"profiles": [
|
||||||
{
|
{
|
||||||
@@ -37,32 +37,12 @@
|
|||||||
"startDate": "2019-07",
|
"startDate": "2019-07",
|
||||||
"summary": "Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools",
|
"summary": "Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools",
|
||||||
"highlights": [
|
"highlights": [
|
||||||
"Built a mobile app to showcase user sourced data, using Flutter and Dart",
|
"Quickly Built a tool to view twitter exports",
|
||||||
"Contributed to existing open source projects such as Gpodder and Gpodder.net",
|
"Begun work on a module",
|
||||||
"Built a tool to view twitter exports",
|
|
||||||
"Built a website to highlight the problems with FPTP",
|
"Built a website to highlight the problems with FPTP",
|
||||||
"Built a tool to monitor activity on toxic internet communities"
|
"Built a tool to monitor activity on toxic internet communities"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"position": "Volunteer & Volunteer Coordinator",
|
|
||||||
"startDate": "2022-01",
|
|
||||||
"summary": "Volunteering at various organizations, including coordinating volunteers and donated resources."
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"company": "DPR consulting",
|
|
||||||
"website": "https://www.dpr.co.uk/",
|
|
||||||
"position": "Senior Cloud Engineer",
|
|
||||||
"startDate": "2020-04",
|
|
||||||
"endDate": "2021-10",
|
|
||||||
"summary": "Full stack developer (including support & infrastructure engineering) for multiple customer facing serverless applications.",
|
|
||||||
"highlights": [
|
|
||||||
"Picked up Typescript and React and to deliver front-end improvements",
|
|
||||||
"Improved build pipelines, to deliver CI while pushed quality left, by enforcing linting and coverage testing",
|
|
||||||
"(Collectively) improved our processes significantly to much better reflect agile best practices",
|
|
||||||
"Built and migrated to a multi-account structure with an access account deployed entirely as configuration"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"company": "Cloudreach",
|
"company": "Cloudreach",
|
||||||
"website": "https://www.cloudreach.com",
|
"website": "https://www.cloudreach.com",
|
||||||
@@ -95,6 +75,7 @@
|
|||||||
"position": "Internal hackathons/skunkworks Developer",
|
"position": "Internal hackathons/skunkworks Developer",
|
||||||
"startDate": "2012-02",
|
"startDate": "2012-02",
|
||||||
"endDate": "2019-07",
|
"endDate": "2019-07",
|
||||||
|
"summary": "While at Cloudreach, worked on various spikes and hackathons",
|
||||||
"highlights": [
|
"highlights": [
|
||||||
"Built Automated tanks that used image recognition to move and fire at each other.",
|
"Built Automated tanks that used image recognition to move and fire at each other.",
|
||||||
"Built various useful internal tools, that remained in use for years",
|
"Built various useful internal tools, that remained in use for years",
|
||||||
@@ -117,7 +98,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"company": "Supporttree",
|
"company": "Supporttree",
|
||||||
"website": "http://supporttree.co.uk",
|
"website": "https://supporttree.co.uk",
|
||||||
"position": "Support Engineer",
|
"position": "Support Engineer",
|
||||||
"startDate": "2010-01",
|
"startDate": "2010-01",
|
||||||
"endDate": "2012-02",
|
"endDate": "2012-02",
|
||||||
@@ -138,8 +119,8 @@
|
|||||||
"institution": "King's School Grantham",
|
"institution": "King's School Grantham",
|
||||||
"gpa": "AAAAA",
|
"gpa": "AAAAA",
|
||||||
"courses": [
|
"courses": [
|
||||||
"Math",
|
"Maths",
|
||||||
"Further Math",
|
"Further Maths",
|
||||||
"Physics",
|
"Physics",
|
||||||
"Chemistry",
|
"Chemistry",
|
||||||
"Spanish"
|
"Spanish"
|
||||||
@@ -173,11 +154,6 @@
|
|||||||
"level": "Knowledgeable",
|
"level": "Knowledgeable",
|
||||||
"summary": "Experience with both frontend development and Node to deliver automation"
|
"summary": "Experience with both frontend development and Node to deliver automation"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "Dart",
|
|
||||||
"level": "Basic",
|
|
||||||
"summary": "Language used for Flutter cross platform mobile platform"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Apex/Java",
|
"name": "Apex/Java",
|
||||||
"level": "Basic",
|
"level": "Basic",
|
||||||
@@ -320,14 +296,11 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"interests": [
|
"interests": [
|
||||||
{
|
|
||||||
"name": "Volunteering"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "Open Source & Linux"
|
"name": "Open Source & Linux"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Traveling"
|
"name": "Travelling"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Punk Rock, Politics & the Pub"
|
"name": "Punk Rock, Politics & the Pub"
|
||||||
|
|||||||
+1
-1
File diff suppressed because one or more lines are too long
+51
-79
@@ -5,19 +5,21 @@ contact:
|
|||||||
website: https://cv.juancanham.com
|
website: https://cv.juancanham.com
|
||||||
|
|
||||||
info:
|
info:
|
||||||
label: Cloud Engineer
|
label: Cloud "DevOps" Engineer
|
||||||
image: images/QR.png
|
image: images/QR.png
|
||||||
brief: |
|
brief: |
|
||||||
A Cloud Engineer & Developer, with experience at a variety of companies, across a range of technologies
|
A Pragmatic Cloud "DevOps" Engineer, with experience at a variety of companies, across a range of technologies
|
||||||
driving both technological change as well as business focused outcomes.
|
driving both technological change as well as business focused outcomes.
|
||||||
Capable of wearing whatever hat is needed for a given job.
|
Capable of wearing whatever hat is needed for a given job, primarily working as both:
|
||||||
|
* an architect, aligning the technical solutions to the customers requirements
|
||||||
|
* a technical lead, both delivering code and guiding/mentoring/supporting teams as required.
|
||||||
|
|
||||||
location:
|
location:
|
||||||
city: Oakland
|
city: London
|
||||||
county: Alameda
|
county: Greater London
|
||||||
state: California
|
country: England
|
||||||
country: United States of America
|
region: EU
|
||||||
region: NA
|
countryCode: GB
|
||||||
countryCode: US
|
|
||||||
|
|
||||||
social:
|
social:
|
||||||
- label: Git
|
- label: Git
|
||||||
@@ -34,7 +36,7 @@ social:
|
|||||||
url: https://github.com/juancanham
|
url: https://github.com/juancanham
|
||||||
|
|
||||||
certifications:
|
certifications:
|
||||||
- organization: AWS
|
- organisation: AWS
|
||||||
certificates:
|
certificates:
|
||||||
- name: Solutions Architect
|
- name: Solutions Architect
|
||||||
level: Professional
|
level: Professional
|
||||||
@@ -51,7 +53,7 @@ certifications:
|
|||||||
- name: Developer
|
- name: Developer
|
||||||
level: Associate
|
level: Associate
|
||||||
logo: AWS-Developer-Associate.png
|
logo: AWS-Developer-Associate.png
|
||||||
- organization: Google
|
- organisation: Google
|
||||||
certificates:
|
certificates:
|
||||||
- name: Cloud Architect
|
- name: Cloud Architect
|
||||||
level: Professional
|
level: Professional
|
||||||
@@ -60,53 +62,39 @@ certifications:
|
|||||||
level: Professional
|
level: Professional
|
||||||
logo: GCP-Data-Engineer-Pro.png
|
logo: GCP-Data-Engineer-Pro.png
|
||||||
- name: Google Apps Deployment Specialist
|
- name: Google Apps Deployment Specialist
|
||||||
- organization: Linux Professional Institute
|
- organisation: Linux Professional Institute
|
||||||
certificates:
|
certificates:
|
||||||
- name: LPCI-1
|
- name: LPCI-1
|
||||||
logo: LPCI-1.png
|
logo: LPCI-1.png
|
||||||
- organization: Salesforce
|
- organisation: Salesforce
|
||||||
certificates:
|
certificates:
|
||||||
- name: Force.com Developer
|
- name: Force.com Developer
|
||||||
logo: Salesforce-Platform-Developer.png
|
logo: Salesforce-Platform-Developer.png
|
||||||
- name: Administrator
|
- name: Administrator
|
||||||
logo: Salesforce-administrator.png
|
logo: Salesforce-administrator.png
|
||||||
- organization: Microsoft
|
- organisation: Microsoft
|
||||||
certificates:
|
certificates:
|
||||||
- name: Windows 7, Configuration
|
- name: Windows 7, Configuration
|
||||||
level: Microsoft Certified Technology Specialist
|
level: Microsoft Certified Technology Specialist
|
||||||
|
|
||||||
employment:
|
employment:
|
||||||
summary: "10+ years cloud infrastructure experience as developer, engineer, technical lead & architect"
|
summary: "9+ years cloud infrastructure experience as engineer, technical lead & architect"
|
||||||
history:
|
history:
|
||||||
- employer: Self
|
- employer: Self
|
||||||
url: https://juancanham.com
|
url: https://juancanham.com
|
||||||
|
technologies: [Cloud, AWS, GCP, Azure, SSO, Open Source]
|
||||||
position: Open Source Developer
|
position: Open Source Developer
|
||||||
summary: Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools
|
summary: Spending a few months developing tools to make engineering in the clouds easier. And other assorted tools
|
||||||
start: 2019-07
|
start: 2019-07
|
||||||
highlights:
|
highlights:
|
||||||
- Built a mobile app to showcase user sourced data, using Flutter and Dart
|
- Quickly Built a tool to view twitter exports
|
||||||
- Contributed to existing open source projects such as Gpodder and Gpodder.net
|
- Begun work on a module
|
||||||
- Built a tool to view twitter exports
|
|
||||||
- Built a website to highlight the problems with FPTP
|
- Built a website to highlight the problems with FPTP
|
||||||
- Built a tool to monitor activity on toxic internet communities
|
- Built a tool to monitor activity on toxic internet communities
|
||||||
projects:
|
projects:
|
||||||
- name: Mobile location based-app
|
|
||||||
summary: Mobile app built on Flutter/Dart. With the backend on GCP (Firebase & Storage)
|
|
||||||
description: |
|
|
||||||
Built a prototype app for a customer.
|
|
||||||
Mobile app built on Flutter/Dart with support for Android & iOS, but only built on Android for now.
|
|
||||||
The app combined camera & location data, with a combination of authoritative and user submitted data to inform users about
|
|
||||||
the venues which the app supported.
|
|
||||||
The backend was provided by GCP, entirely storage based for scale & cost purposes, using Firebase for authentication.
|
|
||||||
While the project is currently still a prototype, the front & backend are functional.
|
|
||||||
technologies: [Android, Flutter, Dart, GCP]
|
|
||||||
- name: Gpodder & Gpodder.net updates
|
|
||||||
summary: Contribute bug fixes & features to Gpodder & Gpodder.net
|
|
||||||
url: https://gpodder.net
|
|
||||||
technologies: [Python, GTK, Django]
|
|
||||||
- name: Offline Twitter Export Viewer
|
- name: Offline Twitter Export Viewer
|
||||||
summary: Simple tool to view twitter exports offline
|
summary: Simple tool to view twitter exports offline
|
||||||
url: https://gitlab.com/RiotingPacifist/twitter-export-viewer
|
url: https://gitlab.com/RitoingPacifst/offline-twitter-export-viewer
|
||||||
- name: Generic AWS Saml CLI (WIP)
|
- name: Generic AWS Saml CLI (WIP)
|
||||||
summary: Generic SAML tool for AWS, to work with multiple providers and multiple backends using a modular pythonic design.
|
summary: Generic SAML tool for AWS, to work with multiple providers and multiple backends using a modular pythonic design.
|
||||||
- name: TheMajority.uk
|
- name: TheMajority.uk
|
||||||
@@ -115,31 +103,6 @@ employment:
|
|||||||
- name: Subreddit Monitor
|
- name: Subreddit Monitor
|
||||||
summary: Serverless Python bot, to monitor subreddit activity for cross-posts and notify users
|
summary: Serverless Python bot, to monitor subreddit activity for cross-posts and notify users
|
||||||
|
|
||||||
- position: Volunteer & Volunteer Coordinator
|
|
||||||
summary: Volunteering at various organizations, including coordinating volunteers and donated resources.
|
|
||||||
start: 2022-01
|
|
||||||
|
|
||||||
- employer: DPR consulting
|
|
||||||
url: https://www.dpr.co.uk/
|
|
||||||
technologies: [AWS, Lambda, Typescript, React, Node, OAuth, Cognito, Dynamo, SQL, Cloudformation]
|
|
||||||
position: Senior Cloud Engineer
|
|
||||||
summary: Full stack developer (including support & infrastructure engineering) for multiple customer facing serverless applications.
|
|
||||||
start: 2020-04
|
|
||||||
end: 2021-10
|
|
||||||
highlights:
|
|
||||||
- Picked up Typescript and React and to deliver front-end improvements
|
|
||||||
- Improved build pipelines, to deliver CI while pushed quality left, by enforcing linting and coverage testing
|
|
||||||
- (Collectively) improved our processes significantly to much better reflect agile best practices
|
|
||||||
- Built and migrated to a multi-account structure with an access account deployed entirely as configuration
|
|
||||||
projects:
|
|
||||||
- name: Broker ID
|
|
||||||
url: https://www.brokerid.co.uk/
|
|
||||||
summary: An SSO solution for Mortgage Brokers
|
|
||||||
- name: Broker ID Data
|
|
||||||
url: https://data.brokerid.co.uk
|
|
||||||
summary: Providing information from multiple sources for FCA regulated firms, both via a webapp and in backwards compatible extracts
|
|
||||||
- name: Distribution Hub
|
|
||||||
summary: A service to enable brokers to search and track multiple lender systems mortgage application on
|
|
||||||
|
|
||||||
- position: Cloud Systems Developer Lead
|
- position: Cloud Systems Developer Lead
|
||||||
summary: Worked on customer projects as a Lead/Architect and mentored a small team.
|
summary: Worked on customer projects as a Lead/Architect and mentored a small team.
|
||||||
@@ -147,7 +110,9 @@ employment:
|
|||||||
url: https://www.cloudreach.com
|
url: https://www.cloudreach.com
|
||||||
description: |
|
description: |
|
||||||
Worked on customer projects as a Tech Lead/Architect.
|
Worked on customer projects as a Tech Lead/Architect.
|
||||||
Managed a team of 3 or 4 engineers within Cloudreach, making sure they got the most out of their role.
|
Managed a team of 3 or 4 engineers within Cloudreach, making sure they got the most out of their role at Cloudreach,
|
||||||
|
aligning the individuals personal development plans both with Cloudreach's goals and their longer term career trajectories.
|
||||||
|
It was particularly rewarding was getting team members of promoted to Tech-lead level.
|
||||||
start: 2014-03
|
start: 2014-03
|
||||||
end: 2019-07
|
end: 2019-07
|
||||||
keywords: [Leadership, Mentoring, Architect, Tech Lead]
|
keywords: [Leadership, Mentoring, Architect, Tech Lead]
|
||||||
@@ -161,7 +126,7 @@ employment:
|
|||||||
customer: Norges Bank Investment Management
|
customer: Norges Bank Investment Management
|
||||||
summary: Formed part of the CCOE supporting NBIM's datacentre exit onto immutable infrastructure in AWS
|
summary: Formed part of the CCOE supporting NBIM's datacentre exit onto immutable infrastructure in AWS
|
||||||
description: |
|
description: |
|
||||||
NBIM had an aggressive migration strategy, based on a standardized pipeline approach in order to
|
NBIM had an aggressive migration strategy, based on a standardised pipeline approach in order to
|
||||||
re-platform 150 applications into immutably deployed services within 8 months.
|
re-platform 150 applications into immutably deployed services within 8 months.
|
||||||
As part of the CCOE, helped build and maintain the pipeline (Cloudformation, Ansible, Packer, Jinja,
|
As part of the CCOE, helped build and maintain the pipeline (Cloudformation, Ansible, Packer, Jinja,
|
||||||
Powershell) in order to achieve this.
|
Powershell) in order to achieve this.
|
||||||
@@ -222,7 +187,8 @@ employment:
|
|||||||
url: https://www.cloudreach.com
|
url: https://www.cloudreach.com
|
||||||
description: |
|
description: |
|
||||||
Worked with the leadership team to improve the System Developers role.
|
Worked with the leadership team to improve the System Developers role.
|
||||||
This included both technical tooling and non-technical initiatives.
|
This included both technical tooling and non-technical initiatives, processes, such as training programs,
|
||||||
|
interview processes and the graduate program.
|
||||||
start: 2016-06
|
start: 2016-06
|
||||||
end: 2019-07
|
end: 2019-07
|
||||||
keywords: [Strategy, Vision, Internal, Personal Development]
|
keywords: [Strategy, Vision, Internal, Personal Development]
|
||||||
@@ -256,26 +222,32 @@ employment:
|
|||||||
summary: Responsible for refining and updating the interview process
|
summary: Responsible for refining and updating the interview process
|
||||||
description: |
|
description: |
|
||||||
Refined the interview process through two major iterations,
|
Refined the interview process through two major iterations,
|
||||||
First standardizing the process across all our European and American offices,
|
First standardising the process across all our European and American offices,
|
||||||
being more prescriptive in terms of scoring.
|
being more prescriptive in terms of scoring.
|
||||||
The second introduced somewhat objective scoring criteria, while still giving interviewers enough scope to
|
The second introduced somewhat objective scoring criteria, while still giving interviewers enough scope to
|
||||||
keywords: [Interviews, Metrics]
|
keywords: [Interviews, Metrics]
|
||||||
- name: Unified Chatroom system & Knowledge base
|
- name: Unified Chatroom system & Knowledge base
|
||||||
summary: Helped establish a company wide unified Chatroom system & Knowledge base.
|
summary: Helped establish a company wide unified Chatroom system & Knowledge base.
|
||||||
description: |
|
description: |
|
||||||
Standardizing the company on a single chat and knowledge base, made it much easier for new colleagues to get up to
|
Standardising the company on a single chat and knowledge base, made it much easier for new colleagues to get up to
|
||||||
speed. Most of this was focusing on making the case for unifying the tooling (in this case Slack and Atlassian),
|
speed. Most of this was focusing on making the case for unifying the tooling (in this case Slack and Atlassian),
|
||||||
making sure there was a path forward for all the teams involved that wasn't seen as a regression was important.
|
making sure there was a path forward for all the teams involved that wasn't seen as a regression was important.
|
||||||
The end result was much more cross-department knowledge sharing, mostly along technical lines,
|
The end result was much more cross-department knowledge sharing, mostly along technical lines,
|
||||||
however it also helped organize events (both globally and office specific).
|
however it also helped organise events (both globally and office specific).
|
||||||
keywords: [ChatOps, Knowledge Sharing]
|
keywords: [ChatOps, Knowledge Sharing]
|
||||||
technologies: [Slack]
|
technologies: [Slack]
|
||||||
|
|
||||||
- position: Internal hackathons/skunkworks Developer
|
- position: Internal hackathons/skunkworks Developer
|
||||||
|
summary: While at Cloudreach, worked on various spikes and hackathons
|
||||||
employer: Cloudreach
|
employer: Cloudreach
|
||||||
url: https://www.cloudreach.com
|
url: https://www.cloudreach.com
|
||||||
|
description: |
|
||||||
|
Used various competitions and opportunities to build prototypes to demonstrate feasibility of tools,
|
||||||
|
as they were built over short periods of time, they were not production ready,
|
||||||
|
however they worked and often fed into the approaches used in projects.
|
||||||
start: 2012-02
|
start: 2012-02
|
||||||
end: 2019-07
|
end: 2019-07
|
||||||
|
keywords: [hackathon]
|
||||||
highlights:
|
highlights:
|
||||||
- Built Automated tanks that used image recognition to move and fire at each other.
|
- Built Automated tanks that used image recognition to move and fire at each other.
|
||||||
- Built various useful internal tools, that remained in use for years
|
- Built various useful internal tools, that remained in use for years
|
||||||
@@ -319,7 +291,7 @@ employment:
|
|||||||
Part of the team doing the initial roll out to replace legacy CRM systems, did the initial requirements gathering,
|
Part of the team doing the initial roll out to replace legacy CRM systems, did the initial requirements gathering,
|
||||||
then matched the existing processes to those of Salesforce to fully automate the process for transforming
|
then matched the existing processes to those of Salesforce to fully automate the process for transforming
|
||||||
digital media leads to cash.
|
digital media leads to cash.
|
||||||
This involved both customizing Salesforce objects/processes and writing apex triggers and classes
|
This involved both customising Salesforce objects/processes and writing apex triggers and classes
|
||||||
(along with the tests required by the platform).
|
(along with the tests required by the platform).
|
||||||
keywords: [Processes]
|
keywords: [Processes]
|
||||||
technologies: [Salesforce, Apex, SOQL]
|
technologies: [Salesforce, Apex, SOQL]
|
||||||
@@ -333,7 +305,7 @@ employment:
|
|||||||
developed and rolled out a unified platform & development kit to simplify application and
|
developed and rolled out a unified platform & development kit to simplify application and
|
||||||
infrastructure, build, deployment, monitoring and support,
|
infrastructure, build, deployment, monitoring and support,
|
||||||
while reducing the overall support burden at the company by,
|
while reducing the overall support burden at the company by,
|
||||||
helping other teams standardize on the platform where practical.
|
helping other teams standardise on the platform where practical.
|
||||||
- name: Google to Google Migrations
|
- name: Google to Google Migrations
|
||||||
customer: Various (Milkround, News UK, etc)
|
customer: Various (Milkround, News UK, etc)
|
||||||
summary: Helped migrate various customers between Google Apps accounts
|
summary: Helped migrate various customers between Google Apps accounts
|
||||||
@@ -349,21 +321,25 @@ employment:
|
|||||||
summary: Helped migrate various customers between Google Apps accounts
|
summary: Helped migrate various customers between Google Apps accounts
|
||||||
keywords: [Migration, User Facing]
|
keywords: [Migration, User Facing]
|
||||||
technologies: [Google Apps, Python, AWS]
|
technologies: [Google Apps, Python, AWS]
|
||||||
- name: Teletext Holidays Optimization
|
- name: Teletext Holidays Optimisation
|
||||||
customer: Teletext Holidays
|
customer: Teletext Holidays
|
||||||
summary: Provided guidance and recommendations for frontend optimization of the Teletext Holidays website
|
summary: Provided guidance and recommendations for frontend optimisation of the Teletext Holidays website
|
||||||
keywords: [Frontend, Web, Optimization]
|
keywords: [Frontend, Web, Optimisation]
|
||||||
technologies: [JavaScript, Web]
|
technologies: [JavaScript, Web]
|
||||||
|
|
||||||
- employer: Supporttree
|
- employer: Supporttree
|
||||||
position: Support Engineer
|
position: Support Engineer
|
||||||
summary: Full support for small businesses including end user systems, on-premise servers and cloud services.
|
summary: Full support for small businesses including end user systems, on-premise servers and cloud services.
|
||||||
description: |
|
description: |
|
||||||
Providing 1st to 3rd line support of Desktops (Windows and OS X) for small businesses.
|
Providing 1st to 3rd line support of Desktops (Windows and OS X),
|
||||||
In addition to end-user support, also implemented several projects & pushed for automation whenever possible.
|
Server (physical and virtualised) & Services (in-house and cloud based) for small businesses.
|
||||||
|
In addition to end-user support, also implemented several projects.
|
||||||
|
While the main toolkit for automation was Kaseya's custom DSL, pushed for automation whenever possible,
|
||||||
|
usually making use of either custom code or portable GNU tools.
|
||||||
start: 2010-01
|
start: 2010-01
|
||||||
end: 2012-02
|
end: 2012-02
|
||||||
url: http://supporttree.co.uk
|
url: https://supporttree.co.uk
|
||||||
|
keywords: [User Facing]
|
||||||
technologies: [Windows, OS X, Linux, Networking]
|
technologies: [Windows, OS X, Linux, Networking]
|
||||||
highlights:
|
highlights:
|
||||||
- Worked in a user facing role, for a variety of small businesses
|
- Worked in a user facing role, for a variety of small businesses
|
||||||
@@ -382,8 +358,8 @@ education:
|
|||||||
end: 2006-07
|
end: 2006-07
|
||||||
grade: AAAAA
|
grade: AAAAA
|
||||||
curriculum:
|
curriculum:
|
||||||
- Math
|
- Maths
|
||||||
- Further Math
|
- Further Maths
|
||||||
- Physics
|
- Physics
|
||||||
- Chemistry
|
- Chemistry
|
||||||
- Spanish
|
- Spanish
|
||||||
@@ -406,9 +382,6 @@ skills:
|
|||||||
- name: JavaScript
|
- name: JavaScript
|
||||||
level: Knowledgeable
|
level: Knowledgeable
|
||||||
summary: Experience with both frontend development and Node to deliver automation
|
summary: Experience with both frontend development and Node to deliver automation
|
||||||
- name: Dart
|
|
||||||
level: Basic
|
|
||||||
summary: Language used for Flutter cross platform mobile platform
|
|
||||||
- name: Apex/Java
|
- name: Apex/Java
|
||||||
level: Basic
|
level: Basic
|
||||||
summary: Primary language used for Salesforce development
|
summary: Primary language used for Salesforce development
|
||||||
@@ -497,9 +470,8 @@ languages:
|
|||||||
fluency: Native
|
fluency: Native
|
||||||
|
|
||||||
interests:
|
interests:
|
||||||
- name: Volunteering
|
|
||||||
- name: Open Source & Linux
|
- name: Open Source & Linux
|
||||||
- name: Traveling
|
- name: Travelling
|
||||||
- name: Punk Rock, Politics & the Pub
|
- name: Punk Rock, Politics & the Pub
|
||||||
|
|
||||||
meta:
|
meta:
|
||||||
|
|||||||
+6
-6
@@ -15,9 +15,9 @@ generate:
|
|||||||
- darkly
|
- darkly
|
||||||
- superhero
|
- superhero
|
||||||
- cerulean
|
- cerulean
|
||||||
kcv: []
|
kcv:
|
||||||
# - flat
|
- flat
|
||||||
# - modern
|
- modern
|
||||||
full:
|
full:
|
||||||
plain:
|
plain:
|
||||||
- node_modules/fresh-theme-elegant
|
- node_modules/fresh-theme-elegant
|
||||||
@@ -27,7 +27,7 @@ links:
|
|||||||
- name: PDF
|
- name: PDF
|
||||||
url: resume.pdf
|
url: resume.pdf
|
||||||
- name: markdown
|
- name: markdown
|
||||||
url: https://git.riotingpacifist.net/JuanCanham/juan-canham-resume/src/branch/master/Resume.md
|
url: https://git.juancanham.com/JuanCanham/juan-canham-resume/Resume.md
|
||||||
- name: yaml
|
- name: yaml
|
||||||
url: resume.yaml
|
url: resume.yaml
|
||||||
|
|
||||||
@@ -40,8 +40,8 @@ links:
|
|||||||
- Modern
|
- Modern
|
||||||
- superhero
|
- superhero
|
||||||
- cerulean
|
- cerulean
|
||||||
# - kcv-flat
|
- kcv-flat
|
||||||
# - kcv-modern
|
- kcv-modern
|
||||||
- group: formats
|
- group: formats
|
||||||
links:
|
links:
|
||||||
- name: json
|
- name: json
|
||||||
|
|||||||
+3
-3
@@ -10,7 +10,7 @@ import yaml
|
|||||||
|
|
||||||
# pylint: disable=missing-function-docstring
|
# pylint: disable=missing-function-docstring
|
||||||
def main():
|
def main():
|
||||||
with open("resume.yaml", encoding="utf-8") as file:
|
with open("resume.yaml") as file:
|
||||||
resume = yaml.load(file, Loader=yaml.BaseLoader)
|
resume = yaml.load(file, Loader=yaml.BaseLoader)
|
||||||
|
|
||||||
transform_and_write("full", make_full, resume)
|
transform_and_write("full", make_full, resume)
|
||||||
@@ -19,7 +19,7 @@ def main():
|
|||||||
|
|
||||||
def write_file(name, data):
|
def write_file(name, data):
|
||||||
filename = os.path.join("dist", name + ".json")
|
filename = os.path.join("dist", name + ".json")
|
||||||
with open(filename, "w", encoding="utf-8") as file:
|
with open(filename, "w") as file:
|
||||||
json.dump(data, file)
|
json.dump(data, file)
|
||||||
|
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ def make_fresh(data):
|
|||||||
|
|
||||||
|
|
||||||
def make_full(data):
|
def make_full(data):
|
||||||
with open("settings.yaml", encoding="utf-8") as file:
|
with open("settings.yaml") as file:
|
||||||
data["settings"] = yaml.load(file, Loader=yaml.BaseLoader)
|
data["settings"] = yaml.load(file, Loader=yaml.BaseLoader)
|
||||||
|
|
||||||
tags = data.get("tags", [])
|
tags = data.get("tags", [])
|
||||||
|
|||||||
Reference in New Issue
Block a user