The Changelog – Episode #143

Front-end Developer Interview Questions

with Darcy Clarke

All Episodes

Darcy Clarke joined the show to talk about his repo on the HTML5 Boilerplate org on GitHub “Front-end Developer Interview Questions”. We discussed why the repo has been so successful, the challenges of translating a text document into multiple languages, managing contributions, the art of interviewing, how the expectations of front-end developers have evolved over time, and how to stay relevant in our fast moving industry.

Featuring

Sponsors

Codeship – If it works with Docker, it works with Codeship Jet.

Toptal – Join Toptal and work with awesome people from anywhere in the world. Freelance with companies like Airbnb, Artsy & IDEO.

Code School – Learn to program by doing with hands-on courses. Sign up for Code School at only $19/month. That’s $10 off per month!

Notes & Links

Edit on GitHub

Darcy is the creator of the Front-end Developer Interview Questions project on the H5BP org on GitHub – it’s “a list of helpful front-end related questions you can use to interview potential candidates, test yourself or completely ignore.”

At the end of the episode, we turned the tables on Darcy and asked him a few questions from the list.


“The goal is to try to have the (interview) question be more open ended, and hopefully it starts a discussion between the interviewer and interviewee.” - Darcy Clarke @ 12:28

“This document is like a high school english assignment, with over 100 group members, and they all have differing opinions, and there’s a ton of different subjects… It’s the worst kind of open source project.” - Darcy Clarke @ 22:56


Transcript

Edit on GitHub

Hey everybody, we’re back. We’ve got Darcy Clarke here. Darcy hails from the good old city of Toronto, in the province Ontario. Darcy, I happen to have lived in Toronto at one point. I didn’t tell you that yet. So I used to be a Torontonian at one point.

No way… That’s crazy.

Yeah, man.

Is that what they’re called, Torontonians?

If you’re from that area and you call it Toronto, you’re wrong. It’s Toronto [Tronto].

Tronto.

Yeah, a very distinctive lack of a “t” there, yeah.

I used to live in Markham. I had an apartment in Markham for a bit there, and I worked in Mississauga.

Wow. Yeah, I actually lived in Markham, too. That’s crazy.

Yeah. That’s back in the day though… So as you can see, everybody, we’ve got myself here, Jerod’s here, Darcy’s here, and we’re gonna talk about a couple projects Darcy’s got going on… But Darcy, before we kick off, let’s introduce yourself, man. So who are you?

I am Darcy Clarke, a frontend developer based in Toronto, and I’ve been doing development, design, some UX, consulting, speaking and a whole bunch of things for a number of years now. I love open source projects and contributing to the community, and giving back in that way. I’ve just essentially been doing this for a long time, and I’m not here, talking to you guys about some projects… So yeah, that’s a little bit about me.

We caught up with Darcy because on our fabulous radar, and actually in Weekly - we’re gonna ship Weekly tomorrow, but this is recorded in the future and you’ll hear it in the past, so it’s kind of weird to tell you when it’ll come out… But long story short, we’ve found on the HTML5 Boilerplates Organization on GitHub a repo called Frontend Developer Interview Questions, so we thought that was super-awesome.

[00:04:00.25] It’s a list of helpful questions for frontend people that are interviewing potential candidates, and maybe even testing yourself… Or if you’re a frontender out there and you’re thinking “Well, I could probably answer some of these questions, or I can’t”, at least it gives you some waypoints of what you do and may not know. So we thought this might be a great time to either have this conversation ourselves, me and Jerod, or invite you on if you can come on, and luck be the draw, we’ve got you on the show, because… Here you are.

[laughs] Yeah. It was a quick turnaround, that’s for sure.

It looks like we’re not the only ones to think this is a pretty good repo…

This is highly popular.

14,000 stars, 2,100 forks, 119 contributors… This is a pretty popular project. How did you get involved in it?

So I actually kicked it off back in early 2012, I think. I was being asked by a lot of my friends to help prep them for interviews… Specifically, my friend Wes Bos was going to interview at Google, and he was looking for some help as far as resources that would give him some insight into what they might be looking for. I had been around for a long time, even at that point, and I’ve been through my own share of interviews and technical interviews… So I was helping him and two or three other friends prep for interviews. I got a list of questions I was giving to each one of them…

At the same time, my friend Paul Irish actually started another conversation with some community folks like Alex Sexton, Adam [unintelligible 00:05:35.22] and they put together a document that wasn’t made public. It was just sort of like a scratch pad of interview questions that they also thought could be helpful… And I think they were using it in the private. So I initially reached out, saw that, I cleaned it up a bit, and actually three years ago (as of Monday) I posted a blog post with that document. That’s sort of how everything got kicked off.

Wow. Three years, that’s crazy. So when you first started it – I went back in time and saw your commit was the very first, so obviously you’re the starter of it… But what was it like back when you first started the repo itself? What kind of questions were there? There’s several now, but what were you skimming across at that time?

