Skip to content

Latest commit

History

History
479 lines (240 loc) 路 51.1 KB

the-changelog-143.md

File metadata and controls

479 lines (240 loc) 路 51.1 KB

Adam Stacoviak: 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.

Darcy Clarke: No way... That's crazy.

Adam Stacoviak: Yeah, man.

Jerod Santo: Is that what they're called, Torontonians?

Adam Stacoviak: If you're from that area and you call it Toronto, you're wrong. It's Toronto [Tronto].

Jerod Santo: Tronto.

Adam Stacoviak: Right?

Darcy Clarke: Yeah, a very distinctive lack of a "t" there, yeah.

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

Darcy Clarke: Wow. Yeah, I actually lived in Markham, too. That's crazy.

Adam Stacoviak: 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?

Darcy Clarke: 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.

Adam Stacoviak: 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.

[04:00] 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.

Darcy Clarke: [laughs] Yeah. It was a quick turnaround, that's for sure.

Jerod Santo: It looks like we're not the only ones to think this is a pretty good repo...

Adam Stacoviak: This is highly popular.

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

Darcy Clarke: 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.

Adam Stacoviak: 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?

Darcy Clarke: 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.

Adam Stacoviak: 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.

Darcy Clarke: 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...

[08:07] 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...

Adam Stacoviak: 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.

Darcy Clarke: 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.

Jerod Santo: 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?

Darcy Clarke: 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.

[12:13] 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.

Jerod Santo: 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...

Adam Stacoviak: 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.

Darcy Clarke: 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.

Adam Stacoviak: 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.

Darcy Clarke: 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.

[16:07] 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.

Adam Stacoviak: 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.

Darcy Clarke: 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...

Adam Stacoviak: I was gonna ask how you keep that in sync...

Darcy Clarke: 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.

Adam Stacoviak: And now, a word from our sponsor.

Break: [19:05]

Adam Stacoviak: 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?

Darcy Clarke: [20:03] 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.

Adam Stacoviak: 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.

Darcy Clarke: 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.

Jerod Santo: 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.

Darcy Clarke: 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.

Jerod Santo: 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]

