Lewis Cowper

I'm a web and JavaScript developer, based in Berlin, Germany, who enjoys working with and learning a variety of technologies. My favourite things are offline capable web applications, clean design, swiss type, and modular software.

I love doing open source work, so if you know of any projects that I could work on, get in touch with me. Equally, if you'd like me to speak at your event, please let me know via email or over Twitter.



Forklift Driver to Developer in 9 Months at JSUnconf 2015, ScotlandJS 2015, JSConfEU 2015 (Video, Slides)
Worker as a Service (With Ola Gasidlo) at JSUnconf 2015 (Slides - by Ola)
Service Worker in Gifs at JSUnconf 2015 (Video) Conc.at 2015 (Video, Slides)

Areas of Interest

Programming Projects


This module tries to find out whether you're using a CLI tool with "--force" or "force", if you pass it the arguments list.


A markdown parser that uses chalk to print a markdown file nicely in the terminal.

Service Worker Demo

When I thought about extending my lightning talk on ServiceWorker, I really liked the idea of implementing it, so I wrote an application that renders London Underground and DLR stations on a map, and tells the user about any disruption on the network.


I'm a Hoodie community member, and thoroughly enjoy contributing to the Hoodie Open Source project, as it gives me a chance to tackle more Javascript and Node.js, and use a real life project to learn build tools like Grunt, and packaging projects for npm. Hoodie is a Javascript framework that takes care of the backend for you, so entire apps can be written in frontend code. This means that Hoodie is fantastic for prototyping apps, but it also has a killer feature. Hoodie is one of a growing number of methods to handle the Offline First design pattern. This means that data is processed asynchronously, when a connection to a remote database is present, however the interruption to the user is non existent, as the app stores data locally.

Star Wars API Wrapper

I created an API wrapper in Chicken Scheme for the Star Wars API. This API makes REST requests. I learned enough to try my hand at a Lisp based language, the day after learning anything about Scheme. I really enjoy the simplicity/complexity combination with Lisp, where nothing is more complex than (function arg1 arg2), but the power of passing functions into functions is brilliance.

Local Usergroups

I attend and speak at a number of usergroups, including BerlinJS and Up.Front.ug here in Berlin, and in the past when I live in Sheffield, PySheff (Python Sheffield), Sheffield.js (Javascript), def shef (Functional Programming), First Play Sheffield (Video games general), ORGSheff (Open Rights Group Sheffield), and use these as learning opportunities, and also to network among peers in the local area.

Work Experience

HitFox Group - Front End Engineer - (Aug 2015 - Present)

I am involved in projects both related to the startups that HitFox and Finleap create, and internal tools to make our colleagues' work easier. I create React and Redux based applications, and contribute architecture guidance in relation to our microservice architecture.

WANdisco - Jr UX Engineer - (Sep 2014 - July 2015)

I am in charge of UX/UI design and implementation for our Access Control Plus application. I also take part in the design of new products, and new features in existing products. For me it's important that our products have the simplest user flow, without losing any functionality. I'm also involved in the implementation of those interfaces, often trusted to go from service through to the view. We use AngularJS, which is a really good fit for our workflow and requirements, and we use Grunt as our build tool.

WANdisco - Jr Test Engineer - (Jan 2014 - Aug 2014)

I performed regression testing across WANdisco's ALM product line, and often more targeted testing around diagnosing a specific issue. As such, I was expected to have a working knowledge of Git and SVN usage across a command line interface or via various GUI packages. I set up numerous Linux virtual machines to test our software on, and administered the tests either via the UI of the product, or across a remote shell session. I also created and maintained test cases via Gurock TestRail, and am familiar with the Jenkins Continuous Integration server. If a regression did occur, I used Jira to raise issues, and I was also confident using Atlassian's Confluence to find and write internal documentation.