So there was a whole bunch of – it was kind of like a conglomerate. Everybody just had put together their thoughts on what they thought would be interesting. And you can actually see the original version; if you go to my blog, DarcyClarke.me and you search around, you can actually find the original blog post. And that actually has the original form of that questionnaire – I called it a questionnaire at that point, and a lot of people took it literally, like they were gonna have to answer every single one of these questions in an interview, which was not the case. This was supposed to be just a resource.

But yeah, there’s a number of different things in there. Originally, we even had some answers. There were a lot more jokes… It was kind of more funny. Some of the contributions from some of the other guys had put in some extra things. I think people were saying like “Bonus points” for things. So it was a little bit more lighthearted, but at the same time it was also more rough around the edges… Which wasn’t necessarily a good thing.

You said Wes Bos - this sort of keyed around the time whenever he posted a blog post about what he learned interviewing with Google… Was it something you were working with him on, or…? Paint that picture for us.

He had just reached out to me… We’re really good friends, and so he had just reached out to me and asked me to give him some resources, or some tips, and try to do almost like a fake interview with him. So he was just trying to prepare himself for that Google interview, which he later wrote a blog post about his experience going through that…

[00:08:07.14] There was a few other people who had asked me to try to give them advice or give them prep questions that I would ask, and that I had actually asked other interviewees that I had come across in my time as more of like a manager at digital agencies that I had been at.

So that was sort of where my head was at… And there really wasn’t anything like this, any resource that sort of basically combined everything that you should know or you should be prepared for going into a job interview for a frontend developer position. So yeah, that’s sort of where it was at…

That was kind of my take on it, too - it’s not so much only for the interviewer, it’s also for the interviewee, because it’s sort of this hit list of what you may or may not be asked, for one, or preparatory to get to a point where you could be interviewed using something like this, and just sort of find out almost like waypoints, figuring out what you do and don’t know well enough to go into a frontend developer position, or at what degree you’re ready for a senior/junior position, or a green position, for example.

Yeah, it’s sort of a catch-all. The audience that it covers is probably like threefold. Somebody in a more technical or senior level position that’s actually interviewing somebody, and again, like you say, somebody that’s gonna be interviewed, who’s trying to prep… Or even somebody – I know a lot of people that are going through bootcamps that are using this also to try to train themselves to get ready just to get into the industry, try to get a pulse of what’s expected of them once they get out there.

Now, not all of these questions are – as you say, they’re sort of tiered… Although there isn’t a tier system in the actual document. You’re definitely not expected to know everything that’s in that list if you’re a junior developer, but I think it’s a good resource for people to go and see what they maybe should be researching or learning a little bit more. And I think it just asks the right questions, essentially… To kind of make a half-pun.

I’m reading through some of these, and I’m a developer myself, both frontend and backend, and I’ve been around the block a few times, and there’s definitely ones in here where I’m like “Man, I know what that is, but how do I articulate that in a way that would be impressive?” That’s not gonna immediately come to me… So there’s definitely some good questions in here.

I kind of have a thought about a frontend developer in general - the term, the role, the changing landscape that we find ourselves in… Because when this project started, I think the idea of a frontend developer was probably – maybe not dramatically different than where it’s at today, but at least it slid from one side to the other. Have the questions needed to change to keep up with the fluidity of the position?

Yeah, a hundred percent. We’ve definitely made it a lot more objective. We got rid of any kind of answers that were in there. There’s definitely a focus more – up until a few weeks ago I think we still had questions that were specific to jQuery, and we didn’t think – sort of as an organization and the people that are helping to maintain this project now, we don’t think it’s a good idea to essentially point out one library over another. Essentially, we would get into a position where we’d be fraught with just an abundance of different frameworks that we have to sort of support, and say “Oh, these are the questions for Angular, and these are the questions for Ember”, and things like that. So we tried to get more library-agnostic and framework-agnostic.

[00:12:13.15] It’s definitely matured. The documents definitely matured, and the questions have matured… And you can definitely see that it’s more focused to concepts, or it’s trying to be more focused on concepts. I think the goal here is to try to always have a question be more open-ended, so that it can be sort of left up to interpretation a little bit, and that the interviewee or the person on the other end can sort of get a chance to talk a little bit, and hopefully it starts a discussion if that’s what they’re using this document for, which is to actually interview someone. Hopefully, it starts a discussion between the two people in that room, or on a phone call, or wherever they are.

Yeah, I think it’s wise to remove implementation details, as much as you can. Obviously, when you get to the JavaScript questions, “We’re gonna use JavaScript.” Whereas probably back when you started with it, it was probably pretty safe to assume “Well, it’s just gonna be jQuery-oriented questions”, because that was such a dominant tool at the time, and the landscape has really diversified, with the different frameworks and libraries that are available…

Yeah, that original blog post has jQuery-specific questions in it, whereas the current state now has that removed; like you said, agnostic towards a particular camp.

