Selaa lähdekoodia

Updates 06-2019

Craig Fletcher 6 vuotta sitten
vanhempi
sitoutus
dd74531535
3 muutettua tiedostoa jossa 338 lisäystä ja 99 poistoa
  1. 135 0
      cv.html
  2. 58 99
      cv.md
  3. 145 0
      styles.css

+ 135 - 0
cv.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html>
+<head>
+<link rel="stylesheet" href="styles.css">
+<title></title>
+</head>
+<body>
+<section>
+<header>
+<h1>Hello, I'm Craig Fletcher.</h1>
+</header>
+<p>You can call me on 07480924132, email me at <a href=
+"mailto:hi@leakypixel.net">hi@leakypixel.net</a>, or check out what
+I'm getting on with at <a href=
+"https://www.leakypixel.net/">leakypixel.net</a>.</p>
+<p>I've been developing for the web for around 10 years and I'm
+still as eager as ever to push my skills and learn new things. I
+specialise in JavaScript - particularly React, but have worked with
+many languages, libraries and tools appropriate to the task at
+hand.</p>
+<h2>Experience</h2>
+<p>A short description of my last few roles and what they entailed.
+I'd be happy to discuss these further, but for now I'll keep it
+brief.</p>
+<h3>Erlang Solutions - JavaScript consultant (9 months)</h3>
+<p><em>2018 to 2019</em></p>
+<p>Worked closely with a worldwide distributed team to develop a
+deliveroo-like service for fuel and related product delivery. As
+the only JavaScript developer on the team, I built a react and
+apollo based web application to interact with an erlang graphql
+service that was being developed in tandem by other members of the
+team.</p>
+<h3>The Co-op Group - JavaScript consultant (6 months)</h3>
+<p><em>2018</em></p>
+<p>As part of the ventures team, built a new marketplace
+application using react for the frontend and python with flask for
+the backend. Worked in a team of 2 to get the project off the
+ground and into production. This project was more focused toward
+user research and constant iteration than technical challenges,
+something I really enjoyed.</p>
+<h3>Life's Great - JavaScript consultant (6 months)</h3>
+<p><em>2017 to 2018</em></p>
+<p>Upskilled team into react development and assisted with building
+a greenfield project:</p>
+<ul>
+<li>Upskilling team with limited to no prior knowledge of react
+through pairing, presentations and walkthroughs.</li>
+<li>Built a new application to gather information from customers
+through a conditional, staged questionnaire with complex
+dependencies.</li>
+<li>Various devops related tasks from scratch, such as docker
+scripts.</li>
+<li>Advising management on various technical decisions vital for
+the company.</li>
+</ul>
+<h3>Earlier</h3>
+<p><em>2017 - Tyres on the Drive - JavaScript consultant (12
+months)</em></p>
+<p><em>2016 - The Hut Group - JavaScript developer (12
+months)</em></p>
+<p><em>2015 - Bet365 - JavaScript developer (6 months)</em></p>
+<p><em>2013 to 2015 - On The Beach ltd. - Front end developer,
+Permanent</em></p>
+<h2>Skills</h2>
+<p>Some of the skills I've picked up along the way and tools I've
+used.</p>
+<h3>JavaScript</h3>
+<ul>
+<li>React, Redux, Apollo GraphQL</li>
+<li>NodeJS</li>
+<li>Document DBs (Mongo/Couchbase)</li>
+<li>Client-side templating (Handlebars/Mustache/jst)</li>
+<li>Module loading & dependency resolution</li>
+<li>Testing & automation (Jasmine/Karma/Istanbul/Selenium)</li>
+<li>Build systems (Grunt/Gulp/Webpack)</li>
+<li>WebSockets (Pusher/native)</li>
+<li>Modern ECMA script</li>
+</ul>
+<h3>HTML & CSS</h3>
+<ul>
+<li>Sass/SCSS/LESS</li>
+<li>Responsive design</li>
+<li>Modular design & web components</li>
+<li>Accessibility/Information hierarchy</li>
+<li>Progressive enhancement</li>
+</ul>
+<h3>Others</h3>
+<ul>
+<li>AWS and Digital ocean</li>
+<li>Continuous integration (Jenkins/Travis)</li>
+<li>Git (GitHub/CLI/GitHooks/Workflows)</li>
+<li>Docker & docker-compose</li>
+<li>Agile, Kanban & Scrum</li>
+<li>Project management tools (JIRA/Trello)</li>
+<li>Building appliances/discreet servers (Raspberry Pi/Intel Atom
+SoC)</li>
+<li>Analytics (Google/server stats/pingdom/custom built)</li>
+<li>Basic server administration (nginx/Apache/caddy)</li>
+<li>Versioning (npm/git tags/artifactory/docker images)</li>
+<li>Linux/UNIX-like OSes (Debian/Arch/FreeBSD)</li>
+<li>Bash (day to day environment & scripting)</li>
+<li>Python</li>
+</ul>
+<h3>Experience of</h3>
+<ul>
+<li>Java (Spring)</li>
+<li>Ruby (Rails)</li>
+<li>Golang (Iris)</li>
+<li>Cordova/PhoneGap</li>
+<li>Erlang (Phoenix)</li>
+</ul>
+<h2>I'm not boring</h2>
+<p>I have quite a few hobbies outside of my development work, and
+try to keep myself as active as I can - especially during the
+summer, when I can get outside.</p>
+<ul>
+<li>Rock climbing and bouldering are my big hobbies... though they
+don't look a lot different from the outside, there's quite a gap. I
+vary between the two, but practice indoors twice a week and get
+outside when I can.</li>
+<li>Somehow I ended up being a Scout leader, too. I was part of the
+organisation when I was younger, and after a couple of years break,
+I went back to help out. It has greatly helped me in maintaining
+leadership skills, and organising larger groups of people.</li>
+<li>I also spend quite a lot of my free time tinkering and working
+on personal projects, such as building raspberry pi based camera
+systems, monitors, or arcade systems.</li>
+<li>To keep up with the fast-paced world of development, I spend
+quite a lot of my free time reading, or listening to podcasts. Some
+of my favourites are 99 percent invisible, bad voltage and project
+bouldering.</li>
+</ul>
+</section>
+</body>
+</html>

