# 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'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 and often managing the entire stack from development to production. ## 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. ### AKQA - JavaScript consultant (3 months, fully remote) *2019* Worked on a high-profile project for a well-known international clothing brand, using React, Netlify, Next.js, AWS lambda, nodeJS and AWS dynamoDB. Working remotely as part of a small, internationally distributed team to deliver a time-critical project with many challenges and tight deadlines. ### Erlang Solutions - JavaScript consultant (9 months, fully remote) *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, part remote) *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, part remote) *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 I've around 10 years experience with JavaScript, and consider myself proficient. I take an active interest in new developments, often spending my free time checking out new features and frameworks. * React, Redux, Apollo GraphQL * NodeJS * Document DBs (Mongo/Couchbase/DynamoDB) * Client-side templating (Handlebars/Mustache/jst) * Module loading & dependency resolution * Testing & automation (Jasmine/Karma/Istanbul/Selenium/nyc) * Build systems (Grunt/Gulp/Webpack/custom-built) * WebSockets (Pusher/native) * Modern ECMA script ### HTML & CSS Developing the front end of a project was my main focus for many years, picking up a history of tools and techniques. It's still something I find very satisfying, especially in first iterations of products. * Sass/SCSS/LESS * Responsive design * Bootstrap * Modular design & web components * BEM/SMACSS * Accessibility/Information hierarchy * Progressive enhancement * W3C Standards * Cross browser compatibility * HTML 4 & 5 ### DevOps In the past few years, I've taken a keen interest in devops-related skills. Initially, this started as a passion project to containerise and self host infrastructure, but quickly developed into managing the full stack in my commerical roles. * AWS and Digital ocean * Continuous integration (Jenkins/Travis) * Docker & docker-compose * Server administration (systemd, collectd, init.d) * Common web servers, certificates and proxying (nginx/Apache/caddy) * Building appliances/discreet servers (Raspberry Pi/Intel Atom SoC) * Versioning (npm/git tags/artifactory/docker images) * Linux/UNIX-like OSes (Debian/Arch/FreeBSD) * Grafana, telegraf and influxdb ### Others I've also picked up a few odds and ends that don't fit anywhere else, often from interested coworkers or personal projects. * UX and data-driven design * Git (GitHub/CLI/GitHooks/Workflows) * Agile, Kanban & Scrum * Project management tools (JIRA/Trello) * Analytics (Google/server stats/pingdom/custom built) * Bash (day to day environment & scripting) * Python (flask/sql alchemy/raspi-GPIO/scripting) * Ruby (Rails/cucumber/rspec/scripting) * Cordova/PhoneGap * Blockchain (trading, bitcoin/iota/ethereum/bat/litecoin/monero theory and use, some experience with solidity) ### Experience of working with Working on many projects has given me contact with quite a few back end environments, with varying degrees of depth. * Java (Spring, some) * Golang (Iris, some) * Erlang (Phoenix, moderate) * C# (.NET, moderate) ## I'm not boring 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. * 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. * Being interested in the open-source culture, I attend as many related meetups and events as I can - oggcamp and fosstalk live being ones I've attended for a few years. * 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. I'm also passionate about self hosting as much of my personal infrastructure as I can (talk to me about this!) and dockerising all the things. * Of course everybody needs to relax - I spend quite a lot of time reading, or listening to podcasts. Some of my favourites are [99 percent invisible](https://99percentinvisible.org/), [bad voltage](https://www.badvoltage.org/), [linux unplugged](https://linuxunplugged.com/), [selfhosted](https://selfhosted.show/) and [project bouldering](https://www.stitcher.com/podcast/project-bouldering).