Yeah, I didn’t think they were that useful anyways. They really didn’t add a bunch of value. Again, we’re trying to hit on topics that are more objectively true, or that you can talk about at a higher level. For instance, you could talk about Sizzle, which is jQuery’s selector engine, and its specific implementation, and how it returns a collection… But that kind of concept, of actually just selecting an element in JavaScript - it’s ubiquitous; it’s not specific to… You can talk about it in the native implementations; you can use, let’s say, a native method like `getElementById` or `querySelector` or `querySelectorAll`. So we tried to remove that, and I think that just shows a maturity and a growth over the years, and of the project, too… Especially as of recent, since the project actually moved a couple months ago from originally being still a personal repo of mine to being under the HTML5 Boilerplate Organization. We made that change - me and Paul did that two months ago, I think, and there’s been a huge influx in contributions… It’s definitely matured, even in the last two months; it’s exploded.

Let’s talk about that part there, two months ago then… So what was it like merging a personal project into an organization? And then, if you can recall, what were the stats at that time? Like forks, and watches, and stars, and stuff like that.

Yeah… I mean, it hurts a little bit. It definitely takes you down a peg. At the time, over the last three years I think we had got about 9,000, close to 10,000 stars. We had still had the 25 – I think we were past 25 language translations… Which is amazing. I think that’s probably the best stat for this project; the community involvement that we got worldwide, and people adding resources in their own dialects - it was great.

So we had 25 language translations, about 10,000 stars over that three-year spin of it being a repo associated just with my name… Although I’ve always tried to keep liner notes for the original contributors for the other documents that were running around three years ago.

[00:16:07.04] But yeah, essentially we went from that, and two months ago we made the changed the ownership to the HTML5 Boilerplate Organization, and we saw a huge influx in traffic. Lots more visibility. We got another 4,000 stars since then, so we’re now up to 14,000 or 15,000 stars, and 2,000 forks, or something crazy like that. You know, over 100 contributors, which is another great stat. I think it’s the second most starred repo for the organization, after obviously the HTML5 Boilerplate projects.

Wow. That’s huge, man. 14,048 stars, 2,126 forks, 119 contributors - that’s definitely not a stat to shake a stick at. And to tee off what you’d mentioned about localization for languages, a post recently from Mikeal Rogers, who was recently on the show for io.js - he has a post out there called “How io.js built a 146-person, 27-language localization effort in one day.” And one thing he talked about was how he traveled to Korea, and how there’s a Node community in Korea that was sort of hidden, I guess, to the rest of the world, because they operate in these sort of localization silos that don’t really go beyond their language. So having the localization that you’ve gotten already with multiple languages is pretty huge.

Yeah, it was amazing to see. That was something I wasn’t expecting. The first ever commit that somebody made - I think it might have been a French translation - I had no idea how I was even gonna handle that, or what that was gonna look like. The fun thing about this project is it’s essentially just a markdown file. So I think it’s really easy for people to get involved in, and a lot of people feel that they can actually make a commit very easily, or they can actually contribute to a project like this and not have to worry about adding tests, or things like that.

So it was great to see that worldwide we got some traffic, and that people were – you know, that wasn’t even a push from me. I didn’t ask the community to make translations. They just did. So that was really awesome to see. Over the years, we’ve grown – unfortunately, many of the different translations are in different states and they don’t always stay up to date…

I was gonna ask how you keep that in sync…

Yeah, that’s one of the harder things. We really rely on people who obviously speak and write those different languages to commit back to the project.

And now, a word from our sponsor.

Break

[00:19:05.11]

You mentioned that it’s just a markdown file… Any plans to take that and turn that into an actual site that’s got some design behind it, and put some form to this function?

[00:20:03.10] Sure. We haven’t really thought about that. I never thought about that at all. There’s a GitHub page, website basically; it’s just a rendered HTML/CSS version of the markdown file. So it’s not much more than that… But yeah, there hasn’t been talk about that. That’s a good idea. I might do that, now that you suggest that.

Well, the readme is great, it’s accessible. You’ve got the anchored headings, and things like that, and clearly, you’ve got 14,000+ stars on it, so that’s not holding you back… I think that it becomes a destination once you put a URL to it and some design to it, and it sort of takes on its own life… Though I don’t think it’s required. You’ve got sort of this sync issue with localizations, but then that also provides a potential issue for the site; maybe your site can only support English, but that’s not gonna scale well… You’re gonna wanna support maybe a subdomain per language, potentially, or at least a slug on the URL, or something like that.

Yeah, for sure. It’s definitely something I’ll take into consideration. It’s probably a good idea to do something like that… Especially because we’ve made this transition and it’s now part of the HTML5 Boilerplate, it definitely feels like it’s got a lot of energy behind it right now, and obviously we’re talking about it today, so… Yeah, I think that’s probably a good idea. It made me make it even that much more accessible to people, so… Yeah. I like it.

It seems like there’s an interesting dynamic when you’re – you know, we all struggle and try to manage open source projects, and a common conversation that we have with people is just managing community, the demands it puts on you as a maintainer… You said it’s slightly different when it’s basically prose; you manage the English ones and I guess you just hope those translations stay accurate. Or maybe you have a checksum system or something that you can do, a second set of eyes on the translations… But any interesting struggles that you would have semantic arguments? Perhaps managing a text document in an open source community, as opposed to a software project.