+ 58 - 99
cv.md

@@ -1,36 +1,65 @@
 # Hello, I'm Craig Fletcher.
 
-You can call me on 07480924132, email me at [hi@leakypixel.net](mailto:hi@leakypixel.net), or check out what I'm getting on with at [leakypixel.net](https://www.leakypixel.net/). I currently live in Crewe, Cheshire, and hold a full driving license. I am available for both onsite and remote work, as well as freelance project work.
+You can call me on 07480924132, email me at [hi@leakypixel.net](mailto:hi@leakypixel.net), or check out what I'm getting on with at [leakypixel.net](https://www.leakypixel.net/). 
 
-I've been developing for the web for around 10 years and I'm still as eager as ever to push my skills and learn new things. I specialise in JavaScript (both front and back end) and have a penchant for getting the best performance out of applications and workflows.
+I've been developing for the web for around 10 years and I'm still as eager as ever to push my skills and learn new things. I specialise in JavaScript - particularly React, but have worked with many languages, libraries and tools appropriate to the task at hand.
+
+## Experience
+A short description of my last few roles and what they entailed. I'd be happy to
+discuss these further, but for now I'll keep it brief.
+
+### Erlang Solutions - JavaScript consultant (9 months)
+*2018 to 2019*
+
+Worked closely with a worldwide distributed team to develop a deliveroo-like
+service for fuel and related product delivery. As the only JavaScript developer
+on the team, I built a react and apollo based web application to interact with 
+an erlang graphql service that was being developed in tandem by other members 
+of the team.
+
+### The Co-op Group - JavaScript consultant (6 months)
+*2018* 
+
+As part of the ventures team, built a new marketplace application using react
+for the frontend and python with flask for the backend. Worked in a team of 2 to
+get the project off the ground and into production. This project was more
+focused toward user research and constant iteration than technical challenges,
+something I really enjoyed.
+
+### Life's Great - JavaScript consultant (6 months)
+*2017 to 2018* 
+
+Upskilled team into react development and assisted with building a greenfield
+project:
+* Upskilling team with limited to no prior knowledge of react through pairing,
+    presentations and walkthroughs.
+* Built a new application to gather information from customers through a
+    conditional, staged questionnaire with complex dependencies.
+* Various devops related tasks from scratch, such as docker scripts.
+* Advising management on various technical decisions vital for the company.
+
+### Earlier
+*2017 - Tyres on the Drive - JavaScript consultant (12 months)*
+
+*2016 - The Hut Group - JavaScript developer (12 months)*
+
+*2015 - Bet365 - JavaScript developer (6 months)*
+
+*2013 to 2015 - On The Beach ltd. - Front end developer, Permanent*
 
 ## Skills
