Compare commits

..

No commits in common. "0c154cf32ac04170691167649cdcc3d7fb71054a" and "83033b0cb6528fd29a6abac5abac348062400468" have entirely different histories.

13 changed files with 115 additions and 8032 deletions

View File

@ -1,72 +1,69 @@
personal_ws-1.1 en 71 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
Grantham
Heymarket
Jinja
JuanCanham
Kaseya
Kaseya's
Kubernetes
Lamda
LinkedIn
Milkround
Monit
Mopidy
MusicBox
Musicbox
NBIM's
Norges
OAuth
Powershell
RaspberryPi
Rekognition Rekognition
Serverless Calify
Subreddit Cloudwatch
Supporttree JuanCanham
SysOps
SystemD
Terraform
TheMajority
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
.gitignore vendored
View File

@ -1,4 +1,3 @@
node_modules/ node_modules/
dist/ dist/
*~ *~
*.bak

View File

@ -1,2 +0,0 @@
[filtering]
ignorewarnings=url-whitespace

View File

@ -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

View File

@ -4,9 +4,11 @@ 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
@ -19,18 +21,11 @@ Capable of wearing whatever hat is needed for a given job.
## EMPLOYMENT ## EMPLOYMENT
### *Senior Cloud Engineer*, [DPR consulting](https://www.dpr.co.uk/) (2020-04 — 2021-10) ### *Open Source Developer*, [Self](https://juancanham.com) (2019-07 — Present)
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
### *Open Source Developer*, [Self](https://juancanham.com) (2019-07 — 2020-04)
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 tool to view twitter exports - Quickly Built a tool to view twitter exports
- Begun work on a module
- 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
@ -50,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
@ -63,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

View File

@ -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()

7885
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -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.*

View File

@ -1,8 +1,8 @@
{ {
"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",
@ -30,29 +30,15 @@
] ]
}, },
"work": [ "work": [
{
"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": "Self", "company": "Self",
"website": "https://juancanham.com", "website": "https://juancanham.com",
"position": "Open Source Developer", "position": "Open Source Developer",
"startDate": "2019-07", "startDate": "2019-07",
"endDate": "2020-04",
"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 tool to view twitter exports", "Quickly Built a tool to view twitter exports",
"Begun work on a module",
"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"
] ]
@ -89,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",
@ -111,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",

File diff suppressed because one or more lines are too long

View File

@ -5,12 +5,15 @@ 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: London city: London
county: Greater London county: Greater London
@ -75,44 +78,23 @@ certifications:
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: 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
- 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
end: 2020-04
highlights: highlights:
- Built a tool to view twitter exports - Quickly Built a tool to view twitter exports
- Begun work on a module
- 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: 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
@ -128,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]
@ -203,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]
@ -253,10 +238,16 @@ employment:
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
@ -340,11 +331,15 @@ employment:
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

View File

@ -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

View File

@ -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", [])