Definitely. We try to be objective, and I’ve definitely been sort of the overseer or the guardian of the document and the questions since its inception. So it comes into question a lot of times whether or not – I have to question myself what are my intentions, if I agree or disagree with somebody… So I always have to be – it’s essentially the worst kind of open source projects you can ever create. There’s a ton of politics around essentially language. Essentially, this document is like a high school English assignment, with over 100 group members, and they all have differing opinions, and there’s a ton of different subjects that you need to talk about. It’s definitely the worst kind of open source project for that.

But yeah, I try to stay objective… There’s been a few times where you obviously have to tippy-toe and try to work with the community. Maybe the best thing that I’ve been able to do is garner support around my opinion on what should or shouldn’t be added, or why I think that phrasing should change.

It’s really funny, I never did that well in English in high school, but now I’m essentially talking to people about their grammar, and the phrasing, and the tone of questions and sentences… It’s really funny, the kind of problems that we have in a project like this.

So yeah, we face some interesting problems with this, compared to a typical open source project.

What about just crazy, off-the-wall questions? Do you ever get somebody to submit something that you think “What are they talking about?” [unintelligible 00:24:06.27]

[00:24:11.17] [laughs] I think the worst stuff is maybe topics or discussions we’ve already had in the past, or times when I’ve had to guide people in the right direction, or just let them know our stance on things… We don’t get too much stuff in left field, and I would never wanna point anybody out. But yeah, over the years we’ve had some interesting people. When it first released, the document actually got a lot of traffic on Reddit, and there were a lot of people that were saying that we were better off without something like this, and they were sort of bashing the project, or even this idea of having a list of interview questions.

So that’s why I actually initially put this into a GitHub repo, because I was hoping that somebody like that would actually just make a pull request that deleted the entire document. And if it got enough traffic, or if enough people gave it thumbs up, then I would have just scrapped everything and we wouldn’t be where we are today. But those people obviously didn’t come and contribute, so… Yeah, I haven’t faced anything super-odd quite yet… But anytime somebody tries to add an answer, I know it’s all well-meaning, but that’s probably the hardest time for me, is to tell somebody that “You know, this project isn’t about giving everybody all the answers. It’s more about making people think, and asking themselves whether or not they know how they would answer a question like the one that’s there in front of them.”

So you can’t turn over the sheet and see the answers…

No. I’ve had a number of HR people, recruiters email me, asking –

They wanted the answers.

Yeah, they asked me for the other document. They were like “So where’s the other markdown file?” Um, yeah.

That’s just the worst…

That one’s for sale. [laughs]

Oooh. Business model!

Yeah… The funniest thing about the document is that I’ve actually – it’s been around for three years, so I’ve obviously had at least one or two interviews between when it came out and as of today. And I’ve actually had people over the phone be looking at the document, asking me questions from it. So that’s pretty funny, yeah.

That’s awesome.

[unintelligible 00:26:36.07]

It’s really funny to hear the realization on the other end of the phone… It’s like, “Wait a second, you’re the guy that… Oh. Oh, okay… I see. Yeah, this is your project. So…”

Does that automatically get you hired then, since you essentially helped write the document?

[laughs] No, I struggle, as anybody does… I struggle to come up and communicate my answers. The best thing that I hope these questions do is obviously start a discussion, and the smart people will get the jobs. But yeah, I don’t automatically get a pass… Unfortunately.

What do you need to say when you get somebody asking one of your own questions? You have to just say “No, so you’re asking it all wrong. You’re supposed to ask it like this.” Then you get the job.

[laughs] Yeah, yeah. A key thing there is they’re not my questions, too. That was one of the big things, too… I talked to Paul a couple times, and we had actually meant to make this an HTML5 Boilerplate project over a year ago… But there’s a lot of contributions here, so definitely there’s stuff in here I would have never even thought to ask, but it’s good to have whatever that contribution was.

That’s the beauty of open source… Three years ago you read a blog post based on you and your friendship with - his name is Wes Bos, right?

[00:28:11.24] Yeah, Wes Bos.

So you’re trying to prepare him, and just prepare in general, and you decided to share that. That’s what I love about open source, and one of the things I think stirs up so much emotion between Jerod and I and what we do here at the Changelog - because this one little act here you did three years ago has probably paid it forward for so many developers, and it’s probably even impossible for you to see the ramifications of one active open source propel in such a way - 14,000 stars later, I can’t recall how many forks, because I moved away from that tab, but… Just so much.

Let’s talk about the last three years then, since it’s what you said a bit ago, and what I’ve just said there. If we go down to the table of contents, you’ve got general questions, HTML questions, CSS questions, JavaScript questions, and networking, coding, and then some fun questions to kind of round that off. I know that HTML itself hasn’t changed – I guess it kind of has changed dramatically; we’ve gone from xHTML to HTML5, and then we’ve got Sass, and we’ve got Less, and we’ve got various – we’ve got CoffeeScript, we’ve got different frameworks for JavaScript… How has maybe the document, as well as the idea of a frontender changed over these last three years for you, and I guess the community powering this project?