+Some of the skills I've picked up along the way and tools I've used.
 
 ### JavaScript
-* Vanilla
-* Performance tuning
-* jQuery
+* React, Redux, Apollo GraphQL
+* NodeJS
+* Document DBs (Mongo/Couchbase)
 * Client-side templating (Handlebars/Mustache/jst)
-* AJAX
-* TypeScript
-* Backbone
 * Module loading & dependency resolution
 * Testing & automation (Jasmine/Karma/Istanbul/Selenium)
-* Build systems (Grunt/Gulp)
+* Build systems (Grunt/Gulp/Webpack)
 * WebSockets (Pusher/native)
-* 3rd party APIs
-* OLOO & Prototype patterns
-* Modern ECMA script (ES5, 6 & 7)
-* NodeJS
-* Event-based architecture
-* Microservice architecture
-* Promise-based interfaces
-* AngularJS 1 & 2
-* React
-* Functional programming
-* Isomorphic applications
-* npm
-* Document DBs (Mongo/Couchbase)
+* Modern ECMA script
 
 ### HTML & CSS
 * Sass/SCSS/LESS
@@ -45,97 +74,27 @@ I've been developing for the web for around 10 years and I'm still as eager as e
 * HTML 4 & 5
 
 ### Others
-* Digital ocean
-* AWS
-* Vagrant
+* AWS and Digital ocean
 * Continuous integration (Jenkins/Travis)
 * UX and data-driven design
-* Building appliances/discreet servers (Raspberry Pi/Intel Atom SoC)
 * Git (GitHub/CLI/GitHooks/Workflows)
-* SVN
 * Docker & docker-compose
-* Bash (day to day environment & scripting)
 * Agile, Kanban & Scrum
 * Project management tools (JIRA/Trello)
-* CLI text processing (Sed/Awk/Grep)
-* Vim
-* Image manipulation (Photoshop/GIMP/Inkscape/ImageMagick)
-* Markdown
+* Building appliances/discreet servers (Raspberry Pi/Intel Atom SoC)
 * Analytics (Google/server stats/pingdom/custom built)
-* Basic server administration (SSH/nginx/Apache)
+* Basic server administration (nginx/Apache/caddy)
 * Versioning (npm/git tags/artifactory/docker images)
-* Linux/UNIX-like OSes (Debian linux/Arch linux/FreeBSD)
-* Test and behaviour-driven development
+* Linux/UNIX-like OSes (Debian/Arch/FreeBSD)
+* Bash (day to day environment & scripting)
 * Python
-* Python-Flask
 
 ### Experience of
-* PHP
-* .NET
-* Wordpress
-* Magento
 * Java (Spring)
-* Python
 * Ruby (Rails)
 * Golang (Iris)
 * Cordova/PhoneGap
