BH

Developer & Designer
arguments.length>1||(cb=alert)
arguments[0]&&(cb=alert)
a=b<1+a;x(a,1);
((a=b.pop(),b.pop())+c+a)
vara=1,b=2,c;c=a;a=b;b=c
vara=1,b=2;a=[b,b=a][0]
a=[];i=0;for(binwindow)a[i++]=b
for(i=3;i--;foo(),bar());
if(c)for(ainb)x(b[a]);
hasAnF="Thissentencehasanf.".indexOf("f")>=0
with(document){open();write("hello");close()}with(document)open(),write("hello"),close()
typeof[]
rand10=Math.floor(Math.random()*10)
Math.floor(a/2)
Math.round(a)
Math.round(-a)
million=1000000
color=0x100000
[Infinity,-Infinity]
if(isFinite(a))
a==1||console.log("notone")
i=i||0;i++
i=i||0;i--
if(a!=123)
i=0|Math.random()*100
"alpha,bravo,charlie".split(",")
html=""+text+""
for(a="",i=32;i--;)a+=0
if(a)if(b)returnc
[undefined,undefined,2]
b="";b+=x
((b=[1,2][a])?b:'')
''+[1,true,false,{x:1},0,'',2,['test',2]]
''+1e3+3e7
"rgb("+(x+8)+","+(y-20)+","+z+")";
"rgb(255,"+(y-20)+",0)";

		
x.replace(/./,function(c){m=m+c.charCodeAt(0)&255})
[true,false]
x>7?2:x>4?1:0
true===!0
a=Math.random(),b=Math.random()
function(i){returnfunction(){console.log("called"+(++i)+"times")}}(0)
now=+newDate()
r=newRegexp(".",g)
return['foo',42,'bar'];
x=this;a=[].slice.call(arguments,1);a=[x=this].slice.call(arguments,1);
arguments.length>1||(cb=alert)
arguments[0]&&(cb=alert)
a=b<1+a;x(a,1);
((a=b.pop(),b.pop())+c+a)
vara=1,b=2,c;c=a;a=b;b=c
vara=1,b=2;a=[b,b=a][0]
a=[];i=0;for(binwindow)a[i++]=b
for(i=3;i--;foo(),bar());
if(c)for(ainb)x(b[a]);
hasAnF="Thissentencehasanf.".indexOf("f")>=0
with(document){open();write("hello");close()}with(document)open(),write("hello"),close()
typeof[]
rand10=Math.floor(Math.random()*10)
Math.floor(a/2)
Math.round(a)
Math.round(-a)
million=1000000
color=0x100000
[Infinity,-Infinity]
if(isFinite(a))
a==1||console.log("notone")
i=i||0;i++
i=i||0;i--
if(a!=123)
i=0|Math.random()*100
"alpha,bravo,charlie".split(",")
html=""+text+""
for(a="",i=32;i--;)a+=0
if(a)if(b)returnc
[undefined,undefined,2]
vara=1,b=2,c;c=a;a=b;b=c
vara=1,b=2;a=[b,b=a][0]
a=[];i=0;for(binwindow)a[i++]=b
for(i=3;i--;foo(),bar());
if(c)for(ainb)x(b[a]);
hasAnF="Thissentencehasanf.".indexOf("f")>=0
with(document){open();write("hello");close()}with(document)open(),write("hello"),close()
typeof[]
rand10=Math.floor(Math.random()*10)
Math.floor(a/2)
Math.round(a)
Math.round(-a)
million=1000000
color=0x100000
[Infinity,-Infinity]
if(isFinite(a))
a==1||console.log("notone")
i=i||0;i++
i=i||0;i--
if(a!=123)
i=0|Math.random()*100
"alpha,bravo,charlie".split(",")
html=""+text+""
for(a="",i=32;i--;)a+=0
if(a)if(b)returnc
[undefined,undefined,2]
vara=1,b=2,c;c=a;a=b;b=c
vara=1,b=2;a=[b,b=a][0]
a=[];i=0;for(binwindow)a[i++]=b
for(i=3;i--;foo(),bar());
if(c)for(ainb)x(b[a]);
hasAnF="Thissentencehasanf.".indexOf("f")>=0
with(document){open();write("hello");close()}with(document)open(),write("hello"),close()
typeof[]
rand10=Math.floor(Math.random()*10)
Math.floor(a/2)
Math.round(a)
Math.round(-a)
million=1000000
color=0x100000
[Infinity,-Infinity]
if(isFinite(a))
a==1||console.log("notone")
i=i||0;i++
i=i||0;i--
if(a!=123)
i=0|Math.random()*100
"alpha,bravo,charlie".split(",")
html=""+text+""
for(a="",i=32;i--;)a+=0
if(a)if(b)returnc
[undefined,undefined,2]

Ben Howdle

JavaScript and Product.


I've been specialising in JavaScript based technologies since 2010 and led the JavaScript development of KashFlow's Backbone.js web-app in 2013. In 2014, I spent half my time helping startups architect and improve their front-ends, and the other half releasing my own products and open source projects. More recently, I've been training individuals & companies alike on their JavaScript skills and working with Cisco to develop an internal real-time testing tool.

Side projects

