Keith Cirkel

Keith Cirkel

Software Engineer in London, UK, He/him

About

I love building the Web Platform! Systems engineer at GitHub. OSS Contributor.

Projects

Ongoing

It's great building out world-class documentation for Web Components! There's a lot to do but we're making progress

Ongoing

I love contributing to the JS spec

Ongoing
HTML

I love contributing to the HTML spec

Ongoing

This is the design system I've been working on at my job at GitHub

Writing

2022

Discover how GitHub thinks about browser support, look at usage patterns, and learn about the tools we use to make sure our customers are getting the best experience.

2021

At GitHub, we pride ourselves on delivering a first-class developer experience. A considerable part of our work is on our front end, which we strive to keep as lightweight, fast...

2016

Quickly discover solutions to common problems, best practices you can follow, and everything JavaScript has to offer. Using a problem-solution approach, this book takes you from language basics like built-in objects and flow control all the way to advanced optimization techniques, frameworks and Node.js.

Features

2019

In this episode of JavaScript Jabber, Keith Cirkel, Senior Application Engineer at GitHub, briefly explains the projects he is working with and moves on to the recent changes done by GitHub to their website, including the decision to remove jQuery, and not choosing a popular framework such as React or Vue. He talks about some problems in using Internet Explorer 11, how these GitHub changes can help with certain browser compatibility issues, and a few challenges the team had to face during the redesigning process.

Work Experience

2017 — Now
Remote (UK)

Working on the Web Systems & Primer teams, delivering GitHub.com's JavaScript & UI Components. Some notable projects:

primer.style/
github.com/github/github-…

2016 — 2017
Basingstoke, UK

Bought on for training role, upskilling existing team in Javascript, Node.js, AWS Lambda, TDD, Continuous Integration & Delivery, Agile & Scrum, Functional Programming. Porting existing ActionScript desktop app to Javascript using Electron, Node.js, Ramda & Sanctuary for Functional Programming, and Mocha & Chai for Unit Testing. Cultivated strong Agile workflow, strong TDD standards.

2016 — 2017
Londom, UK

Lead delivery for new Max Factor websites across all regions, including US, South America and UK markets. Using Node.js & Handlebars with a Drupal backend. Using Chai & Cucumber for testing.

2016 — 2016
London, UK

Assisted in migration of users to "FT Next" - the new iteration of FT.com. Primarily involved in migrating existing ft.com CDN from Akamai to Fastly, utilising heavy custom VCL code. Developed robust VCL test suite with continuous integration and deployment through Fastly deployment APIs, using CircleCI. Developed multiple front-end features including anonymous user marketing components, using Node.js, Handlebars, and FT's own "Origami" component framework.

2015 — 2016
London, UK

Bought on to train team on Node.js, React, TDD. Developed several microsites, assisted with architecture for overall web presence. Implemented continuous integration & delivery using semantic-release, Codeship, and Travis. Introduced strong unit test standards using Mocha & Chai. Architected tooling for painlessly provisioning new projects. Worked with team to cultivate strong open source standards, fostering a suite of open source React components, available at github.com/economist-comp…. Assisted in the interviewing and hiring of new candidates to join the existing team.

2015 — 2015
London, UK

Worked on a greenfield backend API communicating with SAP, using Hapi. Assisted in original architecture design, introducing Redis, Varnish, OAuth2 technologies, as well as architecture design for NFC authentication on the client side. Implemented Mocha and Chai for testing, with code coverage checking with Istanbul.

2014 — 2014
London, UK

Brought on to fold Paper-Shaker incubator code into PhotoBox. Worked with existing team to bring additional Node.js expertise to their existing stack - built on Node.js, Restify, MongoDB, Memcached. Introduced Mocha & Chai. Introduced JSON Schema as a way of validating endpoint responses in integration tests. Helped with migration of site to HTTPS.

2014 — 2014

Developing the Autographer Desktop application for Windows and Mac. Replaced the position of the lead developer, inheriting the 22,000 line Backbone JS codebase. Worked extensively on addressing performance concerns and adding new features - introducing much simpler and more robust components with the Polymer framework. Worked with existing junior developers & testers to cultivate a good working process, including introducing TDD using Mocha, Sinon and Chai, functional testing with Mocha, Selenium and Node-WD, and Code Reviews via Github. Assisted in the interviewing and hiring of new candidates to join the existing team.

