laptop-phone webbbr

Interview with JavaScript, AngularJS and Google Developer Expert Todd Motto

September 12, 2015

Todd is currently Director of front-end engineering at Mozio and likes to lead an active lifestyle. Todd’s work has been recognised by Adobe, Smashing Magazine, Rolling Stone and Intel to mention just a few, and his blog is a leading resource for HTML5 and JavaScript advice and tutorials.

This week we catch up with Todd and ask him a few questions about how he got into the industry, what he loves most about his work and what he has been up to lately.

1) How old were you when you first started to learn code and can you remember what programs you used (also what websites assisted you to learn your craft at the beginning, etc).

I first started out around the age of 15/16 downloading free HTML templates from various websites. My career began as a designer specialising in logos and business cards and other print materials. With the boom of the web, my clients would always ask a website of me, so my new found ability to fiddle around with free templates evolved into tweaking designs for client websites and putting them live, I guess I was learning code without meaning to. After a while, I began to partner with web developers who taught me basic HTML and CSS and I just fell in love with learning code. It’s not like designing a logo where it’s a static piece, you get to create something out there on the web that’s completely live and functional – it was an exciting time.

I first started off with Dreamweaver, and amusingly thought all websites were built in Dreamweaver as static pages. Being introduced to WordPress and the CMS environment told me I was totally wrong, and I started building dynamic websites for my clients instead of static. Websites I used were actually other developers websites, namely the big names. I’d check out their source code and look for things unknown, run a Google search on the definition and you’ve then learned something new. When you keep viewing sources on so many different sites, you begin to see things which occur all the time, good practices and bad practices.

2) When did you first decide you wanted to go into web development as a career and how long did it take you to become really proficient?

My passion for a career in web really happened in the last 4 years, I’d been toying with the idea of going full on web developer and leaving my design and creative side at bay. I couldn’t have made a better decision! Getting proficient took around a year or two, but it’s what you do after getting proficient that separates you from other developers. I don’t see development as a job, it’s a lifestyle and totally a part of everything I do. I go home everyday and want to pick up something new either of an evening or in the day. Trying to teach yourself one new thing each day is the best way to get really good. If you don’t know what something means or does, get on Stack Overflow and ask it, or Google around and search for definitions.

3) What have you been working on most recently / are still working on right now?

Recently I’ve been working on a Rolling Stone article as part of an Intel inspired HTML5 Hub project. The project went live Tuesday this week and the response has been overwhelming! Microsoft, Huffington Post and many other huge names have tweeted it, my Twitter feed’s been going crazy with great feedback. The article is an HTML5 feature experience on Miami Hackers, it’s also incredible to also get those guys saying I’ve done an awesome job – it was the main challenge building something impressive that relates to them as well, I think we did it.

4) What are the big ideas you’re thinking about at the moment?

I’m working on a new open-source project called FireShell, it’s an opinionated front-end framework and complete workflow through development to deployment – for the modern developer, capable of scaling huge as well as for big teams. I can’t reveal too much but I see the launch being within the next few weeks. I’m running some tests and improvements at the moment to make sure it really delivers the next generation of front-end frameworks. It’s also worth mentioning that it comes with Grunt, Sass and a solid HTML5 framework with baseline accessibility and semantic includes – all ready for the modern developer to jump straight in. It’s the result of months of work, refining my workflow and creating something that anybody can use. It also encourages better workflow and front-end performance, such as auto-minification of files and only including one JS and CSS file in your HTML, concatenating your files for you. I can’t wait to see what people make of it.

5) What would you say are the key factors that have driven the direction of your career?

The key factor for me is the addition to web development, and (I’m going to say it) the thing that really sold me was an infographic on designers versus developers, and how on average they earn twice as much. After your eyes light up and you calm down, you have a quiet chat with yourself on whether you should take the dive into pure development, and I am really glad I did. it’s opened up so many amazing opportunities for me, I’m the lead front-end engineer at my workflow, working closely with Google and some huge brands creating custom web applications. My blog also has been a great factor for me, I used to blog about design and tips and tricks, the traffic I got was mild. I remember releasing my first jQuery plugin and my blog just went boom – then I knew web development was really where it was at, and my focus switched. Years later, I still stand by my decision! I’ve met some incredible people through Twitter, my blog and gotten some leads for projects I’d never have got otherwise.