Darcy Clarke: [24:11] [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."

Adam Stacoviak: So you can't turn over the sheet and see the answers...

Darcy Clarke: No. I've had a number of HR people, recruiters email me, asking --

Adam Stacoviak: They wanted the answers.

Darcy Clarke: Yeah, they asked me for the other document. They were like "So where's the other markdown file?" Um, yeah.

Jerod Santo: That's just the worst...

Adam Stacoviak: That one's for sale. [laughs]

Jerod Santo: Oooh. Business model!

Darcy Clarke: 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.

Jerod Santo: That's awesome.

Adam Stacoviak: [unintelligible 00:26:36.07]

Darcy Clarke: 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..."

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

Darcy Clarke: [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.

Jerod Santo: 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.

Darcy Clarke: [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.

Adam Stacoviak: 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?

Darcy Clarke: [28:11] Yeah, Wes Bos.

Adam Stacoviak: 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?

Darcy Clarke: 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.

Adam Stacoviak: [30:27]

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

Adam Stacoviak: I think Sass was there, too.

Darcy Clarke: Really?

Adam Stacoviak: Sass is like seven years old.

Darcy Clarke: No way...

Jerod Santo: Don't mess with the Stac in a Sass way. He'll tell you all about it...

Adam Stacoviak: Yeah, Sass goes back, man...

Darcy Clarke: Oh, man... Well, okay.

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

Jerod Santo: It was not mainstream back then.

Darcy Clarke: Okay, right. I wasn't using it, so it wasn't mainstream. [laughter]

Adam Stacoviak: 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.

Darcy Clarke: 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.

Jerod Santo: And churn... Yeah.

Darcy Clarke: Yeah.

Jerod Santo: 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...

Adam Stacoviak: That's true.

Jerod Santo: ...whereas today it's pretty much an established thing that...

Adam Stacoviak: It's a no-brainer.

Jerod Santo: 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.

Darcy Clarke: [32:10] 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.

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

Darcy Clarke: Oh, yeah... For sure.

Adam Stacoviak: Oh, yeah...

Jerod Santo: Was that too easy of a question...? [laughter]

Adam Stacoviak: [unintelligible 00:33:36.23]

Jerod Santo: Is it ever gonna contract? Will it ever contract? Will it ever get easier?

Darcy Clarke: 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...

Jerod Santo: Yeah.

Darcy Clarke: 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.

Adam Stacoviak: 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?

Darcy Clarke: [36:09] Sure, yeah.

Adam Stacoviak: Yeah?

Jerod Santo: You're on the hotseat. You can't say no.

Darcy Clarke: Uh-oh... Okay.

Adam Stacoviak: Jerod, take the first one. I've got one, too.

Jerod Santo: You want me to go first?

Adam Stacoviak: Yeah.

Jerod Santo: 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?

Darcy Clarke: 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.

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

Darcy Clarke: CLM I think is an algorithm.

Jerod Santo: It's an algorithm, okay.

Darcy Clarke: 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.

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

Jerod Santo: 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.

Darcy Clarke: 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.

Adam Stacoviak: Cool. And now, a word from our sponsor.

Break: [39:15]

Adam Stacoviak: 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...

Jerod Santo: I met a guy once...

Adam Stacoviak: ...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.

Darcy Clarke: 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]

Adam Stacoviak: I am not pulling your leg. It's in your doc.

Jerod Santo: We're going through your rejected pull requests and we're asking them...

Adam Stacoviak: It's near the bottom of the CSS readme.

Jerod Santo: I told you he's mean, man... It's tough.

Adam Stacoviak: Well, I like this one because it shows off the cascade for CSS, which is cool...

Darcy Clarke: 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...

Adam Stacoviak: Right.

Darcy Clarke: 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.

Adam Stacoviak: 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".

Darcy Clarke: [44:13] I think I can... My English is okay. Specificity... [laughter]

Jerod Santo: Almost perfect. Almost perfect.

Darcy Clarke: Almost.

Adam Stacoviak: Specificity.

Jerod Santo: Alright, let's hop back to the fun questions...

Adam Stacoviak: There you go. Save him, please.

Jerod Santo: Quit grilling him, Adam.

Darcy Clarke: [laughter]

Jerod Santo: 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?

Darcy Clarke: 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.

Jerod Santo: Right.

Darcy Clarke: 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.

Jerod Santo: Good call.

Darcy Clarke: 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...

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

Darcy Clarke: Yeah, there was some--

Adam Stacoviak: Like IE6.

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

Darcy Clarke: Yes...

Jerod Santo: I think so.

Adam Stacoviak: Box sizing.

Jerod Santo: 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?

Darcy Clarke: Oh, right...

Jerod Santo: I believe they were the first ones that added --

Adam Stacoviak: Right. Who wouldn't love that one?

Jerod Santo: Yeah. I mean, that revolutionized the web.

Adam Stacoviak: AJAX.

Jerod Santo: So you got the second-best answer. I'm just kidding... [laughs]

Darcy Clarke: Yeah... Thanks.

Jerod Santo: Just kidding. [laughter]

Adam Stacoviak: I thought you said I was the mean one.

Darcy Clarke: Yeah. You're grilling me hard.

Jerod Santo: You're the mean one. Well, bad cop/bad cop, I guess.

Darcy Clarke: [laughs]

Jerod Santo: What have we got time for, Adam? One more?

Adam Stacoviak: We've got three minutes... You could ask one more. Ask a fun one. Ask whatever you want.

Darcy Clarke: There's only about five...

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

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

Darcy Clarke: 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.

Adam Stacoviak: Yeah, it's just some psyche, some nature behind their thoughts...

Darcy Clarke: Yeah, for sure.

Adam Stacoviak: [47:59] Cool.

Jerod Santo: Awesome. Well, now let's close with a few questions that we like to ask. The first one is "Who is your programming hero?"

Darcy Clarke: 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.

Jerod Santo: 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.

Darcy Clarke: For sure, yeah.

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

Jerod Santo: Nice.

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

Jerod Santo: 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?

Darcy Clarke: 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.

Jerod Santo: Good answers. I love that. Inspire.

Adam Stacoviak: Yes.

Jerod Santo: 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?

Darcy Clarke: 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?

Jerod Santo: If that's what you wanna be doing, yeah.

Adam Stacoviak: Your answer is your answer.

Darcy Clarke: 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.

Jerod Santo: 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?

Adam Stacoviak: Nice!

Darcy Clarke: [51:52] Something that I've seen recently, or...?

Jerod Santo: 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.

Adam Stacoviak: 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?

Darcy Clarke: 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.

Adam Stacoviak: 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.

Darcy Clarke: Yeah, it's a great project.

Adam Stacoviak: 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...

Jerod Santo: Gratipay.

Adam Stacoviak: 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?

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

Adam Stacoviak: 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.

Darcy Clarke: Yeah, no problem. Thanks for having me, guys.

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

Darcy Clarke: 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.

Adam Stacoviak: Wow, /darcy. Nice.

Darcy Clarke: Yeah, it's pretty legit.

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

Darcy Clarke: Yeah, I had to pull some strings...

Adam Stacoviak: Ah... Some strings. Nice.

Darcy Clarke: [laughs]

Adam Stacoviak: 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.

Darcy Clarke: Cheers.

Jerod Santo: See ya!