Compare commits

..

4 Commits

Author SHA1 Message Date
aa860dc876 move to US 2022-04-27 12:51:29 -07:00
f9af7f5ecf fix depenencies 2022-04-27 12:49:43 -07:00
0c154cf32a Add DPR to resume 2021-09-20 15:59:30 +01:00
91f58fd1da fix build dependenies 2021-09-20 15:59:08 +01:00
15 changed files with 15171 additions and 150 deletions

View File

@ -1 +1,5 @@
personal_repl-1.1 en 0 personal_repl-1.1 en 0
authoritive authoritative
maths Math
open-source sponsor's
ordinating coordinating

View File

@ -1,69 +1,75 @@
personal_ws-1.1 en 68 personal_ws-1.1 en 74
AAAAA AAAAA
RaspberryPi Ansible
Grantham AnthillPro
DevOps AppStream
TheMajority
canham
statefull
Jinja
ElastiCache
Atlassian Atlassian
Lamda Calify
backends ChatOps
unmanaged Cloudformation
Subreddit Cloudreach
subreddit Cloudreach's
Cloudwatch
CodeDeploy
Cognito
Config Config
orchestrator DevOps
ElastiCache
FastTrack
Github Github
Gitlab Gitlab
Rekognition Gpodder
Calify Grantham
Cloudwatch
JuanCanham
pythonic
Cloudreach
Serverless
serverless
countryCode
SysOps
Powershell
Monit
Kaseya's
endDate
studyType
Cloudreach's
FastTrack
piRobotWars
Cloudformation
frontend
knowledgebase
Supporttree
whitepapers
prototyped
datacentre
skunkworks
Milkround
virtualised
Heymarket Heymarket
Mopidy Jinja
CodeDeploy JuanCanham
Kaseya Kaseya
subskills Kaseya's
hackathons
ChatOps
AppStream
SystemD
Musicbox
MusicBox
Norges
AnthillPro
hackathon
LinkedIn
NBIM's
natively
startDate
Kubernetes Kubernetes
Lamda
LinkedIn
Milkround
Monit
Mopidy
MusicBox
Musicbox
NBIM's
Norges
OAuth
Powershell
RaspberryPi
Rekognition
Sceptre
Serverless
Subreddit
Supporttree
SysOps
SystemD
Terraform Terraform
Ansible TheMajority
backend
backends
canham
countryCode
datacentre
endDate
frontend
hackathon
hackathons
knowledgebase
natively
orchestrator
piRobotWars
prototyped
pythonic
serverless
skunkworks
startDate
statefull
studyType
subreddit
subskills
unmanaged
virtualised
webapp
whitepapers

1
.gitignore vendored
View File

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

2
.linkcheckerrc Normal file
View File

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

View File

