From Monket
Download:
- Karl O'Keeffe's CV (Word 49KB)
- Karl O'Keeffe's CV (PDF 94KB)
Karl O'Keeffe
Phone number available by email
karl@monket.net,
http://monket.net
Personal Profile
I am front end Web Developer based in London, currently working for Kulu Valley on cutting edge JavaScript video web app. I’m a JavaScript and CoffeeScript guru who has developed large scale web apps with rich interfaces for Kulu Valley, 7digital, and Philips. I also have experience and passion in Interaction Design for web site and web apps (with forceful ideas on how the user should be treated). I have over 5 years solid experience coding HTML and CSS for all browsers (even the shoddy ones). I enjoy working with Test Driven Development, 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.
Work Experience
Front End Web Developer | Kulu Valley, London (permanent)
April 2010 – Present
Kulu Valley provide a web app for businesses to create and share videos and presentations. This is used by a diverse range of clients from The Roundhouse in Camden through to a number of large investment banks. Easily embeddable Widgets are provides to allow businesses to seamlessly share videos and presentations within their own sites.
Tasks & Responsibilities
Building an online video editing package with an in house JavaScript framework (equivalent of Ext JS or SproutCore). Building high performance embedded JS widgets for client sites (written in CoffeeScript). 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.
Technology Used
CoffeeScript, JavaScript, jQuery, Jasmine, Hudson, HTML, CSS, PHP, and Kulu Valley's in house JS framework.
Front End Web Developer | 7digital, London (permanent)
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.
Technology Used
JavaScript, jQuery, ExtJS, qUnit, JS Test Driver, TeamCity, HTML, CSS, Balsamiq, C#, Ruby, Cucumber.
Front End Web Developer | CWA New Media, New Zealand (contract)
June 2006 – August 2006 (extended to 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.
Technology Used
JavaScript, XHTML, CSS, PHP.
User Interface Consultant | Philips, Singapore (contract)
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.
Technology Used
JavaScript, Opera, JSP, Java, and Philips TV API.
Systems Engineer | Formicary, London (permanent)
June 2004 – June 2005
Formicary provide IT solutions for the Financial Services industry. Providing both bespoke solutions, and customizable 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.
Technology Used
Java, Swing, SwiftMQ, HTML, CSS, JavaScript.
Reason for Leaving
I was uninspired by the lack of focus on a product or service within the Financial Services industry so I left to travel and pursue new opportunities.
Web Developer | Imperial College London (contract)
July 2003 - September 2003
Responsible for creating the Department of Computing website following the Imperial College re-branding guidelines, including site structure, server side PHP coding, database integration. Results include increased functionality, ease of use and learnability, with conversion to valid semantically rich pages.
Application Programmer | Barclays Capital, London (contract)
July 2002 - September 2002
Rapid application development for Product Control Group. Requirements elicitation, development, user testing and rollout of new web based document management system in four weeks. Development of Excel based quick reporting tools with 3rd party database integration. Constant user feedback and testing.
Information Extraction Researcher | Volantia Inc, London (contract)
April 2002 - June 2002
Responsible for creating state of the art information extraction algorithms. Created a regular expression based, context free grammar system for specifying extraction rules. Prototyped in Perl and developed in Java. Provided an order of magnitude speed improvement, with greater expressivity and ease of use, over the previous version.
Undergraduate Researcher | Imperial College London (contract)
July 2001 - September 2001
Developed a framework for developing code using an FPGA with an embedded processor, which allowed code running on the processor to call 'hardware functions' compiled onto the FPGA. A concrete example of this framework was constructed for Altera's Excalibur system, using Quartus II, Verilog and C.
Education
MEng Computing with Artificial Intelligence | 1999 - 2003
Imperial College London
1st Class Honours, top five in the year.
Courses taken include:
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.
A-Levels and GCSEs | 1995 - 1999
St. Peters Catholic Comprehensive, Guildford, Surrey A grade Maths, Physics and Computing at A-Level. 9 A-C grade GCSEs.
Projects
Monket Calendar
An on/off project to create a clutter free, simple, and fast online calendar with support for creating, editing, and deleting events on the fly using Ajax. The current version integrates with Google Calendar using their API, the previous version was standalone.
The previous version can be found here: [ http://monket.net/wiki/monket-calendar Old Monket Calendar].
Loris | Autotest and build for JavaScript and CoffeeScript
A small tool that sits in the background automatically recompiling CoffeeScript, running JavaScript Lint, and running any tests whenever a file is created or changes. It provides immediate feedback on syntax errors or broken tests without the need for a build or commit. Now used as standard on all work and home projects.
Sign Monkey | Online BSL video dictionary
Sign Monkey is an online video dictionary of British Sign Language with 700+ signs. It is optimised for desktop, iPad, and iPhone using CSS media queries. Search as you type for all signs is provides by the Widgets I wrote for Kulu Valley.
Automated Analysis of Music for Creation of Dance Tracks
2003, Masters Thesis, Imperial College London
Dancing Monkeys
Developed a program to analyse polyphonic music in order to generate
patterns for the Dance Dance Revolution arcade game. Analysis using FIR
filters, Self Similarity Matrices, state of the art beat detection algorithms, and
heuristic rules for pattern generation. Resulted in the development of a highly accurate beat detection algorithm and a new technique for representing polyphonic music as a linear set of repeating sections .
QUnit to JS Test Driver Adapter
QUnitAdapter
To merge the benefits of the Google JS Test Driver JavaScript test runner with the simplicity of the QUnit test syntax I created an adapter that can run QUnit test suites unmodified in the JS Test Driver runner. It was accepted into the JS Test Driver project as the first user contribution.
Awards Received
£250 Bursary for excellence in exam results (top five in the year) in the first year.
One of two prize-winning group projects in the third year.
Distinguished final year project, one of four.
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.
Technical Skills
Proficient in:
- Web application development in CoffeeScript, JavaScript using jQuery and Ext JS.
- Complete web site creation, from look and feel through to backend coding, using (X)HTML, CSS1, CSS2, CoffeeScript, Javascript, Ajax, JSP + Struts, and PHP.
- User interaction design.
- Graphic Design.
- Ruby, C#, Java, Prolog, Firefox extensions, and SQL.
Experience in:
- C, C++, Verilog, Haskell, Python, Delphi, Flash, and Assembler
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, and Beer.
References
First class references available on demand.