The Changelog: Software Development, Open Source - Front-end Developer Interview Questions (Interview)
Episode Date: February 21, 2015Darcy 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 o...f 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.
Transcript
Discussion (0)
Welcome back everyone. This is the change log and I'm your host Adams to Kovac.
This is episode 143 and on today's show, Jared and I talk to Darcy Clark.
He is the creator and maintainer of Front End Developer Interview Questions, the second most popular repository in the H5BP organization there on GitHub.
That's the HTML5 Bulletplate organization,
and it's second to only the HTML5 Bulletplate itself with 14,145 stars.
Great show line-up for you today.
Talking to Darcy Clark.
We've got some awesome sponsors for this show.
CodeShip, TopTile, and CodeSchool.
We'll tell you a bit more about TopTile and CodeSchool later in the show.
But our friends at CodeShip, they're all about continuous delivery made simple.
That's what they do every day.
They help you set up continuous integration for your app in just a few steps, and they
make sure that you deploy tested code when all your tests pass.
CodeShip is based on usability, so everything is designed to be as easy to use as possible.
And in fact, CodeShip recently listed the feedback from their user base and redesigned
the entire application to include new usability improvements and made it even easier to use.
They've got great support for lots of languages and test frameworks.
They integrate with GitHub and Bitbucket.
You can deploy to cloud services like Heroku and AWS.
And you can get started today by trying out their free plan,
which includes 100 builds a month and five private projects.
When it's time to upgrade, you can use our offer code,
TheChangeLawPodcast, to get 20% off any plane you choose for three months.
Again, that code is TheChangeLogPodcast
to get 20% off any plane you choose for three months.
Head to Codeship.com slash TheChangeLog to get started.
And now, on to the show.
Everybody, we're back. got darcy clark here darcy hails from the good old
city of toronto in the province ontario now 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
is that what they're called? Torontonians?
If you're from that area and you call it Toronto, you're wrong.
It's Toronto.
Toronto.
Right?
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 yeah that's back in the day though. So as you can see everybody we
got myself here, Jared's here, Darcy's here and we're going to talk about a couple projects Darcy's
got going on but Darcy before we kick off let's let's introduce yourself. So who are you? So I'm Darcy Clark, front-end developer based in Toronto.
And I've been doing development, design, some UX and consulting and speaking, a whole bunch of things for a number of years now.
And yeah, I love open source projects and contributing to the community and sort of giving back in that way.
And so, yeah, I've just essentially been doing this for a long time and I'm now here talking to you guys about some projects.
So, yeah, that's a little bit about me.
Yeah.
So we caught up with Darcy because on our fabulous radar and actually in weekly, we're
going to 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 found on the HTML5 boilerplates organization on GitHub a repo called Frontend Developer Interview Questions.
So we thought that was super awesome.
It's a list of helpful questions for frontend people that are interviewing potential candidates and maybe even testing yourself. Or, you know, if you're a front-ender
out there and you're thinking like, well, I can probably answer some of these questions or I can't
at least gives you some way points of what you do and may not know. So we thought this would be a
great time to either have this conversation ourselves, me and Jared, 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.
Yeah, it's got a quick turnaround, that's for sure.
Looks like we're not the only ones that think this is a pretty cool 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 Boss 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.
And I had gone through, I'd been around for a long time, even at that point. And I've been
through my own, my share of interviews and technical interviews. So I was helping him and
I think two or three other friends sort of prep for interviews. And so I got a list of questions that I sort of was giving to each one
of them. And at the same time, my friend Paul Irish actually started another conversation with
some community folks like Alex Sexton, Adam Sontag, Mike Taylor, and they put together a document that
wasn't made public. It was sort of just sort of like a scratch pad of interview
questions that they also thought could be helpful. And I think they were using it sort of in the
private. So I initially sort of reached out, saw that, cleaned it up a bit. And actually three
years, as of Monday, three years ago, I posted a blog post with that document. And that's sort of how everything
got kicked off. So wow. Three years. That's 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? Like what kind of
questions were there? There's several now, but uh what were you skimming across at that time uh so there was a whole bunch of um it's kind of like a conglomerate like
everybody just had put together their thoughts on what they kind of thought would be interesting and
you can actually see the original version um if you go to my my blog darcyclark.me um and you
search around you can actually find the original blog post.
And that actually has the original form of that question.
I called it a questionnaire at that point.
And a lot of people took it literally like they were going to 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 was a number of different things in there.
Originally, we even had some answers 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 some extra things
like i think people were saying like bonus points for things um so it was a little bit more light
hearted um but at the same time it was also a lot more rough around the edges, which wasn't necessarily a good thing.
You said Wes Boss, this sort of keyed around the time whenever he posted a blog post about what he learned interviewing with Google.
And this is sort of, 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 sort of give him some resources or some tips and sort of try to do like 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. And there was a few other people that had asked me
to try to give them, you know, advice or give them, you know, prep questions that I would ask.
And then I had actually asked other interviewees that I had had come across in my in my time as a as more of like a manager
at digital agencies that I had been at so that was sort of like where my my head was at and there
really wasn't anything like this any resource that sort of you know basically combined everything
that you kind of should know or you should be prepared for going into sort of a job interview
for a front-end developer position.
So, yeah, that's sort of where it was at.
And that was kind of my take on it too was like it's not so much only for the interviewee.
It's also for the – sorry, 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, figure out what you do and don't know well enough to go into a front-end developer position or at what degree you're ready for a senior position, a junior position, a junior position, you know, or a green position, for example.
Yeah, it's definitely it's sort of a catch all like it definitely covers 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 going to be interviewed, who's trying to prep or even somebody. And again, like you say, somebody that's going to be interviewed, who's trying to prep,
or even somebody I've, I know a lot of people that are going through boot camps that are using this
also to try to train themselves to get ready just to get into the industry, try to see,
sort of 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, you know, if you're a junior developer. But I think it's
really good, 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.
But yeah.
I'm reading through some of these and I'm a web developer myself, both front end and back end.
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 to uh articulate that in a way that would be impressive you know like that's not going to
immediately come to me so there's definitely some good questions in here i kind of have a
thought about front-end developer in general like the term the role um the changing landscape
that we find ourselves in because Because when this project started,
I think the idea of a front-end developer
is probably maybe not dramatically different
than where it's at today,
but at least it's slid from one side to the other.
Have the questions needed to change
to keep up with the fluidity of the position?
Yeah, 100%.
We 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. We had,
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 the 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 try to get more library agnostic and framework agnostic.
So it's definitely matured.
The document's definitely matured and the questions have matured.
And you can definitely see that it's more focused to concepts more
or it's trying to be more focused on concepts. And 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, you know, 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 going to use JavaScript.
Whereas probably back when you started with it, it was probably pretty safe to assume, well, it's just going to be jQuery-oriented questions because that was such a dominant tool at the time.
And the landscape is really diversified with the different frameworks and libraries that are available. But that original blog post has jQuery specific questions in it, whereas like 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 much value. Again, we're trying to, I think, hit on topics that are sort of more
objectively true or that you can talk about at a higher level. So, you know, 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 sort of the native implementations
that 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,
it moved from originally being still a personal repo of mine
to being under the HL5 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 and it's definitely matured. Even 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 the i guess the stats at that time like
forks and watches and stuff like that the stars yeah uh i mean it hurts a little bit it definitely
takes you down a peg um at the time uh 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're past 25 language translations, which is amazing.
I think that's probably the best stat for this project is the community involvement that we got worldwide.
And people adding resources in their own dialects was great.
So we had, I think, 25 language translations, about 10,000 stars
over that three-year span of it being repo-associated just with my name.
Although I've always tried to keep liner notes for the original contributors
for the other sort of documents that were running around three years ago.
But yeah, essentially, we went from that. And two months ago, we made the ownership or we
changed ownership to the HL5 boilerplate organization. And we saw a huge influx in
traffic, lots more visibility, we've got, I think, another 4000 stars since then. So we're now up to 14 or 15,000 stars
and 2,000 forks or something crazy like that.
Tons, over 100 contributors,
which is another great stat.
So it's seen a lot of,
I think it's the second most starred repo
for the organization
after obviously the H105 boilerplate projects so that's huge man i
mean yeah 14,048 stars 2,126 forks 119 contributors that's definitely not a stat to shake a stick at
and and to tee off what you mentioned about localization for languages. A post recently from of hidden, I guess, to the rest of
the world because they sort of operate in these sort of localization silos that don't really go
beyond their language. And 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 people to get involved in. And I think that 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, you know, adding tests or things like that.
So it was great to see that, you know, worldwide, we got some traffic and that people were,
you know, I, 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.
And over the years, we've grown.
Unfortunately, many of the different translations
are in different states.
They don't always stay up to date.
I was going to ask how you keep that in sync.
Yeah, yeah.
That's one of the harder things.
We really rely on people who obviously speak and write in those different languages to
commit back to the project.
And now a word from our sponsor.
TopTile is the best place to work as a freelance software developer.
If you're freelancing right now as a software developer and you're looking for a way to work with top clients on projects that are interesting, challenging, and using the technologies you want to use, TopTile might just be the place for you.
Working as a freelance software developer with TopTile, your days of searching for high-quality, long-term work and getting paid what you're worth will be over.
Let's face it, you're an awesome developer, and you deserve to be compensated like one.
Joining TopTal means that you'll have the opportunity to travel the world as an elite freelancer.
On top of that, TopTal can help provide the software, hardware, and support you need to work effectively no matter where you are.
Head to toptal.com slash developers.
That's T-O-P-T-A-L.com slash developers to learn more and tell them the change
I'll send you.
You mentioned that it's just a markdown file.
Any plans to take that and turn that into an actual site that's, you know,
got some design behind it and, you know, put some form to this function?
Sure.
We haven't really thought about that.
I never thought about that at all.
We posted a, 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 any talk about that.
That's a good idea.
I might do that now that you than that. But yeah, there hasn't been any talk about that. That's a good idea. I might do that now that you suggest that.
Well, you know, the readme is great.
It's accessible and you got the anchored headings and things like that.
And it's clearly you've got 14,000 plus 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 sort of takes on its own life.
I don't think it's required.
You've got sort of this sync issue with localizations, but then it also provides a potential issue for the site, whereas maybe your site can only support English, but that's not going to scale well.
I mean you're going to want to 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 HMEL5 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'd probably be 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 there's a common conversation that we have with people is just managing community,
the demands it puts on you as a maintainer.
You said slightly different when it's basically pros.
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 with the 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 always have to be it's a it's
essentially uh the worst kind of open source projects you can ever create um there's a ton
of politics around essentially language it's like essentially this 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 and it's it's it's definitely the worst kind of open source project
for that for that but uh but yeah i try to stay objective there's been a few times where
um you know you obviously have to tippy toe and and try to work with the community and and
maybe uh the 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, you know, I think that phrasing should change.
It's really funny, you know, like 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.
And it's really funny, you know, the kind of problems that we have in a project like this.
So, yeah, we've faced 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?
Or is it all pretty tame?
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. I don't say that we don't get too much stuff in left field and I would never want to like
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 was a lot of people that
were saying that they, we were better off with without something like this. And they were,
you know, sort of bashing the project or bashing this, you know, even this idea of having a list
of interview questions. And 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 we 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 uh super odd
quite yet but uh anytime somebody tries to add an answer i know that it's all well meaning but
that's probably the hardest time for me is to to tell somebody that you know this project isn't
about giving everybody all the answers and uh it's more about making people think and, you know, asking themselves
whether or not they know how they would answer a question like, you know, 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 me for the answers. answers yeah they asked me for the other document uh they're
like so where's the other markdown file um yeah that's just the worst that one's for sale yeah
business model uh i could the funniest thing about the document is that i've actually it's been
around for three years so i've obviously had uh at least one or two interviews between when
it came out and and as of today and i've actually had people over the phone be looking at the
document asking me questions from it um so that's pretty that's awesome circle they've come back to
you then 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, okay.
Oh.
I see.
Yeah.
This is your project.
Does that automatically get you hired then since you essentially helped write the document?
No, I struggle to, you know, as anybody who does, you know, I struggle to come up and communicate, you know, my answers, you know i struggle to come up and communicate um you know the the my my answers you know so i
think that the best thing that i hope these questions do is obviously start a discussion and
and the smart people will will get the jobs uh but yeah i i don't automatically uh get a buy
or a pass so what you need to say when when you get somebody asking asking one of your own
questions you have to just say no, you're asking it all wrong.
You're supposed to ask it like this.
Then you get the job.
Yeah, yeah.
And 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 HMO5 boilerplate project,
I think, 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 is that, you know, ago, you wrote a blog post sort of based on you and your friendship with – his name is Wes, right?
Yeah, Wes Boss.
Yeah, Wes Boss.
So you're trying to prepare him for – 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 Jared and I and what we do here at The Change Law 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 act of 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 so much.
Let's talk about, I guess, the last three years then,
since that's sort of what you said a bit ago and what I just said there.
When we go down to Tableau content, you've got general questions,
HTML questions, CSS questions, JavaScript questions,
and networking and coding, and then some fun questions to kind of round that off.
But 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 SAS, and we've got LESS.
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 front-ender changed over this last three years for you and I guess the community powering this project?
I think definitely the community, keyword I've probably said a couple of times already, is matured.
Yeah, the community definitely matured and the frameworks did.
And they're all we're talking about sort of 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 that we've seen sort of definitely a lot of change.
Pre-processors 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 LESS, you were like-
Hey, SAS was there too. SAS is like seven years old.
No way.
Don't mess with Stack and the SAS.
SAS goes back, man.
SAS was invented by Henton Catlin about seven years ago now.
Probably seven and a half years ago.
It was not mainstream.
Right.
I wasn't using it, so it wasn't mainstream.
It wasn't – yeah, no.
It became more in light, I would probably say, 2009 is probably when it got more and more prolific.
But yeah, SaaS has been around for – that's what people don't get either is that SaaS and probably for so long. That's why it's so trustworthy because the people that have been behind it
have 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.
You've got all these different things that have come along with it.
And no knock against Les, but Sass has been there for a very very long time almost seven more than seven years
yeah now that you guys say that i definitely remember when hamill and sass first came out
and it was yeah i do remember it was a long time ago and uh i guess i my brain is being fried by all the framework sort of where and all the new preprocessors.
I think it's safe to say that in 2012, unless my timing is totally off,
I think in 2012 we could say that front-enders 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 you're going to want.
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.
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.
And now, obviously, we've got a ton, a huge variety of libraries and tools now.
But again, those kinds of things I try not to,
and we try not to talk about in this project.
We talk about the concepts they bring up, right?
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. And 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 is testing your code and writing modular code.
I think we can do a better job at applying sort of 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 front-enders has increased over time?
Oh, yeah, for sure.
Was that too easy?
Too easy for a question?
I had to struggle with that one because I knew it was the answer.
Is it ever going to 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 I.O. have got to a point
where people trust them for production.
So I think that there's a lot of...
There might be people branching out and getting
more specific in their roles in what we would have considered front-end development realm or lives.
I think that you see designers, the term designer in our industry has sort of changed too. So that
designers are now expected to code. So they might knowml and css and they may be able to design
right in the browser right build experiences around the browser so um i don't know if if the
the the term front-end developer i don't know if there were ever going to be asked less of i think
there's always going to be more that we're expected to know um and it's very hard because you straddle
the line of
you want to make a performant website. So how, you know, you need to understand,
you know, 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, 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. And I don't think that there's any less or
will be asked any less in the future. 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 front-ender 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 put it in 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 SAS or Haml,
to cross 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 Jared 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 ask you a couple questions?
Sure.
You're on the hot seat.
You're on the hot seat. You can't say no.
Jared, take the first one. I got one too.
You want me to go first?
I'm going to start off easy because Adam's the mean one.
I'm going to start in the categories. I'm'm gonna start in the, you got categories.
I'm gonna start in the fun questions.
So here you go.
Um, what's a cool project that you've recently worked on?
Um, so I recently worked together with a digital agency.
Um, I can't, I don't know how much I can say about it, but we launched a project for the
Grammys for, uh, a very well-known car company.
And we essentially did facial recognition using the CLM tracker.
CLM, if you guys have heard of that, it helps you detect someone's face either through 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.
So your face, you basically take almost like a selfie or you can use your webcam
and it generates a unique song for you.
And that was probably a pretty cool project that I just finished up.
That does sound cool.
Is the CLM tracker, is that an API or a library?
So 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, you know, any kind of like input that you would get from either, you know, like get user media, get like somebody's webcam and can find the data points of a user's face.
So you can find like their nose, their eyes, and it will like sort of track where that is.
So that was pretty cool. was probably cool project we recently linked up in weekly chair that did this
i think it was actually on the 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 detecting the
Anchorman faces. I was like, oh, I've got to link that up.
But yeah,
Adam found the JavaScript1
CLM tracker, so we'll link that up in the show
notes. Interesting. Sounds like
a fun project.
Yeah, it was a lot of fun to work on.
Worked with a lot of really smart people
that did a lot of the WebGL
stuff, the animations, and also worked with another lot of really smart people that did a lot of the WebGL stuff,
the animations,
and 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.
It is time to put the programming books away. Put them away. Cool. HTML, CSS, and many more. CodeSchool knows that learning to code can be a daunting task.
They combine experienced instructors with proven learning techniques to make learning to code educational as well as memorable,
giving you the confidence you need to continue past the hurdles.
They're always launching new courses on new technologies and offering deep dives on tried and true languages.
So if you don't see them you need, suggest a course and they'll build it if there's enough demand.
CodeSchool also knows that languages are a moving target.
They're always updating content to give you the latest and greatest learning resources.
You can even try before you buy.
Roughly one out of every five courses on CodeSchool is free. This includes introductory classes for Git, Ruby, and jQuery,
which allow free members to play full courses with coding challenges included. You can also pay
as you go. One monthly fee gives you full access to every CodeSchool course. And if you ever need
a breather, take a break. You can suspend your account at any time. Don't worry, your account history, points, and badges will all be there when you're ready to pick things up again.
Get started on sharpening your skills today at Codeschool.com.
Once again, that's Codeschool.com.
Well, this one here, Jared said I'm mean.
I don't know if I'm being mean here when I ask this one.
I think this is a good one for anybody who likes – who officially likes CSS.
And if you put your hand up, you're somewhat crazy and adventurous.
I met a guy once.
Not everybody loves CSS, so it sort of gets this bad rap.
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 want to ask is around the c in css and what it stands for which is
cascading and the question is 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?
So talk 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.
I am not pulling your leg.
It's in your doc.
We're going through your rejected pull requests.
It's near the bottom of the readme. Or near the bottom of the CSS in README.
I told you he's mean, man.
That'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.
So that's sort of the cascading uh styles there but um i
the to be honest i try not to answer these questions uh not not to be on the hot seat
but because uh i was actually asked by another person recently to to do a talk and to basically
go in there and answer a bunch of these questions. Um, I'm okay with the fun ones cause
they are, as they say, fun, but, uh, my, 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, you know, they don't get
a job for any reason because they used, you know, whatever we gave them. So I try not to, but I
would answer that casketing, uh, styles question with, you know, talk about
inheritance of children and their parents and the relationship there.
And then also talk about, you can use this by creating, you know, little modular pieces
of CSS that can be reused using classes.
And, you know, you could do something, talk about, let's
say, font families that can be applied. Or, you know, if you had little buttons that had, you
know, 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.
And I would go into probably examples of how I would implement or showcase cascading in
CSS.
But yeah, I try not to answer these.
Well, this is, yeah, I like 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 Evelyn started this podcast with me.
And it was funny because anytime we had a style sheet-related topic on the show, and Wynn, if you're listening to this or anybody knows Wynn, bring it up to him because I loved it because he can never say specificity.
And he would always say, Adam, can you say that for me?
I forget how it kind of evolved, but he can never say specificity.
I think I can.
My English is okay.
Specificity.
Almost perfect.
Almost perfect.
Specificity.
All right. Let's hop back to the fun questions. There go quick grill save him please the grill and uh we gotta turn some of these questions on
on adam here in a second uh this one's great because actually it's kind of hard what's your
favorite feature of internet explorer um my favorite feature that's still there would be
the way that they rendered the box model or the original way that they i guess this this this
question's a little bit up for interpretation because it doesn't say a specific version of
internet explorer um right i would say actually there's a couple i have a bunch of features i
really like uh 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.
And if 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.
Wasn't there a double margin bug as part of the box model?
Yeah, that was...
Like IE6.
Probably.
And now we have a box sizing border box to get that functionality back.
I think so. Box sizing. box sizing yeah anyway that's a
great one the one i thought of if you're going historically i have no idea what my current
favorite feature is um it would be xml hdpo request right so they were i believe that was
they were the first ones i added that one yeah i mean that revolutionized the web aj so you got the second
best answer yeah just kidding uh and you said i was the mean one yeah you're the mean one hard
yeah well you know bad cop bad cop i guess uh what do you got what do you got time for adam
one more we got uh three minutes uh you can ask one more
ask a fun one ask whatever you want you know what questions are really fun
you know what questions are really fun is our closing questions maybe we should just go into
those hang on let's let's pause there for a second uh darcy which one is your favorite
question in this whole document oh my goodness there's so many i used to 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,
like 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,
I would say the split reverse join.
So in the coding questions, there's like, I'm a lasagna hog.
And it was actually misspelled at one point, but they wanted to make it,
I think somebody wanted to make it like
race car so it was like the same thing forwards and backwards but i really like this uh because i
i would actually probably follow this up with like how would you reverse a string not actually show
them how to do it but uh you know how would you reverse a reverse a string and see if they would know that there's a method, a native method to reverse a string or see if they were concerned about, you know, the order in which the characters came in.
Things like that, I think, are really valuable.
Yeah, show some psyche, some nature behind their thoughts.
Yeah, yeah, for sure.
Cool.
Awesome.
Well, now let's close with a few questions that we like to ask. The first one is, who is your programming hero? to talk to in person really got giddy. And we had lunch at the Google offices years ago
when we first met in person.
And 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 taken a little bit of a break,
but he's always contributing to the open source community.
And I think, yeah, he's definitely my development hero, I guess.
Yeah, good call.
I saw Paul give a talk at, I think it was like jQueryCon back in probably 2012, 2011.
He's a very entertaining and smart speaker. Kind of an inspiring guy.
Makes you want to 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.
Nice.
Talk about, obviously, HTML5, Bulletplate, Modernizer, and a bit more.
Awesome.
Next question.
So a call to arms to the open source community, whether it has to do with front-end 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? 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, you know, examples of work or something
really cool that's going to inspire somebody. I think that's the best way to educate someone,
because if you're giving a talk or you've been writing a blog post, you only have so much time,
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 can inspire them or get them excited in some
way, they're going to go off and they're going to go do that research and learn more. So if you can
be sort of the spark, I think, for someone else, whether it's in, you know, 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, and a lot of other people do, I think you're doing a great
service to the, to the community. And I think that that's something I try to do.
And I hope that other people try to do is inspire, inspire our peers.
So good answer. Love that. Inspire. Um, next one.
So if you weren't doing what you're doing, um, which is, you know,
being a front end 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'd probably be, uh, I'm not sure if it's an easy way hard question i'd probably be uh i'm not sure if
it's an easy way out i'd probably be like a designer is that is that fair is that okay to say
if that's what you want to be doing your answer is your answer okay well i'd be a designer or i'd
be a marketer uh i thought i might want to be an accountant or a math teacher at some point but uh
there's no way i was going to look at ledgers all
day so yeah i think i would probably be a designer i actually went to a performing arts high school
and majored in graphic design so i i really like design so um yeah i would probably be a designer
awesome all right last question i don't think we pulled this one out for a while okay um and that
is what's something that's 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?
It's something that I've seen recently or something that...
Yeah, something you've seen or that's on your radar.
Maybe you use 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 or whatever,
what would you hack on? I might also
answer that. 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.
A lot of that React Native sounded really interesting. I'd love to see 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.
So I think that's, it's a sexy,
sexy thing and a sexy topic right now. So.
We, uh, we don't have them lined up yet,
but that's definitely on our hit list of shows to have in the near future.
So I'm going to reach back out to our Facebook contacts and get some people
from the React team on, on the show to talk about React. So.
Yeah, it's, it's a great project. So.
And only because there's React do I somehow subliminally think it's React, but it's not.
It's React with a T at the end.
So my enunciation on the final T there is important when I mention that project.
So yeah, that's exciting too. We've, we, we almost can't help, but link it up in our weekly email, which is called change law weekly, because there's so much, it's got so much buzz around one of the more most recent shows, which was 141, we talked about how I've come on to be the first full-time employee of this year 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 a year.
It's the easiest way you can support us directly it's it's like our patreon or like our get up which isn't around anymore i think
it's now i forget what it's called now the the new name gratify gratify gratify uh it's like our
version of that so if you want to directly support the changelog being around being here this is the
way you can do it go to the changelog.com membership i'm going to
rattle off uh probably i think around 20 names i think um but every show we're gonna start closing
with the most recent this week's new members so uh hopefully this doesn't get boring uh in this
case it's a lot because i think we just have an influx but you got douglas gray sean dunn pablo
navarez bill israel garrett diamond dave david I can't say your last name, which is Wischensen.
I'm going to try and say that.
I have a bad last name too, so don't hate me.
Matthew Brixton, Jonathan Banta, Austin Ginder or Jinder.
I'm not sure which one that might be.
Ben Gillen, good friend of mine actually here locally.
Actually a good buddy of mine here close by.
You got Matthew McCormick, somebody who just put one name in, which is Ebersbach.
Mike Parham, a friend and past guest on the show.
So Mike, thanks for your support.
Kyle Mahan, Camilo Payan, and Mr. P. Gomez.
So thank you all for directly supporting this show supporting the
changelog your support means the world to me and Jared and everybody else who's a part of this
and I'm sure Darcy too right Darcy oh yeah definitely of course right I'm gonna go damn
right now yeah it's it's uh 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 the behind-the-scenes of the change law,
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'd like to.
Or you can just hang out and be idle and just sort of lurk if you'd like to.
We don't care.
Whatever you want like to. Or you can just hang out and be idle and just sort of lurk if you'd like to. We don't care. Whatever you want to do.
We've got some awesome sponsors for this show too.
CodeChip, TopTal, and
CodeSchool are our sponsors for this show.
So 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 Jared and I play 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?
Easiest way to get a hold of me
or to check what I'm doing
or check out what I'm doing
is probably hit up my GitHub page,
github.com slash Darcy Clark,
or follow me on Twitter, twitter.com slash Darcy, which is my first name.
Oh, 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, to pull some strings.
Ah, some strings, nice.
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 a
near show
in the future
to talk about
that but
sorry to
throw that
telly in there
but let's
say goodbye
everybody
cheers
see ya Cheers. See ya. you