Join Ray Villalobos for an in-depth discussion in this video What questions are asked in developer interviews? with John Riviello, part of Mastering Web Developer Interview Code.
- Hey there, this is Ray Villalobos and this week we're going to be doing things a little bit different. We're going to have a first of many conversations with developers working in the field that can tell us what it's really like to get a job or do some hiring in the industry. So John Riviello is an engineer, author, and speaker who started working in the internet way back in 1996. He was originally trained as a graphic designer and he's also a fellow lynda.com author and LinkedIn learning author, whom I've known for a few years, so hey John.
- Hey Ray, how's it going? - Pretty good man. Tell me a little bit about your background. Where you work, how many years you've been there, and that sort of thing. - Sure, so right now I'm at Comcast. I'm one of the lead frontend developers there. I've been here for 10 years, it's my 10th year there. I've been doing this for 20 years now, as you mentioned in the intro there. So I started off just back in the mid '90s, The minute it came about, I loved computers, I loved art, so really web design, web development was kind of perfect for me. So I taught myself HTML.
So I originally went, got my BFA in graphic design, but I did do some computer stuff in college. I used code to create art, which is a lot of fun. And then basically my first job out of college was at a startup and I was the graphic design department, the web design department, and the frontend web development department all was me because that's how startups run. - Yeah, that was back in the day. You had to everything. I think everybody was like a webmaster, that's kind of like the generic title for all of that. - That's right. I was a webmaster, that's the best title there is.
So yeah, so basically my career basically transitioned as doing pretty much half design, half development, to just as every job I took, and every promotion along the way just led to, right now where it basically led to pretty much all development. There's very little design work that I do because we have full design teams at Comcast, but at least that background kind of does help me have those conversations with designers. - Cool, so what kind of education prepared you for this job? - My degree was in graphic design, so the advantage of that was that when I'm taking to designers, we can speak the same language.
And so basically when I'm working with a designer or UX engineer on something, I understand what they want to do and why they want to do it and I can kind of help. Knowing what designers want to accomplish and me knowing the technical way to implement it, we can work together to say, okay, I see what your vision is and that you want to do this grandiose thing, but here's the thing that it is maybe not as amazing, but just slightly less amazing, but it's 10 times easier to implement, so that's been a real big advantage is being able to work easily with designers.
But as far as the coding side, there was very little training in my formal education around coding. So basically I learned introduction to basically ActionScript, back when I was in college. I remember my professor said, "You need to learn Lingo, this is the future." And no one company used Lingo, but that was what Macromedia directors, script writers and stuff. - That's right. - I've got some amazing Lingo projects that will never see the light of day again. - So I think it's probably really an advantage that you kind of have a little bit of both, of being a developer and a designer because you can really talk to both people.
That's obviously the building blocks of the web. Basically what I mean by that is for something like HTML and CSS, if someone were to give you a responsive design with a few breakpoints, you should be able to go ahead and build that design, write your own mark-up, write your own CSS, and have that look good, not only in Chrome, but in other browsers. So probably IE 11 is still a big deal, as well as Edge, Firefox, Safari, and of course, Android and iOS devices. So you should be able to take those designs to actual production all the way through.
So, can you use, are you at least familiar with the web debugging tool of your choice for whatever browser you use. - Yes, I do feel like, I know I get this question a lot that designers should have sort of a little bit of development experience and vice versa, sort of a cross-pollination. - It certainly helps. I feel like if you're looking to do web design, it's important to understand CSS and HTML, so you can see how those designs can carry through. I've seen some people take kind of this like UX engineer path, where they basically write all the code or prototypes of them, maybe if then some other team would go and build the full-on production ready version that's more, focuses more on performance, that kind of stuff, but it's really useful to be able to express an idea with code and with design at the same time, so it certainly, it can't hurt.
I wouldn't stress about if you're focused more on design, you need to be the best developer, I don't think that's required. But if you can understand the basics and get a page up and running, that'll definitely help you out. - That's great. So I know that I recently went back to school for a second degree and I realized there was like so much that that experience taught me that I didn't really get from having a job, and vice versa there's some things that I learned by having a job for a long time that I didn't learn, so what are maybe some of the things that you learned that formal education didn't teach you? - So, programming, formal education does not teach you that, so that was just the way that I approached that.
So I think I took like a course in digital basic in college that's just like a required course. So yeah, I basically had to learn most of that on my own and basically through looking at what people did online, through courses like what lynda.com offers, that kind of stuff and read books. - Let me turn it around to maybe like when you see people kind of interviewing for jobs, that are just coming out of school, they didn't have lots of experience, what do you think they are lacking from just a formal education that you kind of have to bring 'em up in? - Gotcha.
It's going to really set you apart. - So another question that comes up is you have some experience interviewing people, so do you give applicants any sort of coding challenges or quizzes or anything like that? - Yeah, so I've interviewed hundreds of people easily by this point in my career, even back to that startup initially, and I found that a coding challenge or quiz of some sort is essential. Because basically I can talk to someone on the phone or in person and someone might know all the right buzzwords and sound like they know what they're talking about, but if I say okay, "Write me a function," and then they don't know what a for-loop is, then that's kind of a clear thing that I think's, thanks for talking, we'll move on to the next person.
So yeah, I do, right now and I always have, basically I stress different coding questions in mine. When I do coding challenges, the way I do it, I basically, I understand that the person being interviewed is probably nervous. I hand them my laptop and say, "Okay, this is, I'm here, "but try and be as relaxed as possible. "The internet is there, Google whatever you want to. "You know, I look up stuff, "I've been doing this 20 years, "I look up stuff all the time "that I probably should know, but I don't. "Don't feel embarrassed if you need to Google something. "I'm not going to deduct, lose points for that.
"So full internet access, I'm here, "you can ask me questions." And then basically a lot of the questions that I present are debugging type questions. So I'll say, "Here is some code that I wrote. "Take a look at it in the browser. "This is what it's supposed to do, "but it's not doing that thing. "So go ahead and try to figure out what's going wrong "on that case and then go ahead and solve it." Which is where the debugging tools come in useful and then also it helps me see how does that developer think. So even if they're a junior developer, how do they go about solving this problem even if they've never seen this before, and that's, especially for a junior position, that's really what I'm looking for is what's their thought process, how do they work their way around a problem.
Because there's no way they're going to know everything. The frontend world is so rapidly changing, it's impossible to know it all. So it's really how do you solve problems is more I'm looking for, as opposed to how much knowledge do you have in your head because that's just going to be in and then out, and then old news in a year. - Yeah, definitely. I mean the reality is that we don't know everything. We have to look stuff up. Stuff changes all the time, so I think that what you're saying that it's more important to see how somebody solves a problem because that's exactly what the job is. It's not everybody does great when, I don't know if you've ever had this, but you do like this complex program and it works the first time.
That's extremely rare. You feel like you should go in a-- - Wait till you hear from me. - Exactly. So yeah definitely, understanding like how that person reacts to actually just the problem. I mean, it's a big thing. How do they react, where do they go, what do they look for? And then, can they solve the problem? That's a really good way of going about it. So maybe look at it from the other side, maybe pretend like you're the person that's going to be interviewing for the job. What kind of things should you do to prepare, like what kind of things do you expect them to have? What's beneficial to show somebody and that kind of stuff? - Gotcha, so if you're preparing for an interview, I would say really first think about what are the strengths that you have and how can you basically weave that way into the interview somehow.
So think about if you have prior experience, think about what was an interesting problem you had to solve and then how did you overcome that? And then basically how can you factor that story into the interview question somehow. Our industry is, like I mentioned, always changing. So I'd like to have a couple of examples of maybe something you've learned recently that you can talk about. Doesn't need to be some amazing thing. Just, oh hey, I just learned this last week or last month. Something that you want to learn because, again, I think it's important to stress that you're eager to work for the company or that you're eager to learn because basically most senior engineers, like myself, we're leading a team and we're really anxious to grow that team so we want to see enthusiastic people, is who we want to hire, basically like people who are interested in web development or really love this space.
So I would also recommend, once you come up with some of those answers, to go ahead and record yourself and then you actually took a look at yourself and say like, are you smiling? Do you actually look enthusiastic when you're talking about this stuff? Because that comes across, even with if it's a phone interview or if it's in person, that enthusiasm can be a huge thing to separate two individuals if the technical skills are kind of similar, then it's going to go down to hey, who do I want to work with? Who's the person that sounds most excited about this opportunity? We've spent all this time to interview someone, which is a huge amount of effort, we want to get this right.
So who do we want to be spending our days with coding and making some amazing applications? - Yeah, that's a really good point and I think it's really important. A lot of times by the time you're interviewing somebody, you're really looking for how do they fit within this organization to make sure they have the right attitude towards (murmurs) and that's part of the reason why you want to see how they react when they run into some code. I know that it's very frustrating sometimes, so they throw the keyword, that's probably not a good thing. - Yeah. - Cool, so that's a really good point.
- Mm-hmm, thanks. Yeah, I highly recommend that for sure. - Cool, so that's all the questions I have, John. Thanks a lot for your time and your insight. I'm going to add a couple of links to your contact info. And as I normally say, if you have a question that you've been asked or have asked somebody at a job interview and you want to share it with me, you can get a hold of me at LinkedIn or through almost any social media network at Planet of the Web. Thanks again, John. - Thanks, Ray, it was fun.
Skill Level Intermediate
Q: Why can't I earn a Certificate of Completion for this course?
A: We publish a new tutorial or tutorials for this course on a regular basis. We are unable to offer a Certificate of Completion because it is an ever-evolving course that is not designed to be completed. Check back often for new movies.