A selection of personal projects that I'm proud of.


Plot

Designed by Jack Smith and built by myself, Plot is an iOS app to discover, plan, and share the movies you watch.

Download for iOS Website

FlickFeed

FlickFeed is a delightfully simple way to show Flickr photos on your website.

Website

ReqRes

A hosted REST-API ready to respond to your AJAX requests, perfect for testing your front-ends against.

Website

Developer-for-hire

From start-ups to enterprises, I've delivered quality software and consulting.


Consulting

Web applications

From working with larger teams to smaller startups, I'm well versed in where and how bottlenecks can appear, then how to solve and avoid them. I'll work with you or your team to plan, architect and review how you can achieve seamless development, whether its mapping out an API or picking a JavaScript framework, I can impart my knowledge and point you in the right direction.

Consulting is booked in 2 hour blocks, at £250/hour.

As a guide, it would be better to use this time for me to help you plan and advise, not actually develop.

Book now

Private training

On-site JavaScript workshops for your team

Tailored, custom training delivered face-to-face is unbeatable. We'll chat beforehand about the specific areas that would be best to cover, which I'll then use to create the workshop.

Custom on-site workshops at £2000/day (+ travel/accommodation expenses) for up to 10 employees.

I'm based in the UK, but that doesn't mean I can't travel if you're internationally based.

Book now

Contracts & Projects

For when you need more than consulting

Contracts/projects at £500/day for front-end or Node.js development.

I primarily work remotely, but I'll travel to most places for a kick-off meeting/face-to-face chat.

Book now

Testimonials

Nice words from people I've worked with in the past.


Duane Jackson

@duanejackson

"I hired Ben to lead the redevelopment of our SaaS application from crusty old code into something more modern. He made suggestions - along with pro's and con's - that helped us decide which way to go. We ultimately went with his recommendations. I quickly came to depend on Ben's knowledge and expertise on all aspects of the development of our Backbone.js app. His wider experience with other aspects of product architecture, such as REST APIs and CSS was also invaluable. Unlike your stereotypical uber-techie, he's also very personable and everyone enjoyed working with him. I've come to regard him as the foremost expert in his field"

Svilen Gospodinov

@svileng

"Organising and running ng-workshop with Ben was a great experience. He is an excellent teacher and more than willing to share his knowledge building and scaling web applications. He covered everything from basic JavaScript concepts to high-level architecture and best practices, and made sure everyone is at the same level by the end of the day. We received very positive feedback from all attendees after the event. I don't think the workshop would have been such a success without Ben."

Jamie Edwards

@jmedwards

"Ben was able to apply his front-end development and architecture experience from day one, helping us come up with and validate key architecture choices and avoid costly mistakes as we scale Kayako to be used by 10,000s organisations worldwide to support millions of end users. We found Ben's advice to be realistic and pragmatic, factoring in resource constraints, business needs of the day and balancing those with future scalability benefits. We are relieved to have had Ben part of our design process - his early contributions have saved a potentially limitless amount of developer time, pain and costs down the line."

Tom Alterman

@tomalterman

"Ben built us responsive front-end framework that minimised maintenance and increased developer efficiency. He was able to quickly understand our needs and provide us with the building blocks we needed to scale our front-end."

Pui-Ling Lau

@linglau64

"Ben's Javascript for Beginners workshop was extremely useful. He covered the fundamentals of Javascript in one day and I've come out of it with the knowledge and confidence to write pure Javascript when I code. The workshop was in a small group, so it was easy to chat, and he is very approachable which meant I wasn't afraid to ask questions. The topics were interactive and dynamic and definitely grows your appetite to code and learn more. I'd recommend this workshop for anyone stuck in learning JavaScript."

If there's another arrangement you're proposing, we can certainly still discuss working together.

Message me on Twitter or add me on Skype for any quick questions.

Complete discography

The full back-catalogue of projects, open-source libraries and applications that I've built.


2015

Varr

A Node.js variable-replacement preprocessor for CSS files.

2015

deSVG

Remove inline SVG bloat from your HTML document and style them with CSS.

2014

ReqRes

A hosted REST-API ready to respond to your AJAX requests.


2014

Ubiq

Easily share tracks, artists or albums across different music services.

2014

iHi for iOS

Easy location sharing, with routing provided by Apple Maps.

2014

Referrral

Recommend your friends, pay it forward.


2014

Permeate iOS app

Get the best from your twitter and cut out the noise.

2014

CMYK

Real-time design feedback.

2013

Tractile

Sass generated CSS3 slider.


2013

iHi

Easy location sharing.

2013

Touche.js

A minimal JavaScript library for touch devices.

2013

Cortado.js

A JavaScript library for creating views in your applications.


2013

Trailed

A Node app I worked on to encourage blogging conversations.

2013

Permeate

A Node.js web app for getting the best of Twitter.

2013

Skillswap

A site I designed for people to swap their skills with each other.


2013

Upfront Podcast

A weekly podcast I co-hosted covering all that is front-end.

2013

Heisenberg.js

A modern base project for JavaScript web apps.

2012

Costarred

A pure JavaScript app for finding actors who've appeared together.


2011

CSS Selectors

A mini-site helping people visualise how different CSS selectors work.