{
  "TECH_ROWS": [
    {
      "cat": "Front End",
      "items": "HTML5, HTML, CSS, CSS3, CSS Modules, CSS / SCSS / SASS / LESS, JS (OOP, Functional, FRP), CoffeeScript",
      "yrs": "15+"
    },
    {
      "cat": "Design Tools",
      "items": "Photoshop, Sketch, Figma",
      "yrs": "15+"
    },
    {
      "cat": "JS Frameworks",
      "items": "React, React Native, React Router, react-router-dom, Reach Router, Redux, Redux Toolkit, TypeScript, Next.js, AngularJS",
      "yrs": "14+"
    },
    {
      "cat": "Testing",
      "items": "React Testing Library, Cypress, Jest, Enzyme, Mocha, Karma, Jasmine, PHPUnit, RSpec, Detox, Istanbul",
      "yrs": "13+"
    },
    {
      "cat": "Wireframing",
      "items": "Axure, Balsamiq, FluidUI, Sketch, Pen & Paper",
      "yrs": "13+"
    },
    {
      "cat": "CMS / Ecomm",
      "items": "WordPress, Magento/OSCommerce, Umbraco, Adobe CQ5",
      "yrs": "10+"
    },
    {
      "cat": "Version Control",
      "items": "Git, Mercurial, SVN",
      "yrs": "15+"
    },
    {
      "cat": "State Mgmt",
      "items": "Redux, Redux Toolkit, Redux-Saga, Redux Form, Redux-Form, Context API, Zustand, React Query, TRPC, Apollo Client, Reselect, Formik, Yup",
      "yrs": "13+"
    },
    {
      "cat": "Backend / DB",
      "items": "Node.js, Express.js, NestJS, GraphQL, RESTful APIs, MongoDB, MySQL, PostgreSQL, Redis, PHP, PHP (Zend), CakePHP, Symfony2, Ruby on Rails, Meteor, Java Spring MVC, Azure/.NET",
      "yrs": "12+"
    },
    {
      "cat": "Cloud / DevOps",
      "items": "AWS, Docker, Kubernetes, CI/CD, Prisma ORM, PostCSS",
      "yrs": "9+"
    },
    {
      "cat": "Visualisation",
      "items": "D3.js, Three.js, Highcharts, Canvas (FabricJS, PixiJS), HTML5 Canvas, react-spring, GSAP, Google Maps API, ReactGrid",
      "yrs": "10+"
    }
  ],
  "SKILLS": [
    {
      "n": "React",
      "c": "core"
    },
    {
      "n": "React Native",
      "c": "core"
    },
    {
      "n": "React 0.13/14",
      "c": "core"
    },
    {
      "n": "React 0.15",
      "c": "core"
    },
    {
      "n": "React 15/16",
      "c": "core"
    },
    {
      "n": "React 16",
      "c": "core"
    },
    {
      "n": "React 18",
      "c": "core"
    },
    {
      "n": "React 19",
      "c": "core"
    },
    {
      "n": "TypeScript",
      "c": "core"
    },
    {
      "n": "JavaScript (ES6+)",
      "c": "core"
    },
    {
      "n": "JavaScript (ES5)",
      "c": "core"
    },
    {
      "n": "CoffeeScript",
      "c": "core"
    },
    {
      "n": "HTML5",
      "c": "core"
    },
    {
      "n": "HTML",
      "c": "core"
    },
    {
      "n": "CSS",
      "c": "core"
    },
    {
      "n": "CSS3",
      "c": "core"
    },
    {
      "n": "CSS Modules",
      "c": "core"
    },
    {
      "n": "CSS3 / SCSS / LESS",
      "c": "core"
    },
    {
      "n": "SCSS",
      "c": "core"
    },
    {
      "n": "SASS",
      "c": "core"
    },
    {
      "n": "LESS",
      "c": "core"
    },
    {
      "n": "Next.js",
      "c": "core"
    },
    {
      "n": "AngularJS",
      "c": "core"
    },
    {
      "n": "Node.js",
      "c": "core"
    },
    {
      "n": "GraphQL",
      "c": "core"
    },
    {
      "n": "RESTful APIs",
      "c": "core"
    },
    {
      "n": "MongoDB",
      "c": "core"
    },
    {
      "n": "MySQL",
      "c": "core"
    },
    {
      "n": "PHP",
      "c": "core"
    },
    {
      "n": "PHP (Zend)",
      "c": "core"
    },
    {
      "n": "CakePHP",
      "c": "core"
    },
    {
      "n": "Symfony2",
      "c": "core"
    },
    {
      "n": "Ruby on Rails",
      "c": "core"
    },
    {
      "n": "Meteor",
      "c": "core"
    },
    {
      "n": "Java Spring MVC",
      "c": "core"
    },
    {
      "n": "Azure/.NET",
      "c": "core"
    },
    {
      "n": "Express.js",
      "c": "core"
    },
    {
      "n": "NestJS",
      "c": "core"
    },
    {
      "n": "PostgreSQL",
      "c": "core"
    },
    {
      "n": "Redis",
      "c": "core"
    },
    {
      "n": "Redux",
      "c": "state"
    },
    {
      "n": "Redux Toolkit",
      "c": "state"
    },
    {
      "n": "React Query",
      "c": "state"
    },
    {
      "n": "TRPC",
      "c": "state"
    },
    {
      "n": "Zustand",
      "c": "state"
    },
    {
      "n": "Context API",
      "c": "state"
    },
    {
      "n": "Redux Form",
      "c": "state"
    },
    {
      "n": "Redux-Form",
      "c": "state"
    },
    {
      "n": "Redux-Saga",
      "c": "state"
    },
    {
      "n": "Reselect",
      "c": "state"
    },
    {
      "n": "Formik",
      "c": "state"
    },
    {
      "n": "Yup",
      "c": "state"
    },
    {
      "n": "Apollo Client",
      "c": "state"
    },
    {
      "n": "Jest",
      "c": "testing"
    },
    {
      "n": "React Testing Library",
      "c": "testing"
    },
    {
      "n": "Cypress",
      "c": "testing"
    },
    {
      "n": "Enzyme",
      "c": "testing"
    },
    {
      "n": "Mocha",
      "c": "testing"
    },
    {
      "n": "Karma",
      "c": "testing"
    },
    {
      "n": "Jasmine",
      "c": "testing"
    },
    {
      "n": "PHPUnit",
      "c": "testing"
    },
    {
      "n": "RSpec",
      "c": "testing"
    },
    {
      "n": "Detox",
      "c": "testing"
    },
    {
      "n": "Figma",
      "c": "ui"
    },
    {
      "n": "Sketch",
      "c": "ui"
    },
    {
      "n": "Chakra UI",
      "c": "ui"
    },
    {
      "n": "Mantine UI",
      "c": "ui"
    },
    {
      "n": "Material-UI",
      "c": "ui"
    },
    {
      "n": "styled-components",
      "c": "ui"
    },
    {
      "n": "Storybook",
      "c": "ui"
    },
    {
      "n": "Ag-grid",
      "c": "ui"
    },
    {
      "n": "Highcharts",
      "c": "ui"
    },
    {
      "n": "D3.js",
      "c": "ui"
    },
    {
      "n": "Three.js",
      "c": "ui"
    },
    {
      "n": "Canvas",
      "c": "ui"
    },
    {
      "n": "HTML5 Canvas",
      "c": "ui"
    },
    {
      "n": "ReactGrid",
      "c": "ui"
    },
    {
      "n": "react-spring",
      "c": "ui"
    },
    {
      "n": "GSAP",
      "c": "ui"
    },
    {
      "n": "Google Maps API",
      "c": "ui"
    },
    {
      "n": "Bootstrap",
      "c": "ui"
    },
    {
      "n": "Bootstrap 3",
      "c": "ui"
    },
    {
      "n": "Axure",
      "c": "ui"
    },
    {
      "n": "Balsamiq",
      "c": "ui"
    },
    {
      "n": "InVision",
      "c": "ui"
    },
    {
      "n": "Webpack",
      "c": "tooling"
    },
    {
      "n": "Babel",
      "c": "tooling"
    },
    {
      "n": "Git",
      "c": "tooling"
    },
    {
      "n": "Rollup",
      "c": "tooling"
    },
    {
      "n": "Gulp",
      "c": "tooling"
    },
    {
      "n": "PostCSS",
      "c": "tooling"
    },
    {
      "n": "HAML",
      "c": "tooling"
    },
    {
      "n": "React Router",
      "c": "tooling"
    },
    {
      "n": "react-router-dom",
      "c": "tooling"
    },
    {
      "n": "Reach Router",
      "c": "tooling"
    },
    {
      "n": "jQuery",
      "c": "tooling"
    },
    {
      "n": "Prisma ORM",
      "c": "tooling"
    },
    {
      "n": "Docker",
      "c": "tooling"
    },
    {
      "n": "Kubernetes",
      "c": "tooling"
    },
    {
      "n": "AWS",
      "c": "tooling"
    },
    {
      "n": "CI/CD",
      "c": "tooling"
    },
    {
      "n": "WordPress",
      "c": "cms"
    },
    {
      "n": "Magento",
      "c": "cms"
    },
    {
      "n": "Umbraco",
      "c": "cms"
    },
    {
      "n": "Adobe CQ5",
      "c": "cms"
    },
    {
      "n": "Gigya",
      "c": "cms"
    },
    {
      "n": "Ignite",
      "c": "cms"
    }
  ],
  "DATE_BASED_STACK_DEFAULTS": [
    {
      "skill": "JavaScript (ES6+)",
      "minStartYear": 2015
    },
    {
      "skill": "JavaScript (ES5)",
      "maxStartYear": 2014
    }
  ],
  "GLOBAL_STACK_DEFAULTS": ["Git", "CSS3", "HTML5"],
  "TESTIMONIALS": [
    {
      "by": "Mark Hollands",
      "role": "Quantitative Researcher at Citadel",
      "date": "2017-12-01",
      "jobCompany": "Goldman Sachs",
      "relationship": "Worked with Sam on the same team at Goldman Sachs",
      "quote": "I worked with Sam at Goldman Sachs on a number of projects. He was very knowledgeable, supportive, and happy to guide others. He was enthusiastic, hard working, and a pleasure to work with.",
      "visibility": "public"
    },
    {
      "by": "Diana Ionel",
      "role": "Corporate Controller at European Space Agency - ESA",
      "date": "2015-07-21",
      "jobCompany": "InSitYou Software",
      "relationship": "Sam was senior to Diana at InSitYou Software",
      "quote": "Sam was ambitious, decisive, and got up to speed quickly under heavy time pressure. He was an open-minded mentor and a dependable expert who solved problems on time.",
      "visibility": "public"
    },
    {
      "by": "Christopher Stanley",
      "role": "Client partner",
      "date": "2014-05-16",
      "jobCompany": "Redbox Digital",
      "relationship": "Managed Sam directly at Redbox Digital",
      "quote": "Sam was creative, talented, and highly collaborative. He brought strong frontend and Magento expertise, a positive attitude, and consistently sought the best possible solution.",
      "visibility": "public"
    },
    {
      "by": "Dan Murray",
      "role": "Co-Founder, Heights",
      "date": "2013-11-18",
      "jobCompany": "Grabble Ltd",
      "relationship": "Sam's client at Grabble Ltd",
      "quote": "Sam was instrumental in helping us ship quickly while keeping quality high. He communicated clearly, took ownership, and consistently delivered exactly what the product needed.",
      "visibility": "public"
    },
    {
      "by": "Joel Freeman",
      "role": "Co-Founder & CEO, Heights",
      "date": "2013-11-21",
      "jobCompany": "Grabble Ltd",
      "relationship": "Sam's client at Grabble Ltd",
      "quote": "Sam was innovative and intelligent, quickly understood requirements, and delivered features fast. He contributed strongly to both product outcomes and team culture.",
      "visibility": "public"
    },
    {
      "by": "Kyle Milnes",
      "role": "CTO / Principal Architect",
      "date": "2013-08-01",
      "jobCompany": "Vaultigo",
      "relationship": "Managed Sam directly at Vaultigo",
      "quote": "Sam was personable, highly capable, and stepped in across frontend and backend when needed. He handled pressure well and helped the team deliver its vision.",
      "visibility": "public"
    },
    {
      "by": "Paul Clarke",
      "role": "Owner",
      "date": "2012-11-02",
      "jobCompany": "Redbox Digital",
      "relationship": "Worked with Sam on the same team at Redbox Digital",
      "quote": "Sam was forward-thinking, multi-skilled, and consistently delivered under pressure. He brought energy, adaptability, and dependable execution to every project.",
      "visibility": "public"
    },
    {
      "by": "Panos Armagos",
      "role": "Back End Developer",
      "date": "2012-05-04",
      "jobCompany": "Goldsmiths, University of London",
      "relationship": "Studied together at Goldsmiths, University of London",
      "quote": "Sam was passionate, open-minded, and deadline oriented. During university projects he was consistently proactive and dependable in getting things done.",
      "visibility": "public"
    },
    {
      "by": "Penda Tomlinson",
      "role": "Mentoring the next generation of games designers",
      "date": "2010-05-14",
      "jobCompany": "Goldsmiths, University of London",
      "relationship": "Sam's teacher at University of East London",
      "quote": "Sam was a diligent and technically strong student, confident in programming and 3D work. His enthusiasm and willingness to learn new tools stood out.",
      "visibility": "public"
    }
  ],
  "JOBS": [
    {
      "co": "Bank of America",
      "date": "Nov 2024 – Present",
      "title": "Senior Fullstack JS Engineer",
      "desc": "Ongoing engagement delivering new features and resolving legacy code and bugs for an internal portal.",
      "bullets": [
        "Developed and shipped new features for a business-critical internal portal used across the organisation",
        "Identified and resolved long-standing bugs in legacy code, improving stability and user experience",
        "Maintained high code quality with Jest and React Testing Library throughout",
        "Built an automated PowerPoint deck generator, replacing a manual process that previously took users weeks or even months to complete"
      ],
      "stack": [
        "React 19",
        "TypeScript",
        "GraphQL",
        "Node.js",
        "RESTful APIs",
        "Material-UI",
        "Cypress",
        "Jest",
        "React Testing Library"
      ]
    },
    {
      "co": "Anmut Consulting",
      "date": "Dec 2022 – Apr 2024",
      "title": "Fullstack Engineer",
      "desc": "Greenfield project with multiple critical release milestones, fast-growing team, high autonomy.",
      "bullets": [
        "Translated complex Figma designs into a reusable React component library with pixel-perfect fidelity",
        "Developed and maintained a comprehensive component library using Next.js and React 18",
        "Implemented state management using TRPC and React Query, optimising data flow and performance"
      ],
      "stack": [
        "Next.js",
        "React 18",
        "TypeScript",
        "TRPC",
        "Mantine UI",
        "React Query",
        "Figma",
        "Cypress",
        "React Testing Library",
        "Jest"
      ]
    },
    {
      "co": "Bank of America",
      "date": "Feb – Aug 2022",
      "title": "Contract Senior React Developer",
      "desc": "FX Options Risk trading team — optimising rendering speeds of large financial datasets.",
      "bullets": [
        "Reduced rendering times from seconds to milliseconds, dramatically improving trader workflow efficiency",
        "Built a production-grade RFQ instrument editor in React 18, TypeScript and Redux",
        "Applied virtualisation and memoisation techniques to handle large-scale data at speed"
      ],
      "stack": [
        "React 18",
        "ReactGrid",
        "TypeScript",
        "Redux",
        "Redux Toolkit",
        "Reselect",
        "Cypress",
        "Jest",
        "React Testing Library"
      ]
    },
    {
      "co": "ITRIOM",
      "date": "Sep – Dec 2021",
      "title": "Contract Senior React Developer",
      "desc": "Delivered a high-fidelity rapid prototype for a confidential client, showcasing product features and user flows.",
      "bullets": [
        "Built a fully functional prototype within tight deadlines for key stakeholder review and testing",
        "Utilised Chakra UI for a consistent and responsive design system",
        "Implemented complex animations using react-spring to enhance user engagement"
      ],
      "stack": [
        "TypeScript",
        "React",
        "Chakra UI",
        "react-router-dom",
        "react-spring",
        "Figma",
        "CSS Modules",
        "Cypress",
        "React Testing Library",
        "Jest"
      ]
    },
    {
      "co": "Visa",
      "date": "Jun – Sep 2021",
      "title": "Contract Senior React Developer",
      "desc": "Joined an overdue project to resolve critical bugs and implement new features, ensuring timely delivery.",
      "bullets": [
        "Refactored legacy code, reducing bug reports by 40%",
        "Implemented new UI components using styled-components and GSAP animations",
        "Collaborated with QA to establish comprehensive test coverage"
      ],
      "stack": [
        "React",
        "TypeScript",
        "react-router-dom",
        "styled-components",
        "Zustand",
        "GSAP",
        "Cypress",
        "React Testing Library",
        "Jest"
      ]
    },
    {
      "co": "CompareTheMarket.com",
      "date": "Jan – Mar 2021",
      "title": "Contract Senior React Developer",
      "desc": "Delivered a high-fidelity rapid prototype for a new product offering, working tightly with UX and product stakeholders.",
      "bullets": [
        "Developed a fully interactive prototype enabling stakeholders to test and refine the user journey",
        "Created a responsive and accessible interface using Chakra UI",
        "Implemented complex form logic and validation using Formik and Yup"
      ],
      "stack": [
        "React",
        "TypeScript",
        "Chakra UI",
        "react-router-dom",
        "Formik",
        "Yup",
        "Figma",
        "Cypress",
        "React Testing Library",
        "Jest"
      ]
    },
    {
      "co": "Deutsche Bank",
      "date": "May – Dec 2020",
      "title": "Contract Senior React Developer",
      "desc": "Led migration of components from a legacy Angular application to a new React-based system.",
      "bullets": [
        "Successfully migrated critical components with full feature parity and improved performance",
        "Implemented robust state management with Redux and Redux Toolkit",
        "Achieved 90%+ code coverage with Jest and React Testing Library"
      ],
      "stack": [
        "TypeScript",
        "React",
        "AngularJS",
        "Redux",
        "Redux Toolkit",
        "styled-components",
        "CSS Modules",
        "Cypress",
        "Jest",
        "React Testing Library"
      ]
    },
    {
      "co": "Deloitte Digital",
      "date": "Feb – Mar 2020",
      "title": "Contract Senior React Developer",
      "desc": "Brought in as a specialist resource to fix critical issues on an outsourced project.",
      "bullets": [],
      "stack": [
        "React",
        "TypeScript",
        "SCSS",
        "Formik",
        "Yup",
        "Reach Router",
        "Cypress",
        "React Testing Library",
        "Jest"
      ]
    },
    {
      "co": "GotU (77Agency)",
      "date": "Nov 2019 – Jan 2020",
      "title": "Contract Senior React Developer",
      "desc": "Delivered a full platform rebuild for the tech unit of 77Agency under very tight deadlines.",
      "bullets": [
        "Delivered an entire platform rebuild, meeting aggressive project milestones"
      ],
      "stack": [
        "React",
        "TypeScript",
        "GraphQL",
        "Apollo Client",
        "React Router",
        "Material-UI",
        "Webpack",
        "Cypress",
        "Jest",
        "React Testing Library"
      ]
    },
    {
      "co": "UBS",
      "date": "Nov 2018 – Nov 2019",
      "title": "Contract Senior React Developer",
      "desc": "Developed a React-based UI component library for the UBS Financial Reporting department.",
      "bullets": [
        "Built a comprehensive, reusable component library using React 16 and Storybook",
        "Integrated Ag-grid and Highcharts for complex financial data visualisation"
      ],
      "stack": [
        "React 16",
        "TypeScript",
        "Storybook",
        "Cypress",
        "React Testing Library",
        "Jest",
        "Enzyme",
        "Ag-grid",
        "Highcharts",
        "LESS",
        "Webpack",
        "CSS Modules"
      ]
    },
    {
      "co": "The Stars Group",
      "date": "Feb – Nov 2018",
      "title": "Contract Senior React Developer",
      "desc": "Cross-timezone agile team — delivered business-critical features for BetStars' CMS web application.",
      "bullets": [
        "Delivered business-critical features across a full agile team: FE/BE devs, QA, BA, PM, Scrum master",
        "Extensive pair-programming and tight code reviews to maintain high standards"
      ],
      "stack": [
        "React 15/16",
        "TypeScript",
        "GraphQL",
        "Apollo Client",
        "Redux",
        "Redux-Form",
        "React Router",
        "SCSS",
        "Webpack",
        "Babel",
        "React Testing Library",
        "Enzyme",
        "Mocha",
        "Karma"
      ]
    },
    {
      "co": "RehabStudio",
      "date": "Jan – Feb 2018",
      "title": "Contract Frontend Developer",
      "desc": "Developed the front end for Facebook's Startup Garage — delivered in 10 days, fully responsive, English and French.",
      "bullets": [
        "Built startupgarage.fb.com in 10 days — both English and French versions, fully responsive"
      ],
      "stack": [
        "WordPress",
        "HTML",
        "jQuery",
        "SCSS",
        "Rollup",
        "Bootstrap 3",
        "JavaScript (ES6+)",
        "Cypress"
      ]
    },
    {
      "co": "Goldman Sachs",
      "date": "Jan – Oct 2017",
      "title": "Contract Senior React Developer — SPACE",
      "desc": "Designed and built SPACE — a highly scalable web platform for the retail client base within the Securities division.",
      "bullets": [
        "Shaped client experience, creating new technology-driven businesses",
        "Externalised core analytics and data to both existing clients and new markets",
        "Platform supported the full trading lifecycle: idea generation, price discovery, primary/secondary trading"
      ],
      "stack": [
        "React",
        "Redux",
        "Redux-Saga",
        "Reselect",
        "Redux Form",
        "React Router",
        "Material-UI",
        "Highcharts",
        "Webpack",
        "Cypress",
        "Karma",
        "Mocha",
        "Enzyme"
      ]
    },
    {
      "co": "Carillion PLC (via Headlines)",
      "date": "Nov – Dec 2016",
      "title": "Contract React Native Developer",
      "desc": "Built a cross-platform iOS and Android app (\"Carillion Pulse\") using React Native, replacing a bug-ridden legacy version.",
      "bullets": [],
      "stack": [
        "React Native",
        "React",
        "Redux",
        "Jest",
        "Enzyme",
        "Detox",
        "Ignite"
      ]
    },
    {
      "co": "Future Platforms",
      "date": "Feb – Oct 2016",
      "title": "Contract Senior Frontend Developer",
      "desc": "Domino's Pizza and Ralph Lauren projects including two micro-sites under 3 and 5 week deadlines.",
      "bullets": [
        "Built a Domino's Pizza Android app for store managers",
        "Delivered two Ralph Lauren micro-sites under very tight deadlines"
      ],
      "stack": [
        "React Native",
        "React 0.15",
        "Redux",
        "Babel",
        "Webpack",
        "SASS",
        "PostCSS",
        "jQuery",
        "Jest",
        "Enzyme",
        "Azure/.NET"
      ]
    },
    {
      "co": "RMA Consulting / HSBC",
      "date": "Aug 2015 – Jan 2016",
      "title": "Creative Technologist",
      "desc": "Developed a high-fidelity prototype for HSBCnet.",
      "bullets": [],
      "stack": [
        "React 0.13/14",
        "Redux",
        "Node.js",
        "JavaScript (ES6+)",
        "SCSS",
        "Webpack",
        "Babel",
        "React Router",
        "Mocha",
        "Karma"
      ]
    },
    {
      "co": "InSitYou Software",
      "date": "Mar – Aug 2015",
      "title": "Senior Fullstack Developer",
      "desc": "Built in-house seat allocation and floor-plan visualisation software for architectural practices.",
      "bullets": [
        "Parsed large CSV datasets into a ranked-relationship seating algorithm",
        "Visualised floor plans using D3, Canvas (FabricJS/PixiJS) and SVG",
        "Mentored a junior SQL developer through HTML, CSS, JS and full-stack Meteor development"
      ],
      "stack": [
        "JavaScript (ES6+)",
        "Three.js",
        "D3.js",
        "Canvas",
        "HTML5 Canvas",
        "React",
        "AngularJS",
        "Meteor",
        "MongoDB",
        "Node.js",
        "HTML5",
        "SCSS",
        "Mocha",
        "Karma"
      ]
    },
    {
      "co": "Thought Machine",
      "date": "Jan – Feb 2015",
      "title": "Contract Creative Technologist",
      "desc": "Developed rapid prototypes from UX research through to Axure/Balsamiq and Sketch to InVision.",
      "bullets": [],
      "stack": ["Axure", "Balsamiq", "Sketch", "InVision", "Cypress"]
    },
    {
      "co": "CACI / Chelsea FC",
      "date": "Oct – Dec 2014",
      "title": "Contract Frontend Developer",
      "desc": "Sole front-end/UX resource to deliver an overdue gamification project for Chelsea FC.",
      "bullets": [
        "Delivered a gamification platform using Adobe CQ5 on the back end",
        "Implemented social and gamification integration via Gigya"
      ],
      "stack": [
        "jQuery",
        "JavaScript (ES5)",
        "Adobe CQ5",
        "Java Spring MVC",
        "Gigya",
        "Jasmine",
        "Karma"
      ]
    },
    {
      "co": "We3Collective",
      "date": "Sep – Nov 2014",
      "title": "Contract JavaScript Developer",
      "desc": "Integrated front-end WordPress HTML templates to a CakePHP-driven backend using a bespoke JS MVC framework.",
      "bullets": [],
      "stack": [
        "JavaScript (ES5)",
        "SCSS",
        "jQuery",
        "WordPress",
        "CakePHP",
        "PHP",
        "Jasmine",
        "Karma"
      ]
    },
    {
      "co": "Paper",
      "date": "Aug – Sep 2014",
      "title": "Contract Frontend Developer",
      "desc": "Front-end work for a high-profile project for Macmillan Cancer Support on a .NET/Umbraco stack.",
      "bullets": ["Focused on highly modular and reusable design patterns"],
      "stack": ["JavaScript (ES5)", "SCSS", "jQuery", "Umbraco", "Jasmine"]
    },
    {
      "co": "RehabStudio",
      "date": "Aug 2014",
      "title": "Contract Frontend Developer",
      "desc": "Short-term engagement with a leading creative tech team on a project for Google.",
      "bullets": [],
      "stack": [
        "Node.js",
        "Three.js",
        "HTML5 Canvas",
        "JavaScript (ES5)",
        "Mocha"
      ]
    },
    {
      "co": "Quill Content",
      "date": "Jun – Aug 2014",
      "title": "Contract Frontend Developer",
      "desc": "Sole frontend developer parachuted in to help Quill Content hit delivery milestones.",
      "bullets": [
        "Full platform reskin based on a 3-page style guide and wireframes",
        "Introduced SMACSS architecture and refactored SCSS for maintainability"
      ],
      "stack": [
        "Ruby on Rails",
        "HAML",
        "SCSS",
        "CoffeeScript",
        "jQuery",
        "D3.js",
        "RSpec"
      ]
    },
    {
      "co": "The Social Partners",
      "date": "May 2014",
      "title": "Contract Frontend Developer",
      "desc": "Delivered a responsive microsite (Millionaire Quiz) for The Sunday Times – The Rich List 2014.",
      "bullets": [],
      "stack": [
        "Node.js",
        "AngularJS",
        "SASS",
        "Bootstrap",
        "JavaScript (ES5)",
        "Jasmine",
        "Karma"
      ]
    },
    {
      "co": "Fox Parrack Singapour",
      "date": "Apr 2014",
      "title": "Contract Frontend Developer",
      "desc": "Delivered a responsive landing page for Cisco with three time-of-day visual themes and HTML5 Video background.",
      "bullets": [
        "Three distinct visual schemes (morning/afternoon/evening) driven by SCSS variables",
        "HTML5 Video full-page background changing by time of day"
      ],
      "stack": ["CSS", "SASS", "JavaScript (ES5)", "jQuery", "Jasmine"]
    },
    {
      "co": "Redbox Digital",
      "date": "Nov 2013 – Apr 2014",
      "title": "Contract Magento Developer",
      "desc": "Hired for front-end and UX expertise; also covered SysAdmin/DevOps, MySQL, and Magento backend.",
      "bullets": [
        "Delivered fully responsive pages for Paperchase across five breakpoints",
        "Extended Google Maps API to generate markers for six Paperchase store types"
      ],
      "stack": [
        "Magento",
        "PHP",
        "MySQL",
        "HTML5",
        "CSS",
        "SCSS",
        "JavaScript (ES5)",
        "jQuery",
        "Google Maps API",
        "PHPUnit",
        "Jasmine"
      ]
    },
    {
      "co": "Grabble Ltd",
      "date": "Jul – Nov 2013",
      "title": "Contract Frontend Developer",
      "desc": "Implemented new responsive designs and features on an inherited, poorly-maintained codebase.",
      "bullets": [
        "Rewrote significant portions of the inherited codebase for long-term maintainability",
        "New features prototyped from hand-drawn wireframes to working code within a day"
      ],
      "stack": [
        "PHP (Zend)",
        "Bootstrap",
        "JavaScript (ES5)",
        "Git",
        "jQuery",
        "PHPUnit",
        "Jasmine"
      ]
    },
    {
      "co": "HeathWallace / HSBC",
      "date": "Jul 2013",
      "title": "Contract PHP/MySQL Developer",
      "desc": "Updated HSBCnet Expat Explorer with new yearly statistics. Completed 4-week contract in 2.5 weeks.",
      "bullets": [
        "Parsed large dataset and updated the site using CakePHP/MySQL",
        "Wrote unit tests for each criterion dataset, matched against raw YouGov data"
      ],
      "stack": ["PHP", "MySQL", "CakePHP", "HTML5", "jQuery", "PHPUnit"]
    },
    {
      "co": "Vaultigo",
      "date": "Jan – Jun 2013",
      "title": "Contract Frontend Developer",
      "desc": "Built on a LAMP/Symfony2 stack. Spearheaded adoption of HAML/SCSS for maintainable, modular code.",
      "bullets": [],
      "stack": [
        "PHP",
        "Symfony2",
        "MySQL",
        "HAML",
        "HTML5",
        "SCSS",
        "jQuery",
        "Highcharts",
        "PHPUnit",
        "Jasmine"
      ]
    },
    {
      "co": "Goldsmiths, University of London",
      "date": "Jan – Jun 2012",
      "title": "Postgraduate Teaching Assistant",
      "desc": "Supported practical lab sessions for large groups (60+ students). Graded first-year undergraduate coursework.",
      "bullets": [
        "Communicated technical concepts to a diverse group in an accessible, clear manner"
      ],
      "stack": [
        "HTML5",
        "CSS",
        "JavaScript (ES5)",
        "jQuery",
        "PHP",
        "MySQL",
        "SVN",
        "Jasmine",
        "PHPUnit"
      ]
    }
  ]
}