-* Redux
-
-## Experience
-
-*2018* 
-### The Co-op Group - JavaScript developer, Contract (3 months, renewed 2 times)
-As part of the ventures team, built a new marketplace application using react
-for the frontend and python with flask for the backend. Worked in a team of 2 to
-get the project off the ground and into production.
-
-*2017 - 2018* 
-### Life's Great - JavaScript developer, Contract (3 months, renewed 2 times)
-Upskilled team into react development and assisted with building a greenfield
-project:
-* Upskilling team with limited to no prior knowledge of react through pairing,
-    presentations and walkthroughs.
-* Built a new application to gather information from customers through a
-    conditional, staged questionnaire with complex dependencies.
-* Various devops related tasks from scratch, such as docker scripts.
-
-*2017* 
-### Tyres on the Drive- JavaScript developer, Contract (3 months, renewed 4 times)
-Worked on both internal and external projects, including:
-* Complete rebuild of legacy application into microservices architecture
-* View layer conversion to React and Redux as an isomorphic application
-* White label build for external client
-* Various devops related tasks from scratch, such as build pipeline and deployments
-* Helping management make various technical decisions vital for the company
-
-*2016* 
-### The Hut Group - JavaScript developer, Contract (3 months, renewed 4 times)
-Worked on both internal and external projects (Honda/The Daily Mail group), including:
-* Implementation of githook-based commit quality checking
-* Componentisation of an existing codebase
-* Full site builds
-* NodeJS-based CMS APIs
-* Rework and performance improvements of an existing site
-* Integration of CMS into existing site
-* Development of a custom CMS in Angular 2
-* Developing unit tests using Jasmine and Cucumber, with Istanbul for coverage
-* Developing integration tests using Selenium and WebDriver
-
-*2015*
-### Bet365 - JavaScript developer, Contract (6 months)
-Helping rebuild the front end of the Bet365 site in HTML5, CSS and TypeScript. In particular, I contributed to the build system, including linting, autoformatting and code style checking. Using the build system, we were able to greatly cut down time spent in code reviews and reduce the number of bugs making it through to testing.
-
-*2013 - 2015*
-### On The Beach ltd. - Front end developer, Permanent
-Working on a travel search and booking website visited by thousands of people all over the UK on a daily basis, plus foreign-marketed versions of the same functionality. I was the first member of the front end team at On The Beach ltd., and during my 2 years there, I helped bring about many changes in the way that the front end of the sites were handled - such as strict coding guidelines and a componentisation of our legacy SCSS, HTML/ERB and JavaScript. In order to improve the quality of our JavaScript code, we used Jasmine to write unit tests along with Cucumber to describe features.
-
-*2011 - 2013*
-### CSI Media - Developer, Permanent
-Building a wide range of websites for clients, and hooking them into a proprietary back-end travel system. This involved a vast array of skills, and I found it to be quite exciting - one week I could be working on a mobile site for a specialist holiday company, another I could be working on a responsive corporate site for a hovercraft company (this actually happened, and it was great). Most of my work here revolved around HTML and CSS, with only a little JavaScript - this set me on a path to discovering and developing my passion for JavaScript both in work and in my spare time.
-
-*2010 - 2011*
-### CDL - Desktop Processing Developer, Permanent
-Taking insurance documents and turning them into syntactically correct/standards compliant HTML markup, giving careful consideration to the heirarchy of the information - making sure the important parts looked important. I learned a lot about syntactic markup here, and the structure of HTML - which I think is something often glossed over. I've since built on this knowledge, by learning about accessability and how the structure and syntax of HTML affects technologies such as crawlers and screen readers.
+* Erlang (Phoenix)
 
 ## I'm not boring
 
@@ -144,4 +103,4 @@ I have quite a few hobbies outside of my development work, and try to keep mysel
 * Rock climbing and bouldering are my big hobbies... though they don't look a lot different from the outside, there's quite a gap. I vary between the two, but practice indoors twice a week and get outside when I can.
 * Somehow I ended up being a Scout leader, too. I was part of the organisation when I was younger, and after a couple of years break, I went back to help out. It has greatly helped me in maintaining leadership skills, and organising larger groups of people.
 * I also spend quite a lot of my free time tinkering and working on personal projects, such as building raspberry pi based camera systems, monitors, or arcade systems.
