Having recently finished my placement year in industry as a web developer, I feel I’ve learnt quite a bit. Antony Kennedy, however, has been a web developer since BEFORE the dot com boom, and has a wealth of experience. Let’s be honest—when you’ve done work for the likes of the BBC, BSkyB, Tesco, Disney and Channel4, it’s pretty obvious you must be one of the top people around. Now working for a “fruit company” (that’s all we can say) as a senior front-end engineer, Antony is also an author of both a fantastic book (Pro CSS for High Traffic Websites) and sweet, sweet music Clawsality which is now on iTunes. (I’m not just saying that, either!) If you’re unaware, we’re actually giving away one copy of his co-authored book. Further, he has spoken at several events and created a tweeting doorbell.
We asked Antony a few questions about himself, his work and his book.
Please introduce yourself in 140 characters or less…
Hi, I’m Antony. I make websites and stuff.
How would you define “front end developer”?
Someone who develops primarily in the context of a web browser.
Your job titles have ranged from Web Developer to CTO, and your specialties are numerous. What area do you enjoy working in the most, and why?
Definitely the front-end stuff—JS, HTML and CSS. I love the instant gratification; we always get the credit when something works well. You only notice the server-side developers when something is broken. I also really get off on the fast pace of it all—things can change so dramatically in a few years, and our industry is really passionate about doing things well.
Rumor has it you made a tweeting doorbell. What inspired that idea?
It’s true. I’d always wanted my doorbell to send me growl notifications, so I’d have a history and would notice someone was at the door even when I was in the garden (or a nearby pub). Then Twitter came along, and it was a logical progression of the idea. Actually, it can be a bit intrusive, and a friend of mine asked me (very fairly), “Don’t you ever want to be left alone?”
What did you do before you became a web developer, and how did you move into that role?
Technical support. My first job, I was fixing everyone else’s computers and didn’t even have my own computer. I slowly put one together out of the parts in the office. I made my own speakers from motherboard speakers and cardboard boxes. I didn’t have a mouse for 6 months. I highly recommend everyone try not having a mouse for a period of time—it forces you to learn all the keyboard shortcuts and makes you super-productive. Anyway, as the company become more successful, we hired more and more technicians, and I became the head technician. Through good delegation I had more and more time on my hands, and the Internet was just taking off, so I built a series of training guides in HTML. Thinking of the kind of code I would have written back then makes me shudder… I was offered a position and training in Lotus Notes, or to move into web development. I am so glad I made the decision I did!
What inspired you to write a book?
The book represents a lot of ideas about CSS and process in web development that reflect the real world, and sensible and pragmatic ways of working. I became frustrated about some of the touchy-feely, awful advice developers were being given, and Yaili and I decided it would be a great project to embark upon.
Can you give us an overview of the chapter you most enjoyed writing?
All of the chapters were great to write—writing about something really tests your knowledge of it—but I think the performance stuff was the most interesting, and easy to implement. I learned a lot myself in the process.
With the recent news we will be seeing more tools to aid debugging of minified JS and the likes of CoffeeScript, are we about to see a rise in the use of pre-processor scripting?
That’s difficult to say. When we talk about a big rise in the uptake of something, we really notice that in start-ups and such—not really in big businesses or very highly-trafficked websites. I’m not a fan of CoffeeScript, but perhaps I’ve not given it a fair go as of yet. I’m loving NodeJS, but it’s so difficult to try everything that’s out there and keep up. Debugging minified JS is so useful, but I’m never going be comfortable working in that kind of code. I think there will always be a place for easy-to-read code, and build scripts.
After reading your book, am I correct in assuming you’re a big fan of LESS / SASS? If so, do you actively use them?
I love the CSS pre-processors. There are some obvious disadvantages to using them, but without going into too much detail, the advantages far outweigh them.
Without being too bitchy, I am no longer a huge fan of LESS, although I was before. During the authoring of that chapter, LESS was moved from being based in Ruby to NodeJS—with no explanation, or changelog, or anything. Most of my code examples were broken, and I had to rewrite that entire section. This prompted me to write a section on how to evaluate third party libraries, of which LESS fails every point. So, maybe it was great fun to code in LESS, I decided it was not something I could recommend for a production environment.
I’ve recently looked at Stylus, which is fast and compiles and minifies really nicely—but the uncompiled code seems very verbose and hard to read. SASS is definitely my favourite – in particular SCSS. I’m not sure why it has less love than LESS, but it’s better-built, more full-featured, and seems to be written by conscientious developers; it passes all the points in my checklist.
Sadly, I’ve not yet come across a SCSS parser for NodeJS so (hypocritically), I am using LESS right now in some projects, but I certainly don’t use it in large production environments.
There are several important tips here.
1) Know how to do whatever you’re doing as virgin code, as well as via a pre-processor, or you won’t be able to debug it.
2) Understand exactly what the pre-processor is doing, and what the output will be. For example, nested selectors in LESS or SASS are very cool, and feel nice and tidy, but the outputted code is likely to be unnecessarily highly specific and inefficient.
3) Know the disadvantages of using a pre-processor—such as difficulties locating lines and selectors when debugging, etc.
I would also, obviously, recommend you buy our book.
What’s the one debugging tool you can’t live without?
Charles is an absolute lifesaver – especially for fixing bugs on production environments without touching them. I would find it very difficult to do without that now.
People always argue about which browsers’ developer tools they think are best. How do you think the main browsers compare?
Firebug is still the most mature, but it’s not included in Firefox by default so it would seem unfair to attribute that to Mozilla. WebKit’s dev tools are the most feature-rich now (although the UI still seems clunky compared to Firebug), and Chrome has a more frequent release cycle than Safari, so its tools are always the most current. I guess Chrome is the winner.
That said, though, Opera Dragonfly has some really nice features built in, and is under rapid development, so it’s well worth considering, too.
Any other planned Arduino / Twitter projects lined up?
The tweeting doorbell is sadly not an Arduino project. I just found a load of tools that worked really well together and wrote some fancy AppleScript. If you want to see some fancy Arduino work, I’d suggest you check out my friend’s site http://wi-drive.co.uk/, with instructions on how to drive an R/C car from your iPhone!
Out of all the places you’ve previously worked, where do you think you’ve grown the most and why?
Definitely the BBC. Before I worked there, I was under the impression I was an awesome developer with little to learn. Being surrounded by developers that were *actually* awesome showed how wrong I was. I learned an awful lot there, and have been learning ever since.
Have you ever pulled an all-nighter, or early hours on a project? (What was it and why?)
Of course! The one that comes to mind was for a company called AdTool – a deployment was due the next morning and the client was expecting it, or we were in trouble. Unfortunately myself and the other lead developer had deemed it sensible to attend a Christmas party and were a little worse for wear! We did our best, struggling through a drunken haze, trying to type things that made sense, but it just wouldn’t work. We passed out at 6am. When we woke up at 9am, we discovered we had just spelt the password wrong, and we fixed it with 15 minutes to go until the deadline.
What’s the best bit of advice you have ever received?
Clever is not the same as good.
Also, my favourite interview question is “what would you ask you, if you were me?”
What websites do you visit on a daily basis?
I see you’ve spoken at Standards-Next. Will we be seeing any more talks?
I’m interested in doing a talk (and possibly another book) called “How to do SEO without being a ****”. I may suggest this to someone at some point.
What are you currently most excited about on the Internet in general?
I am really loving NodeJS and Jade right now, but terrified about the lack of documentation for all of the new initiatives popping up all over the place. Without documentation, it is very difficult for this things to reach highly trafficked websites. But they’re great for playing with.
Anything else you would like to mention?
Thanks very much for reaching out for the interview, and I really hope you’ve enjoyed the book. For anyone based in London, I’d love you to come along to one of our MF Boat meet-ups http://mfbo.at/ (where geeks get drunk on a boat) or to catch up with you at BarCamp or a conference sometime.
Thanks for your time and insight, Antony! We look forward to seeing the reactions you get to this interview.