Hakim El Hattab discusses the interactive and unexpected

One of the web's finest and most creative coders discusses motivation and experimentation.

Hakim is a Swedish engineer who loves interactivity, graphics and animation. He's also obsessed with the open web and pushing its development in unexpected directions.

If you're looking for a quick introduction to his work, you can find it by visiting his site. To appreciate his influence, in all, his experiments have been served to over 140m people around the globe. He's the co-founder of Slides and creator of Sketch Toy. Hakim also built the open source framework reveal.js.

Why don't you introduce yourself?

I'm a graphically-oriented Swedish engineer who enjoys crafting things that are animated, interactive and sometimes unexpected. Recently, I find myself working mostly on web apps and user interfaces, but I used to build a lot of games and generative visual experiments. I'm a proponent of open source software and release most of my work through permissive licences on GitHub for the benefit of the community. One of my more well-known open source projects is reveal.js, a HTML presentation framework that's used by tech conferences around the globe.

Some of the more notable features of the reveal.js open source HTML presentation framework are PDF export, nested vertical slides, live streaming via Node.js, speaker notes and an extensive JavaScript API. The source code for this is freely available at github.com/hakimel

When did you first discover the web?

My interest in the web grew out of a curiosity around user interfaces, which in turn came from playing a lot of video games. I was intrigued by the GUI design for the games I played. It was obvious that some interfaces were far more intuitive than others but I didn't know what to attribute that difference to.

Eventually that led to a desire for building my own interfaces, so with great excitement and ample optimism I dove into HTML … in 2003. It would be an understatement to say that HTML, at the time, didn't live up to my dreamy expectations. Soon after, I decided to switch to Flash, which had more interactive and graphic prowess. That's where I really got started down the web development path.

Are you self taught?

My search for schools came from the viewpoint of an aspiring Flash developer. I ended up studying digital animation, but that turned out to be a bad match since it was almost exclusively focused on video and post-production. Thankfully the professors were flexible and let me tailor the curriculum to pursue what I really wanted.

From there on I have always learned through trial and error. I bought the ActionScript 2.0 Dictionary and painstakingly went through it page-by-page, line-byline, property-by-property. Every so often, I stopped to try out the exciting new discoveries. Over the course of that year I rebuilt my portfolio site six times to make use of what I had learned during the prior iteration. Evidently, I'm a believer in hard work over talent.

And what path has your career followed since then?

I've almost exclusively worked on the web, with the exception of a few mobile apps.

Slides co-founder and reveal.js creator El Hattab doesn't have an office but his workspace always includes a MacBook Air, AIAIAI Tracks headphones and an iPhone 5

Where's the fascination in writing software? Do you enjoy solving problems or is there something more?

Writing code isn't very enjoyable in itself but it's a necessary tool for translating ideas into pixels. That feeling of making something out of nothing is what really drives me. We're so very fortunate to work in this field where all it takes to create something is a computer and an imagination. These are also the reasons why I love writing JavaScript. Its loosely typed nature makes it feel OK to keep things simple, avoid over-engineering and produce results quickly.

What was your first paying gig as a coder?

I got an internship at Fiin Stockholm, which led to a full-time job and me dropping out of school. Up until then, I had been teaching myself so I really needed a push from experienced peers to turn coding into a profession. The learning curve during those first six months of employment was intense and I remember having the strongest case of impostor syndrome. Thankfully that subsided over time and I ended up working at Fifor almost five years.

Sketch Toy stores every single point in the lines you draw and, when a saved sketch is shared, the app will replay it point-by-point

What's your take on Code Club and other drives to get kids coding?

Code Club is a wonderful initiative. As children are growing up exposed to more technology, I think providing geographically diverse and easily accessible gateways into coding is much needed to capture a growing curiosity. Making this available outside of the normal curriculum is great too, considering how complex it can be to bring about change within the school system. Personally, I'm not sure I would have been ready to get into programming at age 11. But the technology landscape was very different then so it's hard to compare.

Looking across all the experiments on your site, which is your favourite?

Sketch Toy is the one I'm most proud of because of what people ended up creating with it, how popular it got and how much I learned along the way. There's something very fulfilling about building a tool that others create with. Even more so when the things they create are far beyond what you thought the tool would be capable of.

The project played out like many of my other small experiments: I built most of it over the course of a few days, released it, got some positive feedback and watched it die out slowly but surely. It wasn't until two years later that it unexpectedly hit home with a new audience: South American teenagers. Turns out there are a lot of them!

El Hattab's game Sinuous was made for the 10k Apart competition, which challenged developers to build a web app in under 10Kb. It took home the grand prize

This new-found audience led to an interesting few weeks where most of my time was suddenly occupied with something I had no experience in: server configuration. I'm terrible with servers and find them difficult to deal with but ended up learning a whole lot in the process. At peak times the single server I'm running has dealt with over 30,000 concurrent users without noticeable slow down. Now, a year later, the site has seen over 140m visitors and 57m saved drawings. Still, the server stands.

Who do you admire most in the CSS / creative coding world right now?

Mr.doob is, and has for a long time been, a big source of inspiration. His Flash demos always amazed me and his early experimental work with JavaScript is what made me want to get started with my own. I really admire the ideas and creativity behind the projects. Looking back at it now, my current coding style is heavily influenced by what I saw then.

What tools, sites and services let you get through your day, profitably and with your sanity intact?

Working on my first software as a service, Slides, has made me realise just how important it is to manage support and feedback efficiently. We use UserVoice, which is a holistic solution for support, user feedback and help articles. I couldn't be happier with it. HipChat is another favourite, which has been immensely helpful when collaborating cross-atlantic. It works very well for asynchronous communication and seamlessly integrates our deploy status and GitHub updates. I'm also an avid user of the to-do list app Clear. When things pop up at a time where they can't be immediately dealt with, it's relaxing to just commit them to a list. As soon as it's on that list, there's no longer any reason to keep it in mind.

Providing accounts, hosting, exporting, forking and many other helpful workflow features, Slides has been doing incredibly well since it launched almost a year ago. El Hattab will now be working on it full time

What about side projects? Are you working on anything cool?

I'll be working full-time on Slides, a platform for creating and sharing presentations that I founded together with Owen Bossola. It's been doing really well as a part-time project over the past eight months, but it's starting to demand more attention. Slides makes use of my open source presentation framework called reveal.js, so I'll be working a lot on that as well.

There are a good number of cats in your experiments! Are they yours?

I wish! We used to have a lot of cats growing up, but there's much too few of them in my life now. I compensate through my experiments.

This article originally appeared in net magazine issue 251