I think definitely the community – the keyword, I’ve probably said a couple of times already, is “matured”. The community definitely matured, and the frameworks did… We’re talking about higher-level programming paradigms or theories, and how we can implement that in JavaScript; we’re getting native support for a lot of things that we think are helpful in other programming languages now, with like ES6 coming out…

So I think we’ve seen definitely a lot of change. Preprocessors weren’t even a thing in 2012, right? So it’s really funny to see where we came. Maybe Less was around.

Well, Less was around. If you were using [unintelligible 00:30:20.10]

I think Sass was there, too.

Really?

Sass is like seven years old.

No way…

Don’t mess with the Stac in a Sass way. He’ll tell you all about it…

Yeah, Sass goes back, man…

Oh, man… Well, okay.

It was invented by Hampton Catlin about seven years ago now. Probably seven-and-a-half years ago.

It was not mainstream back then.

Okay, right. I wasn’t using it, so it wasn’t mainstream. [laughter]

It became more in light I would probably say – you know, 2009 is probably when it got more and more prolific… But yeah, Sass has been around for – that’s what people don’t get either, is that Sass, and probably a whole different topic, and which maybe is a different show, but let me put this out there while we’re on this topic… People don’t realize that Sass has been around for so long and that’s why it’s so trustworthy, because the people that have been behind it had been with CSS, morphing and changing over these years, and morphing and changing with everything the interface has been doing, and have been making Sass evolve into SCSS, and then now you’ve got LibSass, and you’ve got all these different things that have come along with it… And no knock against Less, but Sass has been there for a very long time; more than seven years.

Yeah, now that you guys say that, I definitely remember when Haml and Sass first came out… Yeah, I do remember it was a long time ago, and I guess my brain has been fried by all the framework wear, and all the new preprocessors.

And churn… Yeah.

I think it’s safe to say that in 2012 - unless my timing is totally off - we can say that frontenders were still debating whether or not preprocessors were a good idea or not…

That’s true.

…whereas today it’s pretty much an established thing that…

It’s a no-brainer.

It’s more of a no-brainer. I’m sure you still have your fringe people who think it’s stupid, but they’re fringe.

[00:32:10.11] Yeah, and I would say single-page applications weren’t as big. We might have been using hashbangs back then still, or you were writing your own framework to do routing, and things like that. Now, obviously, we’ve got a ton, a huge variety of libraries and tools now. But again, those kinds of things we try not to talk about in this project. We talk about the concepts they bring out, like routing, and the history API, or something like that. We talk about data binding, and things like that, that are more global and can be applied across any framework, or any framework probably would need for building single-page applications… But that’s definitely something that’s changed in the last three years, is seeing that.

We don’t have a lot of questions about testing, which I would love to see more of, and I think that’s definitely something that the community has embraced in the last three years, and is testing the code, and writing modular code… I think we can do a better job at applying TDD questions in this document… So that’s maybe something that somebody can make a pull request for.

Do you think it’s safe to say that the breadth of knowledge that’s expected of frontenders has increased over time?

Oh, yeah… For sure.

Oh, yeah…

Was that too easy of a question…? [laughter]

[unintelligible 00:33:36.23]

Is it ever gonna contract? Will it ever contract? Will it ever get easier?

I think that there’s definitely been specialization. I think there’s a lot of people that might be doing backend JavaScript work now, because Node and Io have got to a point where people trust them for production… There might be people branching out and getting more specific in their roles, in what we would have considered frontend development realm, or lives. And I think that you see designers – the term “designer” in our industry has sort of changed, too. Designers are now expected to code, so they might know HTML and CSS, and they may be able to design in the browser, build experiences around the browser.

So I don’t know if the term “frontend developer” - I don’t know if we’re ever gonna be asked less of. I think there’s always gonna be more that we’re expected to know…

And it’s very hard, because you straddle the line of – you wanna make a performant website, so you need to understand protocols, you need to understand the backend, APIs you’re hitting; maybe you work with that backend developer to develop those APIs you work with, and things like that. So you really have to understand the full gamut of what it is to build a website, and how that website gets cached on people’s laptops, and on their phones, and how it gets distributed worldwide on the internet. So it’s very interesting what’s expected of us. I don’t think that there’s any less, or we’ll be asked any less in the future. I think it’s just a growing batch of things we should know.

That’s definitely one area where I haven’t paid a ton of attention as a frontender, is the networking side of it, the performance side of it… And that’s where I think you begin to blur and cross the lines of – and not to use words or language like “just”, as if it’s not good enough, but when you’re just someone who writes HTML or CSS or Sass or Haml, to crossing the lines to being more developer speak, when you’re talking network and talking protocols, and multi-domains, and just performance stuff… But that’s a different topic.

So Jerod and I wanted to close the call, to turn a couple of questions on you. Would you mind if we pulled a couple of our favorites out and asked you a couple of questions?

[00:36:09.15] Sure, yeah.

You’re on the hotseat. You can’t say no.

Uh-oh… Okay.

Jerod, take the first one. I’ve got one, too.

You want me to go first?

Alright, well I’m gonna start off easy, because Adam’s the mean one… [laughter] We’ve got categories, and we’ll start in the fun questions… So here we go. What’s a cool project that you’ve recently worked on?