2014 — 2014
London, UK

Hired to lead the Sky News team to developing a new iteration of the website to Node.js, from Java. Implemented a scaleable and repeatable architecture using Node.JS, HAProxy and Redis automated through Chef. Introduced Mocha, Chai, Sinon to the team for more effective testing. Worked extensively training team members to use new ES6 technologies, such as Promises.

2013 — 2014
London, UK

Developing a greenfield home automation product using ZigBee, web application and server side stack. Entered the project to introduce Node.JS to the team, develop the architecture and set up good working standards. Implemented a scalable architecture using Node.JS, Express, Redis, Cassandra, and MQTT for communicating with hardware. Consulted on hardware architecture and assisted in early developments. Guided the team through the ZigBee spec and implementing it across firmware and server side software. Cultivated strong working standards using enforced code reviews via Github pull requests and TDD using Mocha and Chai. Replicated the ideals through other Node.JS projects in the organisation.

2013 — 2014
London, UK

Developing the HiveHome.com web application & brochure site. Web development using Node.JS, Express, Redis, Backbone JS, D3 for Data Visualisation and Mocha and Chai for TDD, WebDriver and Selenium for functional testing. Extensive use of external APIs including integration with existing Salesforce platform. Introduced MVC Server Side concepts to the team. Developed a complementary internal telemetry dashboard using Dashing framework with custom build widgets. Introduced strong working set up using enforced code reviews via Github pull requests.

2012 — 2013
London, UK

Working on the Origin Mobile & Social application, featured in Fifa 14 mobile version. Entered the project to improve the existing codebase and outline strong standards across the team. Mobile JavaScript development, using Backbone JS, with Zepto and Underscore, using Jasmine for TDD. Extensive work in touch events & mobile optimisation. Created build automation & tooling with Grunt JS, and developed acceptance testing using WebDriver, across desktop and mobile. Conceptualised mobile debugging toolsets for developers.

2012 — 2013
London, UK

Porting a silverlight application to JavaScript, using Backbone JS, Raphael JS, with jQuery and Underscore. Built to be cross compatible, public facing application. Introduced very strong TDD standards using QUnit and Sinon for frontend, and BDD with Cucumber JS and WebDriverJS (Selenium). Introduced a good standard for Documentation Driven Development. Introduced GIT to the team, as well as using Jenkins for CI tasks. Assisted in hiring process for new candidates.

2011 — 2012
London, UK

Working on a internal project for BSkyB's call centres in an Agile software team using Javascript technologies including jQuery and Backbone JS. Entered the team to develop and expand on existing prototype. Implemented strong OOP architecture using Backbone JS with jQuery and Underscore. Use of Sass for CSS stylesheets. Utilizing latest HTML5 and CSS3 and Javascript technologies, including WebSockets with Socket.io. Introduced strong TDD standards using QUnit and Sinon for frontend. Improved End-to-End functional testing using JBehave and Behat. Created custom Open Source libraries fit-for-purpose including R.js (internationalization) and Jwerty (key binding). Contributed patches to Backbone JS core. Migrated team from SVN to GIT to help improve productivity. Assisted in hiring process for new candidates.

2010 — 2011
Farnham, UK

Lead Frontend Developer, turned Head of Creative, working with many key clients. Developed and maintained large income client projects developed in Symfony 1.4, utilising jQuery for all frontend interactivity. Involved in key technical decisions, liaising with clients and suppliers and organising and managing other team members. Managed a series of virtual dedicated Linux servers, running Cherokee web server with MySQL and PHP. Introduced GIT to the team with no existing version control.

2007 — 2010
Founder at BrightHue
UK

Founder of a Digital Agency. Developed and designed sites for large clients, utilising technologies such as PHP, MySQL, Javascript & jQuery. Managed and maintained virtual dedicated servers running a LAMP stack.

2003 — 2007
Freelancer at (Freelance)
UK

Worked with small clients developing and maintaining websites utilising technologies such as PHP, MySQL, Javascript & MooFX.

Volunteering

2013 — 2018
UK

Mentoring 9-11 year old pupils on how to program, using the Scratch programming environment.

Certifications

2023 — 2025

Passing the GitHub Actions certification exam validates subject matter expertise with applying continuous integration/continuous delivery (CI/CD) patterns and practices using GitHub Actions in the enterprise.

Contact

GitHub
Twitter