@ -36,10 +36,11 @@ 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/*~ rm dist/images/*~ || true
validate: prepare validate: prepare
$(hackmyresume) validate dist/resume.json $(hackmyresume) validate dist/resume.json

View File

@ -4,16 +4,14 @@ Email: cv@juancanham.com
Web: https://cv.juancanham.com Web: https://cv.juancanham.com
A Pragmatic Cloud "DevOps" Engineer, with experience at a variety of companies, across a range of technologies A Cloud Engineer & Developer, 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, primarily working as both: Capable of wearing whatever hat is needed for a given job.
* 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 Apex/Java Other Languages - Programming: Python Ruby Bash JavaScript Dart 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
@ -24,11 +22,24 @@ Capable of wearing whatever hat is needed for a given job, primarily working as
### *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
- Quickly Built a tool to view twitter exports - Built a mobile app to showcase user sourced data, using Flutter and Dart
- Begun work on a module - Contributed to existing open source projects such as Gpodder and Gpodder.net
- 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.
@ -45,7 +56,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
@ -58,7 +69,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](https://supporttree.co.uk) (2010-01 — 2012-02) ### *Support Engineer*, [Supporttree](http://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
@ -88,9 +99,11 @@ Full support for small businesses including end user systems, on-premise servers
## INTERESTS ## INTERESTS
- VOLUNTEERING
- OPEN SOURCE & LINUX - OPEN SOURCE & LINUX
- TRAVELLING - TRAVELING
- PUNK ROCK, POLITICS & THE PUB - PUNK ROCK, POLITICS & THE PUB

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

14938
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -3,15 +3,14 @@
"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",
"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", "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": "^1.2.7", "resume-cli": "^3.0.6"
"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"
}, },
"devDependencies": {},
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },

View File

@ -5,3 +5,5 @@ 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,15 +1,15 @@
{ {
"basics": { "basics": {
"name": "Juan Barry Manual Canham", "name": "Juan Barry Manual Canham",
"label": "Cloud \"DevOps\" Engineer", "label": "Cloud Engineer",
"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", "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",
"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": "London", "city": "Oakland",
"countryCode": "England", "countryCode": "United States of America",
"region": "EU" "region": "NA"
}, },
"profiles": [ "profiles": [
{ {
@ -37,12 +37,32 @@
"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": [
"Quickly Built a tool to view twitter exports", "Built a mobile app to showcase user sourced data, using Flutter and Dart",
"Begun work on a module", "Contributed to existing open source projects such as Gpodder and Gpodder.net",
"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",
@ -75,7 +95,6 @@
"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",
@ -98,7 +117,7 @@
}, },
{ {
"company": "Supporttree", "company": "Supporttree",
"website": "https://supporttree.co.uk", "website": "http://supporttree.co.uk",
"position": "Support Engineer", "position": "Support Engineer",
"startDate": "2010-01", "startDate": "2010-01",
"endDate": "2012-02", "endDate": "2012-02",
@ -119,8 +138,8 @@
"institution": "King's School Grantham", "institution": "King's School Grantham",
"gpa": "AAAAA", "gpa": "AAAAA",
"courses": [ "courses": [
"Maths", "Math",
"Further Maths", "Further Math",
"Physics", "Physics",
"Chemistry", "Chemistry",
"Spanish" "Spanish"
@ -154,6 +173,11 @@
"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",
@ -296,11 +320,14 @@
} }
], ],
"interests": [ "interests": [
{
"name": "Volunteering"
},
{ {
"name": "Open Source & Linux" "name": "Open Source & Linux"
}, },
{ {
"name": "Travelling" "name": "Traveling"
}, },
{ {
"name": "Punk Rock, Politics & the Pub" "name": "Punk Rock, Politics & the Pub"

File diff suppressed because one or more lines are too long

View File

@ -5,21 +5,19 @@ contact:
website: https://cv.juancanham.com website: https://cv.juancanham.com
info: info:
label: Cloud "DevOps" Engineer label: Cloud Engineer
image: images/QR.png image: images/QR.png
brief: | brief: |
A Pragmatic Cloud "DevOps" Engineer, with experience at a variety of companies, across a range of technologies A Cloud Engineer & Developer, 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, primarily working as both: Capable of wearing whatever hat is needed for a given job.
* 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: Oakland
county: Greater London county: Alameda
country: England state: California
region: EU country: United States of America
countryCode: GB region: NA
countryCode: US
social: social:
- label: Git - label: Git
@ -36,7 +34,7 @@ social:
url: https://github.com/juancanham url: https://github.com/juancanham
certifications: certifications:
- organisation: AWS - organization: AWS
certificates: certificates:
- name: Solutions Architect - name: Solutions Architect
level: Professional level: Professional
@ -53,7 +51,7 @@ certifications:
- name: Developer - name: Developer
level: Associate level: Associate
logo: AWS-Developer-Associate.png logo: AWS-Developer-Associate.png
- organisation: Google - organization: Google
certificates: certificates:
- name: Cloud Architect - name: Cloud Architect
level: Professional level: Professional
@ -62,39 +60,53 @@ 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
- organisation: Linux Professional Institute - organization: Linux Professional Institute
certificates: certificates:
- name: LPCI-1 - name: LPCI-1
logo: LPCI-1.png logo: LPCI-1.png
- organisation: Salesforce - organization: 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
- organisation: Microsoft - organization: Microsoft
certificates: certificates:
- name: Windows 7, Configuration - name: Windows 7, Configuration
level: Microsoft Certified Technology Specialist level: Microsoft Certified Technology Specialist
employment: employment:
summary: "9+ years cloud infrastructure experience as engineer, technical lead & architect" summary: "10+ years cloud infrastructure experience as developer, 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:
- Quickly Built a tool to view twitter exports - Built a mobile app to showcase user sourced data, using Flutter and Dart
- Begun work on a module - Contributed to existing open source projects such as Gpodder and Gpodder.net
- 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/RitoingPacifst/offline-twitter-export-viewer url: https://gitlab.com/RiotingPacifist/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
@ -103,6 +115,31 @@ 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.
@ -110,9 +147,7 @@ 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 at Cloudreach, Managed a team of 3 or 4 engineers within Cloudreach, making sure they got the most out of their role.
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]
@ -126,7 +161,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 standardised pipeline approach in order to NBIM had an aggressive migration strategy, based on a standardized 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.
@ -187,8 +222,7 @@ 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, processes, such as training programs, This included both technical tooling and non-technical initiatives.
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]
@ -222,32 +256,26 @@ 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 standardising the process across all our European and American offices, First standardizing 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: |
Standardising the company on a single chat and knowledge base, made it much easier for new colleagues to get up to Standardizing 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 organise events (both globally and office specific). however it also helped organize 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
@ -291,7 +319,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 customising Salesforce objects/processes and writing apex triggers and classes This involved both customizing 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]
@ -305,7 +333,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 standardise on the platform where practical. helping other teams standardize 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
@ -321,25 +349,21 @@ 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 Optimisation - name: Teletext Holidays Optimization
customer: Teletext Holidays customer: Teletext Holidays
summary: Provided guidance and recommendations for frontend optimisation of the Teletext Holidays website summary: Provided guidance and recommendations for frontend optimization of the Teletext Holidays website
keywords: [Frontend, Web, Optimisation] keywords: [Frontend, Web, Optimization]
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), Providing 1st to 3rd line support of Desktops (Windows and OS X) for small businesses.
Server (physical and virtualised) & Services (in-house and cloud based) for small businesses. In addition to end-user support, also implemented several projects & pushed for automation whenever possible.
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: https://supporttree.co.uk url: http://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
@ -358,8 +382,8 @@ education:
end: 2006-07 end: 2006-07
grade: AAAAA grade: AAAAA
curriculum: curriculum:
- Maths - Math
- Further Maths - Further Math
- Physics - Physics
- Chemistry - Chemistry
- Spanish - Spanish
@ -382,6 +406,9 @@ 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
@ -470,8 +497,9 @@ languages:
fluency: Native fluency: Native
interests: interests:
- name: Volunteering
- name: Open Source & Linux - name: Open Source & Linux
- name: Travelling - name: Traveling
- name: Punk Rock, Politics & the Pub - name: Punk Rock, Politics & the Pub
meta: meta:

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.juancanham.com/JuanCanham/juan-canham-resume/Resume.md url: https://git.riotingpacifist.net/JuanCanham/juan-canham-resume/src/branch/master/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") as file: with open("resume.yaml", encoding="utf-8") 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") as file: with open(filename, "w", encoding="utf-8") 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") as file: with open("settings.yaml", encoding="utf-8") 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", [])