Interview: Jonathan Snook
Jonathan Snook, better known as Snook, is a web developer from Canada with over 15 years of experience in web development. You’ll probably know Jonathan from his blog where he writes about web development related topics, from his book SMACSS (or from one of the other books he coauthored) or from his appearances at conferences across the globe where he speaks about his passion; web development. In this interview we ask Jonathan questions about his personal life, about his career as a web developer and about his career as a speaker and writer. Find out who Jonathan is, learn from him and let his answers inspire you.
Are you on a Windows- or Apple computer?
I use a Mac.
What is your favorite internet browser?
Chrome was my favorite browser for a long time but I’ve recently switched to Safari. No, scratch that. Back to Chrome. Maybe I should try Opera?
What kind of phone do you use?
My primary phone is currently an iPhone 6+. But have a Nexus 6 and sometimes switch between the two. Tempted to get a Windows phone to balance things out.
Which software do you use to write code?
I like to keep things simple: I use vim.
Jonathan Snook's Biography
1.For the people who don’t know you, can you tell a bit about yourself?
2.How did your education contribute to your professional career?
Not at all! I didn’t take any schooling after I left high school, although I considered taking a crash course at one point with the hope of it landing me a job. I managed to get one, though, without it and the rest, they say, is history.
3.You’re a web developer for about 20 years, what made you start in the first place and how did you learn it back in the days?
I’ve always been interested in computers and definitely interested in connected online worlds. I connected to BBSs and freenets and even ran my own BBS for a while. When the web came around, it just seemed like a thing to learn like anything else. It just so happened to be the thing to take off. Good thing, too. I never liked gopher.
4.How do you stay up to date with the latest web development techniques and how do you come up with new techniques?
I use Twitter and Facebook to see what other people are talking about. I read a lot. All of this informs how I work. I don’t really come up with new techniques myself as take what other people have done and attempt to evolve it or refine it a little bit.
5.You were a freelancer for about 5 years. What made you decide to switch to a fulltime job (and work in teams again)? Don’t you miss being a freelancer?
I needed financial stability. There were too many ups and downs with trying to get paid. I was going through a divorce and no longer had a second salary to smooth out the bumps. However, I haven’t missed being a freelancer. I think it’s helped to switch to product development from client services. Product design has proven to me to be something that I really enjoy.
6.From the beginning of the internet you are around, what do you think about how the internet evolved over the years?
After all this time, what’s old is new again. I see the industry swing from one concept to another and nothing really feels all that revolutionary. We’re still just making text files and sending them back and forth. (Although there is a lot of abstraction in making those text files these days.)
7.Do you have favorite music while coding or working?
Drum and bass! I definitely prefer music without lyrics. If it has words, I end up focusing on the words and not on my work.
8.What are your interests besides web development?
There is something out there besides web development? Uh oh. ;)
I enjoy travel and photography. To enable the travel, I turn to conferences and work. I would like to do more photography but still feel like I have much more to learn to gain confidence in my work.
9.What inspires you so much about website development?
The barrier to create is really low. I mean, yes, you need a computer but after that, there’s not much else you need except learn. Creation and distribution costs are really low. There’s a lot of delight in being able to see something come to be and be able to share that with others.
10.Which markup- and programming languages have you mastered during your life as a web developer and which languages do you still want to master?
11.What is your favorite markup language or programming language and why?
I think HTML is my favorite markup language. It’s relatively straightforward and is understood in so many places. It’s quite versatile.
12.You worked as a prototyper at Yahoo. Does this mean your team did all the PSD to HTML and CSS conversions? Can you please elaborate your daily activities at Yahoo?
Some of it was converting Photoshop designs into HTML and CSS, yes. It was also about ensuring that what designers wanted to do was practical or feasible. We push designers to think about things they might not have not thought of due to living inside the fixed constraints of a static comp.
13.You’re currently working as lead frond-end developer at Shopify. How would you describe being a lead frond-end developer and how does an average day at Shopify look like?
As team lead, I spent most of my time on growing the team. That means looking for new talent, interviewing, and getting them on the team. It also means mentoring the people on the team, helping them grow and learn. Lastly, I’d provide technical direction and prioritization for the team.
Unfortunately, I’ve since left Shopify but there’s a solid team in place that is undoubtedly tackling front-end problems with aplomb.
14.How do you think cross-platform development will evolve during the coming years?
Depends on what you mean by cross-platform. If you mean cross-browser and cross-device, it’s getting increasingly difficult to test on-device which is really the best way to develop. You catch things you wouldn’t catch otherwise. I anticipate better processes will allow us to make some assumptions similar to how progressive enhancement allows us to make assumptions on how our work might work in areas we might not be able to test.
15.When you develop the front-end for a website, how do you ensure that it’s future proof?
Browsers do a great job of providing backwards compatibility. In this way, the stuff we build for today—if built to web standards—should continue to work well in the future. If, instead, we build sites using cutting edge and still evolving technologies then sites and applications may very well break in the future.
16.How do you ensure that a website looks exactly the same in various browsers, tablets, smartphones, et cetera and how do you test that?
Web sites can’t and shouldn’t look exactly the same everywhere. That’s impossible. Or rather, about the only way you could guarantee such a thing would be to serve it up as a static image. Not very practical. We should embrace the fluidity of the web and test for how our sites degrade (or are enhanced) under various circumstances.
17.What do you think are the advantages and disadvantages of front-end development for mobile platforms versus native application development?
Having not really done done native development, I’m probably not the best person to answer that question. The web, mobile or otherwise, has built-in benefits like shareability, easily updated, and instantly cross-platform. Well, if built well, of course.
18.What is your favorite open-source content management system and why?
I don’t have a favourite. I like custom building for a specific need.
19.How important is it to have an architected and well-structured CSS file?
Depends on how important it is to maintain it after the fact.
20.How would you recommend to create a structured and clean CSS file?
I believe in taking a modular approach—from both a code and design perspective. Each repetitive design element is coded as a module.
21.What is your opinion about CSS preprocessors like SASS?
I find people tend to abuse preprocessors and end up with code worse than if they hand-coded it. Functions, variables, concatenation and minification are very useful, though, and I recommend using a preprocessor for things like this.
22.What is your opinion about the various frameworks like Bootstrap?
Like a CMS, I prefer to custom build what I need instead of relying on a framework. This allows me to be more precise and minimal with the final product, which is important to me.
23.What is your opinion about CSS resets, like Reset CSS?
Likewise, I tend to avoid most CSS resets. They usually reset way more than I need. I prefer to be judicious and only add what I need when I need it.
24.For people that are new to HTML5 and CSS3, how and where would you advise them to start?
Have a project in mind and build that. Building a real world project will reveal real world problems. For me, that’s always been the best way for me to learn.
- Open a text editor.
- Create a new HTML5-based skeleton file that includes doctype, head, title, and body.
- Link in style sheet.
That’s it. I know a lot of people are all over their node-based workflows but I still tend to keep things really simple and only add complexity when I need it.
Writer and speaker
27.The foundation for SMACSS came from your time at Yahoo. What made you confident enough to write a book about your experiences at Yahoo and how did you know that what you would publish in the book would be correct and irrefutable.
Irrefutable? It’s easily irrefutable! I refute it all the time! In web development, the answer is always “it depends”. My advice on CSS architecture is just that: advice. I was confident in sharing my experience because I saw the process work at Yahoo!. As a result, I wanted to put that out there so others could use the approach and hopefully make their life easier, too. That’s all I’ve ever done.
28.What would your advice be to somebody who is about to write down his or her ideas in a book?
Just do it. Writing is hard and it’s easy to give up. I gave up on writing a book many times. Until I didn’t. Just write.
29.Do you think that providing parts of the book online for free boosted the popularity (and sales) of the book?
The book’s popularity took me by surprise. I don’t think I could have ever predicted that and I don’t think I’ve figured out the secret to reproducing that magic. If it happens again, that’s great, but I don’t have any delusions of grandeur. Sometimes something works and sometimes it doesn’t.
30.You’ve written/co-written 3 books so far, do you have any plans for a new book?
I do, actually. But writing is hard. Did I mention that writing is hard? Well, for me, it is. I hope I can be disciplined enough to get another book finished and out into the world.
31.How do you come up with topics to speak about at conferences, and how do you make sure that what you’re speaking about is new to the audience?
I don’t try to be cutting edge with every talk. I’m still doing talks on SMACSS and modular CSS and it’s been nearly 4 years since I initially released the book. To some people, I might sound like a broken record. To others, they’re hearing it for the first time. Hopefully, I can be entertaining enough regardless of skill level to make it interesting to listen to.
Get new articles, interviews and roundups delivered to your inbox:
We'll send you our non-commercial newsletter a few times per year.
No SPAM ever, we value your privacy.