I recently worked together with a digital agency… I don’t know how much I can say about it, but we launched the project for the Grammy’s for a very well-known car company. We essentially did facial recognition using the CLM tracker. If you guys have heard of that - it helps you detect someone’s face, either through a webcam, or video, or even from any sort of image data. And from there, we actually generated a custom, unique song based on your face.

You basically take almost like a selfie, or you can use your webcam, and it generates a unique song for you. That was probably a pretty cool project that I’ve just finished up.

That does sound cool. The CLM tracker - is that an API, or a library?

CLM I think is an algorithm.

It’s an algorithm, okay.

Yeah. If you look it up, I think there’s some MIT papers around it. And I forget the developer who worked on the JavaScript implementation, but it’s been around for a little while… And yeah, it’s essentially like a JavaScript library that you can use, and just apply it to any kind of input that you would get from either [unintelligible 00:37:52.08] somebody’s webcam, and you can find the data points of a user’s face. So you can find their nose, their eyes, and it will track where that is. That was pretty cool.

What was that project we’ve recently linked up in Weekly, Jerod, that did this? I think it was actually on the blog.

Yeah, that was a jQuery plugin that does face detection… So possibly using this technique, but specific for jQuery. That project caught my eye, because he was using anchorman as his – he was attacking the anchormen faces, and I was like “Oh, I’ve gotta link that up.” But yeah, Adam found the JavaScript one, the CLM tracker, so we’ll link that up in the show notes. Interesting. It sounds like a fun project.

Yeah, it was a lot of fun to work on. I worked with a lot of really smart people that did a lot of the WebGL stuff, the animations. And we also worked with another great company to get all the sounds done. We sort of did all the wiring and the framework behind actually presenting all that… But yeah, it was a good project.

Cool. And now, a word from our sponsor.

Break

[00:39:15.13]

Well, this one here Jerod said I’m mean. I don’t know if I’m being mean when I ask this one… I think this is a good one for anybody – who officially likes CSS? And if you put your hand up, you’re somewhat crazy, and adventurous, but…

I met a guy once…

…not everybody loves CSS, so it sort of gets this bad rep. But it’s a labor of love when you write CSS, whether you’re writing Sass, Less, or whatever… But just understanding the cascades. The question I wanna ask is around the C in CSS, so what is stands for, which is cascading. The question – officially, this is the question?: “The C in CSS stands for cascading. How is priority determined in assigning styles?” And give a few examples if you want to. And then the follow-up question to that is “How can you use this system to your advantage?” Talking about the cascade.

Okay. Let me try to find that question. Is it actually in this document? Are you guys just pulling out of this document? You guys are crazy… [laughter]

I am not pulling your leg. It’s in your doc.

We’re going through your rejected pull requests and we’re asking them…

It’s near the bottom of the CSS readme.

I told you he’s mean, man… It’s tough.

Well, I like this one because it shows off the cascade for CSS, which is cool…

Well, cascading essentially – yeah, child elements inherit the styles of their parents. That’s sort of the cascading styles there. But to be honest, I try not to answer these questions… Not to be on the hotseat, but because – I was actually asked by another person recently to do a talk, and to basically go in there and answer a bunch of these questions. I’m okay with the fun ones, because they are, as they say, fun…

But my biggest concern is obviously somebody will take my answer as de facto, the truth, or they’ll reuse that and if they don’t get a job for any reason, because they used whatever we gave them. So I would answer that cascading styles question with talking about inheritance of children and their parents, and the relationship there. And then also talk about “You can use this by creating little modular pieces of CSS that can be reused using classes.” Talk about, let’s say, font families that could be applied, or if you had little buttons that had a wrapper div that applies some style to the button, you can reuse that. Or you can set sort of a global class on the body that helps to show or hide, let’s say, content on mobile or desktop. I would go into probably examples of how I would implement or showcase cascading in CSS. But yeah, I try not to answer these… I try not to.

Well, what I was really asking, why I wanted to ask that question was I was really hoping you’d say the word “specificity”. Because two co-hosts ago – Wynn Netherland started this podcast with me, and it was funny, because anytime we had a stylesheet-related topic on the show… And Wynn, if you’re listening to this, or if anybody knows Wynn, bring it up to him, because I loved it, because he can never say “specificity”. He would always say “Adam, can you say that for me?” Or I forget how it evolved, but he can never say “specificity”.

[00:44:13.18] I think I can… My English is okay. Specificity… [laughter]

Almost perfect. Almost perfect.

Almost.

Specificity.

Alright, let’s hop back to the fun questions…

There you go. Save him, please.

Quit grilling him, Adam.

[laughter]

We’re gonna turn some of these questions on Adam here in a second… This one’s great, because it’s actually kind of hard. What’s you’re favorite feature of Internet Explorer?

My favorite feature that’s still there would be the way that they render the box model. Or the original way that they – I guess this question’s a little bit up for interpretation, because it doesn’t say a specific version of Internet Explorer.

Right.