6) There seem to be a lot of people who criticise websites that don’t work with JavaScript disabled. What’s your take on all that?

I could be here a while. My main view is that JavaScript is a language native to the browser, I really believe it’s the future of development. Don’t turn off a native language and expect things to work. I don’t believe we should go out of our way to cater for people who deliberately make things difficult. Sure, some corporations block JavaScript by default, but this won’t last forever, people enjoy more freedom to download browsers like FireFox/Chrome now, the world is changing.

There are so many arguments for progressively enhancing websites/apps for non-JavaScript users, but I believe we should continue with a larger use of JavaScript, data-driven applications need JavaScript, so do websites as well, without JavaScript websites are just digital pieces of static paper. Take the modern Touch APIs, these all require JavaScript, how is your device going to be capable of touch events if you turn it off? Things just won’t work.

I’m a massive advocate of AngularJS, a full client-side MVC/MVVM framework that allows you to inject, dynamically create and populate HTML through clever directives and JSON data. It’s the modern way, we use JavaScript on the client-side for more components nowadays, done properly I think is an enormously powerful tool. A decade ago frameworks on the client didn’t exist for templating, this was all done on the server as a painfully slow process with full page reloads and ancient techniques, now we’ve got dynamic view injection very similar to Gmail and a tonne of modern practices. At least 95% of Gmail’s source code is JavaScript, Google see the power. As soon as you’re in Gmail, no more full page reloads, super quick.

I believe we should cater to no-js users somewhat, for instance making a navigation work on hover instead of on click, but it shouldn’t be a primary concern, the no-js market is very small and in most cases deliberate (i.e. users turn off JavaScript by default or corporations block it from running). Users in this case will expect things to not always work correctly – if you’re going to turn off a native language and expect things to work, you’re crazy in my eyes. This is no different than turning off the internet and wondering why a progressively enhanced piece of paper hasn’t fed itself out of your machine for you to read offline. JavaScript isn’t some optional extra or some browser plugin, it’s part of the web platform.

The longer we create fallbacks for no-js the longer people will be turning it off. The web is moving too fast for no-js. HTML5 is a fantastic specification, it’s not just about HTML, it’s very reliant on JavaScript, things like browser localStorage, HTML templating and tonnes more incredible stuff (the future!). Think about it, if car manufacturers made cars this way, they’d include some flip down progressively enhanced pedals for us to pedal our cars Flintstone style if we ran out of fuel, but they don’t because they push forward and cater for a specific market (where you fill up your car) – and that’s okay. If you don’t fill up your car, it’s not going to work. This is just touching the surface of no-js, but I hope there’s a few good arguments there.

7) You always come across as a very positive person and give a lot of time to open source projects. You also engage a lot with your twitter followers and blog subscribers. How do you keep your positive attitude and can you offer any advice for people who might be finding the industry tough right now?

I love engaging with other people interested and passionate about the web, I always try to help people out. Sadly I get a lot of silly questions that could be answered by a quick Google search, but those who send me some really intriguing questions usually get a response – I don’t get enough time to reply to every question or it’d be a full time job itself!

Starting in the industry now would be an amazing step for anybody, it’s peaking into an incredible platform for front-end and is an exciting time to say the least. Years ago, a web developer probably did the whole lot, now we’re utilising the power of the browser, pushing it to it’s limits and switching our workflow. Think about the past, a single developer (i.e. what we’d call front and backend now) probably setup the backend and templating, rendered an application down, with full page reloads and very slow and limited interaction.

The future is here and this has totally changed. At my workplace, we are utilising AngularJS. I’m creating my own views, templates, directives and MVC patterns on the front-end and only using the server to communicate with the data store and pulling down fresh JSON. That’s a massive transition. Old-style apps are dying out and the browser is becoming the platform to develop for, which is very similar to what Google is doing, writing some rendered JSON/JavaScript into the page and dynamically updating the view based on the data. It means we can create full-scale web applications very quickly and with a lot less effort. AngularJS introduces some very Java-like syntax, such as inline expression checking, and now we’ve got the power of that technology on the front end too. It means I can create very smart applications with full focus on one environment, not deciding whether we should do something on the server or the front-end.

 

Article updated

This article was originally posted Sept 2013. Last updated 12/09/2015.