Curriculum Vitae

Karl O’Keeffe

I’m currently part of the front end team at Geckoboard where we are building an amazing dashboard product.

I’m a JavaScript (and CoffeeScript) guru who has developed large scale web apps with rich interfaces for Geckoboard, Qumu, 7digital, and Philips. I also have experience and passion in Interaction Design and User Experience, advocating heavily for the user. I have over 10 years solid experience coding HTML, JavaScript, and CSS for all browsers (even the shoddy ones). I strongly believe in using tooling to improve the development experience, from transpilers to hot code reloading. I enjoy working with continuous integration and short iterations of improvement and feedback.

I also feel it is important to understand all levels of development, and have ensured I have real work experience in server side development, project management, testing, and automating deployment.

I’m looking to focus my career on creating rich web applications that rival their desktop counterparts. I want to be developing using standards based technologies (Javascript and HTML 5), ideally for a large user base. I want to be working on the User Interaction Design and steering the design and behaviour of the apps. I want to be getting rapid feedback from short development iterations, A/B testing, and usability reviews.

Experience

Front End Developer | Geckoboard, London

November 2015 – Current

Geckoboard helps companies turn their key performance data into beautiful, accessible KPI dashboards that keep teams informed, motivated and data-driven.

Lead Front End Developer | Qumu, London

April 2010 – November 2015

Qumu provide a web app for businesses to create and share videos and presentations. This is used by a diverse range of clients from small businesses to multinational banks. Easily embeddable Widgets are provided to allow businesses to seamlessly share videos and presentations within their own sites, while the REST based API allows clients to customise their interaction with the product.

Tasks & Responsibilities

Building the front end for the Qumu online video editing platform, including online video trimming. Leading the front end team, from architecture to code reviews. Migrating from an in house JavaScript framework to Angular, while always being able to release. Building high performance embedded JS widgets for client sites (written in CoffeeScript). Designing the server and client API. Implementing automated build process with one click deploy and rollback.

Achievements

Designing and building the widgets project from scratch in CoffeeScript and PHP. Architecting a no-downtime one click deployment process that allows the widgets to be updated as needed without affecting any of the client sites they are used on. Introducing shorter development and deployment cycles to increase the speed of feedback and the pace at which improvements reach customers. Migrating to Angular without stalling the development process or doing a parallel implementation.

Technologies Used

angular, javascript, coffeescript, jquery, less, jenkins, html, css, php

Frond End Web Developer | 7 Digital, London

May 2008 – April 2010

7digital sell music online, direct to the consumer at 7digital.com, and business to business. They offer bespoke tailored sites (such as hmvdigital.com), white label stores (1000+ at last count), and a full catalogue and download API for 3rd party apps (such as Spotify).

Tasks & Responsibilities

Designing and creating the UI for a soon to be released Locker Plus rich client web app. UI development for 7digital.com and hmvdigital.com. Project management of download manager app. User Interaction Design and wire framing.

Achievements

Building Locker Plus UI from scratch in Javascript using the ExtJS framework Integrating qUnit, JS Test Driver, and TeamCity to automate the build and test process. User Interaction Design of Locker Plus, ensuring no modal dialogs, and hiding complexity. Seamless integration of desktop download manager functionality into web site.

Technologies Used

javascript, jquery, extjs, qunit, jstestdriver, teamcity, html, css, balsamiq, c#, ruby, cucumber

Front End Web Developer | CWA New Media, New Zealand

June 2006 – March 2007

CWA New Media develop web sites for education. They run TKI.org.nz, the largest education portal in New Zealand and the reference location for the national curriculum. They also run a number of education and technology initiatives.

Tasks & Responsibilities

Developing accessible XHTML and CSS templates and designs to stringent government guidelines. Working on internal productivity tools, web based and desktop. Developing a new version of the Digital Conversations site (digitalconversations.org.nz).

Achievements

Created a new JavaScript web based timesheet system, with streamlined auto saving interface. Developing and launching redesigned Digital Conversations site with a clean content focused UI. Producing productivity tools including a Firefox plugin, and tools for working with HTML that sped up content creation six fold.

Technologies Used

javascript, xhtml, css, php

User Interface Consultant (Contract) | Philips, Singapore

April 2006 – May 2006

Philips is a huge consumer electronics company, developing a wide range of electronic devices including televisions.

Tasks & Responsibilities

Hired for a 6 week project to develop a demo user interface to show off the power of a new interactive TV chip. The UI included TV channel browsing, on-demand movies, split screen web browsing, and a music player. It needed to work on Pal and HD TVs.

Achievements

Demo UI created from scratch in six weeks as a JavaScript web based interface, running in embedded Opera. Pre-loaded data and images provided excellent performance on constrained hardware. All functionality completed within tight deadline.

Technologies Used

javascript, opera, jsp, java, philips-tv-api

Systems Engineer | Formicary, London

June 2004 – June 2005

Formicary provide IT solutions for the Financial Services industry. Providing both bespoke solutions, and customisable software products.

Tasks & Responsibilities

Developing a web based inter-bank bond trading system. Providing bespoke software solutions, including a browser based chat client and server side data processing app. Consulting on User Interaction Design for sites and apps.

Achievements

Created the Java Swing UI for a bond trading app. This was multi-threaded for responsiveness and non-modal allowing multiple trades at a time. Developed a browser based chat client using COMET long polling to provide instant push of messages to every client. Developed a server side data processing app in Java using SwiftMQ to provide eventually reliable data transfer between disparate systems.

Technogogies Used

java, swing, swiftmq, html, css, javascript

Education

MEng Computing with Artificial Intelligence, Imperial College London, 1999 – 2003

1st Class Honours, top five in the year.

Courses Taken

Artificial Intelligence I/II, Operating Systems I/II, Software Engineering I/II/III, Architecture I/II, Databases I/II, Networks and Communications, Compilers, Distributed Systems, Robotics, Simulation and Modelling, Concurrent Programming (and Logic), Mathematical Methods and Graphics, Natural Language Processing, Multi Agent Systems, and many logic courses.

Projects Undertaken

  • Group project redesign of departmental website.
  • Masters Thesis on automated music analysis.

Projects & Interests

Dancing Monkeys, https://monket.net/dancing-monkeys/

Dancing Monkeys was my individual project while at Imperial College London. It is an application to automatically generate step files for DDR (Dance Dance Revolution)…

Created as part of my final year project at university. Released as open source and maintained for a few years by another developer.

Sign Monkey, http://www.signmonkey.net/

British Sign Language video dictionary.

Beneebs - Random Name Picker for the Classroom, https://www.beneebs.com/

A tool I created for my teacher wife, to allow her pick students at random from her class when asking questions.

Writing

Blog, https://monket.net/blog/

My personal blog (no longer updated).

Background

Travel

I have made a number of major trips around the world to visit and work in other countries, and experience other cultures. Last year I traveled to Thailand for a yoga training workshop. Between 2005 and 2008 I traveled and worked through Asia and New Zealand, spending time to train as a dive master in Indonesia. After University I spent 6 months traveling and working in Australia, living in a camper van and diving the Great Barrier Reef.

Interests

Parkour (free-running), Capoeira (Brazilian dance/fight/game), Inline skating, Flatland BMX, Snowboarding, Skateboarding, Yoga, Diving and Freediving (breath-hold diving), Climbing, Thai Massage, Intelligent movies, User interface design and usability, Travel, Psychology and Social Behaviour.