I would say actually – there’s a couple. I have a bunch of features I really like. The developer tools have gotten a lot better, which was huge… Because the F12 developer tools for so long were lacking. But I would say that they got the box model right. Internet Explorer originally got the box model right.

Good call.

Yeah. After you set a width of something, you want it to be that width. I remember having to play with margins, and have all these calculations in your head…

Was there a double margin bug as a port of that though, the box model?

Yeah, there was some–

Like IE6.

Probably. And now we have a box-sizing/border-box to get that functionality back…

I think so.

Box sizing.

Yeah. Anyway, that’s a great one. But the one I thought of, if you’re going historically - because I have no idea what my current favorite feature is… It would be [unintelligible 00:45:55.14] right?

Oh, right…

I believe they were the first ones that added –

Right. Who wouldn’t love that one?

Yeah. I mean, that revolutionized the web.

So you got the second-best answer. I’m just kidding… [laughs]

Yeah… Thanks.

Just kidding. [laughter]

I thought you said I was the mean one.

Yeah. You’re grilling me hard.

You’re the mean one. Well, bad cop/bad cop, I guess.

[laughs]

What have we got time for, Adam? One more?

We’ve got three minutes… You could ask one more. Ask a fun one. Ask whatever you want.

There’s only about five…

You know what questions are really fun? Our closing questions. Maybe we should just go on to those.

Well, hang on. Let’s pause here for a second. Darcy, which one is your favorite question in this whole document?

Oh, my goodness. There’s so many. I used to have a couple favorites that we got rid of, because they were just too ridiculous. I actually really like the coding questions, the coding examples. I think that anytime that you can get a developer to actually either do some whiteboarding, or talk through maybe the APIs that they know, or how they would write a function, I think that’s a lot of fun. So I would say one of my favorite questions is probably either the – hm… I’d say the split/reverse/join. In the coding questions there’s like a “I’m a lasagna hog”, and it was actually misspelled at one point… But I think somebody wanted to make it like racecar, so it was the same thing forwards and backwards…

But I really like this, because I would actually probably follow this up with “How would you reverse a string?” Not actually show them how to do it, but “How would you reverse a string?”, and see if they would know that there’s a native method to reverse a string. Or see if they were concerned about the order in which the characters came in… Things like that I think are really valuable.

Yeah, it’s just some psyche, some nature behind their thoughts…

Yeah, for sure.

Awesome. Well, now let’s close with a few questions that we like to ask. The first one is “Who is your programming hero?”

Well, he’s kind of a good friend of mine - Paul Irish is definitely a guy that a lot of people look up to. He’s the only guy that I actually got excited to talk to in person. I really got giddy, and we had lunch at the Google offices years ago, when we first met in person.

He was definitely a big inspiration for the work that I do in open source, and how I feel about contributing to the community… He’s a good role model, and I think he definitely works tirelessly - or at least he used to work tirelessly; I’m not sure if he’s taking a little bit of break… But he’s always contributing to the open source community, and he’s definitely my development hero, I guess.

A good call. I saw Paul give a talk at – I think it was like jQuery Con back in probably 2011-2012. He’s just a very entertaining, and smart speaker. An inspiring guy that makes you wanna do cool stuff on the web, for sure.

For sure, yeah.

I had Paul on the show actually back in the day too, on episode #67.

[unintelligible 00:49:12.19] and a bit more.

Awesome. Next question - a call-to-arms to the open source community, whether it has to do with frontend developer interview questions, or another project you’re doing… If you’re speaking directly to the open source community, which you are, what would you say to them?

I would say “Inspire” is the best thing I could say. That one word. It’s sort of a motto that I’ve had for a number of years. Anytime I do a talk, I sometimes show less code than people expect me to, because I’m trying to show off examples of work, or something really cool that’s gonna inspire somebody. And I think that’s the best way to educate someone… Because if you’re giving a talk or you’re writing a blog post, you only have so much of that person’s time to try to teach them something, or try to get them excited about a topic… So if you’re gonna inspire them, or get them excited in some way, they’re gonna go off and they’re gonna go do that research and learn more.

So if you can be the spark for someone else, whether it’s in your community, or even broader, if you can really show somebody something awesome or try to explain something in a way that is entertaining, like Paul does and a lot of other people do, I think you’re doing a great service to the community, and I think that’s something I try to do, and I hope that other people try to do - inspire our peers.

Good answers. I love that. Inspire.

Next one… So if you weren’t doing what you’re doing, which is being a frontend developer, and the way you make your living and what you’re doing with your life, what would you be doing instead?

That is a hard question… I’m not sure if it’s an easy way out - I’d probably be a designer. Is that fair, is that okay to say?

If that’s what you wanna be doing, yeah.

Your answer is your answer.

Okay, well I’d be a designer, or I’d be a marketer. I’ve thought I might wanna be an accountant or a math teacher at some point, but there’s no way I was gonna look at ledgers all day. So yeah, I think I’d probably be a designer. Actually, I went to a Performing Arts high school, and majored in graphic design, so I really like design. Yeah, I would probably be a designer.

