Location: San Luis Opisbo, California
Education: B.S. Electrical Engineering at California Polytechnic, M.S. Electrical Engineering / Computer Science at Arizona State University.
Past employment includes: Apple, Hewlett Packard, Adobe, Fotiva (CTO and co-founder), professor at California Polytechnic.
You worked on both hardware and software for many years with companies including Adobe and Hewlett Packard. What eventually drew your interest to the web and front-end technologies?
It started back in 2000, when I was CTO of Fotiva, the startup I co-founded and which was eventually bought by Adobe. It was around that time we started realizing that a lot of what we were doing had a social aspect. People didn’t just want to take pictures, but to share them. Back then for any app you were creating, you had to decide whether it was going to be universal or whether you were going to target a specific platform. We began thinking that the real platform we should have targeted wasn’t a Mac or a PC, but the web itself. That’s when I began seeing the web as something to concentrate on. If you become an expert at web development, you can reach across a variety of platforms.
How else has front-end web development changed since you started? Where do you see it going in the future?
More and more functionality is moving from the server-side to the front-end. In the earlier days of the web we rendered content from the server to the browser. User interaction—filling out forms, clicking on links—would require a browser to server round trip for a response, with a jarring page repaint. Today, the server’s role is primarily persistent storage, authentication and session management. Client-side code is responsible for a majority of an application’s functionality. From a user experience standpoint, there is less latency and greater responsiveness.
Angular.js and Ember.js are technologies to watch. Those are going to be primary tools to make large front-end applications.
You have a lot of experience with teaching and mentorship, both in your work and at the university level. How does teaching at Thinkful compare?
Most of my life I’ve been teaching something to somebody, in addition to working. I often taught practicing engineers who wanted to update their knowledge. It was a great experience because they were very motivated and inquisitive. When I taught at Cal Poly, there was a handful of students interested in learning, but many of them were just hanging on. With Thinkful, it’s more like that original experience of teaching highly motivated people in the workforce, which is great.
What do you think mentors add to the learning experience?
When you’re first starting from a blank edit screen, everything you do is fraught with potential errors. Having someone to sort through that is invaluable. That’s the special sauce Thinkful is adding — taking you from initially learning the concepts at places like Code School, to a point where you can actually use them to solve problems.
Then there are the students that want to know the bigger picture, not so much the nits and grits, but things like “Why did jQuery happen? Why did it become popular?” I can help them get a better understanding of the whole ecosystem of the web.
What advice would you give aspiring web developers on keeping up with changes in the industry?
It used to be that to get a job in tech you’d have an interview and answer a bunch of difficult questions. If you passed that test you were hired. Today it’s much more important to develop a portfolio of work that spans the current technologies, and illustrates your in-depth knowledge, to show you can walk the walk.
Any recommendations for what kinds of advanced skills and tools front-end developers can learn to set themselves apart from the pack?
- The Yeoman workflow with Grunt and Bower
- LESS or Sass to expand your capabilities with CSS.