-* To keep up with the fast-paced world of development, I spend quite a lot of my free time reading, or listening to podcasts. Some of my favourites are 99 percent invisible, linux luddites and project bouldering.
+* To keep up with the fast-paced world of development, I spend quite a lot of my free time reading, or listening to podcasts. Some of my favourites are 99 percent invisible, bad voltage and project bouldering.

+ 145 - 0
styles.css

@@ -0,0 +1,145 @@
+/* Reset a couple of things for the sake of ease */
+/* Variables */
+:root {
+  --color-background: #f0f0f0;
+  --color-background-alternative: #afafaf;
+  --color-text-default: #0e0e0e;
+  --color-accent-1: #0000ff;
+  --color-accent-2: #00ff00;
+  --color-accent-3: #ff0000;
+}
+/* End variables */
+
+/* General styles */
+body {
+  background-color: var(--color-background);
+  color: var(--color-text-default);
+  line-height: 1.6em;
+  letter-spacing: 0.025em;
+  font-family: "Noto sans", sans-serif;
+  font-weight: 300;
+}
+
+section {
+  max-width: 42vw;
+  margin: 0 auto 2em auto;
+  overflow: hidden;
+  clear: both;
+  display: block;
+}
+
+section img {
+  display: block;
+  margin: 2em auto;
+  max-width: 100%;
+}
+
+h1 {
+  text-transform: uppercase;
+  display: inline;
+  font-family: "Gidole", monospace;
+  font-weight: bold;
+  font-weight: 600;
+  letter-spacing: 0.025em;
+  font-size: 2.6em;
+  line-height: 1.6em;
+  border-bottom: 0.4em solid;
+  border-color: var(--color-accent-2);
+  margin: 0 0 1em 0;
+}
+
+h2 {
+  text-transform: uppercase;
+  display: inline-block;
+  margin: 3em 0 1em 0;
+  font-family: "Gidole", monospace;
+  font-weight: bold;
+  font-weight: 400;
+  letter-spacing: 0.025em;
+  font-size: 1.4em;
+  line-height: 1.6em;
+}
+
+h3 {
+  color: var(--color-text-alternative);
+  font-family: "Gidole", monospace;
+  text-transform: uppercase;
+  font-weight: 400;
+  font-size: 1.2em;
+  margin: 4em 0 1em 0;
+}
+
+a,
+a:active,
+a:visited {
+  background-color: var(--color-accent-1);
+  color: var(--color-background);
+  text-decoration: underline;
+  padding: 0 0.2em;
+}
+
+p {
+  font-size: 1.2em;
+  line-height: 1.75em;
+  margin: 1em 0;
+}
+
+em {
+  font-size: 0.8em;
+}
+
+li {
+  margin: 1em 0;
+  padding-left: 0.8em;
+}
+
+/* Header */
+header {
+  margin: 1em auto 4em auto;
+}
+
+/* Smaller screen tweaks */
+@media screen and (max-width: 940px) {
+  section {
+    max-width: 90vw;
+  }
+  header {
+    max-width: 90vw;
+  }
+  footer {
+    padding: 0;
+  }
+
+  footer ul {
+    flex-flow: column;
+    margin: 3em 0 0 0;
+  }
+  footer ul li {
+    padding: 1em;
+    border-bottom: none;
+    border-left: 0.5em solid;
+  }
+  footer ul li:nth-child(1) {
+    border-bottom: none;
+  }
+  footer ul li:nth-child(2) {
+    border-bottom: none;
+  }
+  footer ul li:nth-child(3) {
+    border-bottom: none;
+  }
+}
+
+@media print {
+  section {
+    max-width: 100%;
+    width: 100%;
+    margin: 0;
+  }
+}
+/* Fonts */
+@import url("https://fonts.googleapis.com/css?family=Noto+Sans");
+@font-face {
+  font-family: "Gidole";
+  src: url("Gidole-Regular.ttf") format("truetype");
+}