Awesome. Alright, last question - I don’t think we pulled this one out for a while… What’s something that is on your open source radar? A project that has you excited or has inspired you, that you could share with everybody, that you’re interested in?

[00:51:52.09] Something that I’ve seen recently, or…?

Yeah, something you’ve seen, or that’s on your radar… Maybe you’ve used it and you like it, or maybe you can’t wait for a chance to give it a try. Just anything.

Another way to answer that question too is if you had a free weekend where you didn’t have to do anything work-related, what would you hack on? That might also answer that. What would you play with?

Well, definitely I have a few free weekends… I think that the stuff that the Flipboard guys posted the other day, with React Canvas - I’d love to dig in there and check that out. Yeah, a lot of that – React Native sounded really interesting. I’d love to see what they’re doing internally in those projects, and sort of dig into their code. I think they’re pretty cool.

So yeah, those are two that are on my radar. Doing more React is definitely in my future, for sure. I love the idea of the virtual DOM. I think it’s a sexy thing and a sexy topic right now.

We don’t have them lined up yet, but that’s definitely on our hitlist of shows to have in the near future… So we’re gonna reach back out to our Facebook contacts and get some people from the React team on the show to talk about React.

Yeah, it’s a great project.

And only because there’s [unintelligible 00:53:01.29] but it’s not. It’s React, with a “t” at the end… So my enunciation of the final “t” there is important when you mention that project, so… Yeah, it’s exciting. We almost can’t help but link it up in our weekly email, which is called Changelog Weekly, because it’s got so much buzz around it right now… Which is exciting.

I’m gonna do something a little different this time around for the close of the show. So if you’ve listened to the most recent show, or one of the more recent shows, which was #141, we talked about how I’ve come on to be the first full-time employee of this here company called The Changelog, and how that matters to the community, what that means for this show, what that means for The Changelog going forward… And I thought I’d mention a few members, because we have a membership. It’s $20/year; it’s the easiest way you can support us directly. It’s like our Patreon, or like our Gittip, which isn’t around anymore. I forget what it’s called now, the new name…

Gratipay.

Gratipay. It’s like our version of that. So if you wanna directly support the Changelog being around, being here, this is the way you can do it. Go to changelog.com/membership. I’m gonna rattle off probably around 20 names, I think… But every show we’re gonna start closing with the most recent, this week’s new members. Hopefully this doesn’t get boring…

In this case there’s a lot because I think we just have an influx, but we’ve got Douglas Gray, Shawn Dunn, Pablo Navares, Bill Israel, Garret Diamond, Dave… David, I can’t say your last name which is [unintelligible 00:54:45.23] I’m gonna try and say that. I have a bad last name too, so don’t hate me. Matthew Brixton, Jonathan Banta, Austin Ginder, Ben Gillan - a good friend of mine actually here locally; a good buddy of mine here, close by. We’ve got Matthew McCormick… Somebody who just put one name in, which is Ebers Bock… Mike Perham, a friend and past guest on the show, so Mike, thanks for your support. Kyle Mahan, Camilla Pyon, and Mr. P. Gomez.

Thank you all for directly supporting this show, supporting The Changelog. Your support means the world to me and Jerod and everybody else who’s a part of this… And I’m sure Darcy, too. Right, Darcy?

Oh yeah, definitely. I’m gonna go donate right now, since I [unintelligible 00:55:35.21]

Yeah, we’ve got some awesome benefits for our members. We have a members-only Slack room, so if you use Slack - which you probably do - we have an open Slack room where we’re pretty much sharing all of the behind the scenes of The Changelog, what we’re doing, what’s on our radar… It’s sort of like as we do what we do, it unfolds and you kind of play a part of it as you like; or you could just hang out and be idle, and just lurk if you’d like to. We don’t care; whatever you wanna do.

We’ve got some awesome for this show, too. Codeship, Toptal and CodeSchool are sponsors of this show, so a big shout-out to them. And Darcy, it was awesome having you on the show, man. Thank you so much for last-minute coming on the show, talking through these questions, and then not minding the good cop/bad cop Jerod and I played with asking some questions, man. Pretty cool.

Yeah, no problem. Thanks for having me, guys.

So for the listeners out there, if they wanted to follow you, or follow you on GitHub, how can they follow you?

The easiest way to get a hold of me or to check out what I’m doing is probably hit up my GitHub page, GitHub.com/DarcyClarke, or follow me on Twitter, twitter.com/darcy.

Wow, /darcy. Nice.

Yeah, it’s pretty legit.

Nobody else had that. That’s so cool. Or did you have to go beat somebody up for it?

Yeah, I had to pull some strings…

Ah… Some strings. Nice.

[laughs]

Well, Darcy, it was definitely fun having you on the show. We’d love to have you back anytime you’re coming back. We didn’t get to mention your DSS project, so maybe we can feature that in this week’s Weekly, and then have you back on the show in the near future to talk about that, but… Sorry for [unintelligible 00:57:14.23] let’s say goodbye, everybody.

Cheers.

See ya!

Changelog

Our transcripts are open source on GitHub. Improvements are welcome. 💚

0:00 / 0:00