D3js Interview Questions

1,115 views
Skip to first unread message

Glenn Maxwell

unread,
Apr 25, 2016, 1:20:01 AM4/25/16
to d3-js
All,

I am looking to staff people in my team. I am looking for interview questions that can be asked to evaluate the candidate on phone and during f2f discussion.
Please also suggest a test exercise that can be completed in an hours or so.

Thanks,
Glenn

Tito

unread,
Apr 25, 2016, 2:15:21 AM4/25/16
to d3-js
what does D3 stand for
what have you used it for, real life projects
why not use vanilla html css svg
what do you not like about D3
What would you improve on D3
what do you like most about D3
what specific problem were you able to solve with D3

come to mind

Glenn Maxwell

unread,
Apr 25, 2016, 2:28:05 AM4/25/16
to d3-js
Tito,

May I ask you - why not use vanilla html css svg? :)

Thanks,
Glenn

Tito

unread,
Apr 25, 2016, 2:40:36 AM4/25/16
to d3-js
haha I am just a rookie. I would say why not? but why should I when I have d3. but each scenario is diff. for a person that is not super strong on css and html d3 might be best road. just my opinion

also I would ask
what are the diff sources of d3 data
how do u access data from database
how to use ajax to fetch data from an api

etc. just issues I ran into when learning d3 and still learning

Luca Matteis

unread,
Apr 25, 2016, 5:19:24 AM4/25/16
to d3-js
What are your strengths and weaknesses? ;)

Japhy Bartlett

unread,
Apr 25, 2016, 1:30:55 PM4/25/16
to d3...@googlegroups.com
For the phone interview, I'd ask the difference between a 'domain' and a 'range'; it will be very easy for someone who understands the fundamentals, but will probably trip up people who are bluffing a little.

For a coding challenge - give them a data set and have them produce a chart.  Leave it open, to see if they choose a graphing method that fits the data well, or have them make a stacked bar chart, which is a notch above the hello world examples as it involves grouping the data.

- Japhy

--
You received this message because you are subscribed to the Google Groups "d3-js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to d3-js+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Tito

unread,
Apr 25, 2016, 1:49:28 PM4/25/16
to d3-js
dont ask them question you know diddley squat about. :) 
interview is a two way street. you do not want to lose a well qualified person by asking whack questions

Ibrahim Tanyalcin

unread,
Apr 25, 2016, 2:05:18 PM4/25/16
to d3...@googlegroups.com
Dear,

Asking technical question about a specific library would not be an efficient indicator of someone's capabilities. Maybe he/she wrote his/her own functions to transform/map values rather than using built in features. Some people perform bad under stress but ok otherwise, some others tend to do well in both. I think the best indicator is to look at somebody's portfolio. Take a look at the projects/visualizations they have done. How much of them are different than the main stream stuff? That would be a good indication, because it means they can pave their own way, come with their own custom solutions etc. I would definitely go for people who know less but contemplate more.

Japhy Bartlett

unread,
Apr 25, 2016, 2:26:44 PM4/25/16
to d3...@googlegroups.com

If a well qualified candidate was so offended about a 30 second screening question over the phone, what does that say about their ego?  Is that person going to work well on a team?

If a candidate has implemented their own set of 'helpers', imo, that actually says quite a lot about where they are as a developer.  Will they be able to learn an existing codebase, or will they immediately try to rewrite their own version of whatever they work with?

Anyhoo, ymmv

Ibrahim Tanyalcin

unread,
Apr 25, 2016, 2:40:49 PM4/25/16
to d3...@googlegroups.com
I quote what I said:
"Asking technical question about a specific library would not be an efficient indicator of someone's capabilities."

This does not say anything about she/he being offended or he/she having a ego. Do not try to read between the lines. You can ask if you want, but I just stated I think it wouldn't be efficient. I guess you want it understand it that way, sure you can, why not.. Many things can be done with existing tools, but many things at the same time can't. Some instances require you to reinvent the wheel to be able to come up with a better wheel. Sometimes you fail in doing so but at the least learn all the small tiny details about how it works. This approach of course can't be used if you have tight deadlines. It's a trade off. Depends on what you need the candidate to work on. 

Japhy Bartlett

unread,
Apr 25, 2016, 2:57:51 PM4/25/16
to d3...@googlegroups.com
I was replying to Tito, also.  Sorry for the confusion.


Ibrahim Tanyalcin

unread,
Apr 25, 2016, 3:04:41 PM4/25/16
to d3...@googlegroups.com
Ah ok, np at all:) Have a good day,

Tito

unread,
Apr 25, 2016, 3:56:11 PM4/25/16
to d3-js
I agree.

Curran

unread,
Apr 26, 2016, 3:53:18 AM4/26/16
to d3-js
Hello Glenn,

Having interviewed folks for D3 positions, I know it can be tricky. This is especially true if the interviewer does not know D3. Here's a set of questions I think might help. I've bolded the key terms to look for in the response of the candidate in the case that the interviewer does not actually know the answers. I can totally sympathize with this case, which I'm sure does happen a lot. That's probably why you're looking to hire someone with D3 expertise in the first place, to fill a gap in the team.

As a quick phone screening question to filter out folks who know nothing about graphics, you could ask "In which corner of the screen is pixel coordinate (0,0)?"

Asking for an implementation sketch of a scatter plot would be a good D3-specific question. I think everyone forgets the nitty gritty details and needs to look them up from examples, but if a candidate can sketch the implementation out conceptually - e.g. I'd use a linear scale for X and a linear scale for Y, use the Margin Convention to put the points inside an SVG <g> element with translation, parse CSV strings to numbers, and use D3 axes - then they're on the right track. If they get the range right for the Y scale, they're pretty good. Here's a reference Scatter Plot.

You could then ask for an implementation sketch for a bar chart. For this, the candidate should immediately say "ordinal scale" and "range bands". If they're really good then they will be able to get the "height" and "y" attribute functions right - these are tricky for vertical bar charts because the Y pixel coordinate starts at the top of the screen not the bottom. Here's a reference Bar Chart.

Next you could do the same for a line chart. The candidate should know that the line itself will be an SVG Path element, and the "d" attribute needs to be set using d3.svg.line. Here's a reference Line Chart.

Coding a stacked or grouped bar chart is actually very difficult and subtle, I don't think hardly anyone could do that on a whiteboard. This would be a good "back pocket" question though if they nail all the others. The candidate should at least know that using d3.layout.stack is required. If they mention d3.nest and nested selections, then they really know what they are talking about. Here's a reference Stacked Bar Chart and Grouped Bar Chart.

Asking a high-level question about interactions might also be good. For example, "What interactions could you add to a scatter plot?". One answer could be tool tips (more information on hover). Brushing should also come up, the ability to drag to select a region in the visualization. Perhaps panning and zooming might also come up. Once you have interactions you can have linked views, multiple visualizations that interact with one another, typically via filtering. In this territory, it's a good sign if the candidate mentions Crossfilter and the Reusable Charts Pattern.

Some other interview questions that are not specifically D3 but are some of my favorites are:
  • Write a function that parses a CSV string into an array of objects where keys are column names and values are strings.
    • (level 2) Handle quotes in strings
    • (level 3) Parse numeric fields into numbers
  • Write a function that computes a histogram.
    • (edge case) What happens when the maximum value is encountered?
Best regards,
Curran

P.S. For those looking to learn, I've put together a video series D3 101 that covers all of this stuff.

Glenn Maxwell

unread,
Apr 26, 2016, 4:08:12 AM4/26/16
to d3-js
Great illustration. Thanks for your time in putting this together. 

Curran

unread,
Apr 26, 2016, 5:43:47 AM4/26/16
to d3-js
No problem. I thought it would just be a quick answer but I couldn't stop writing :)


Thanks for asking the question!

devquora

unread,
Jan 14, 2018, 11:58:39 AM1/14/18
to d3-js
Here is a link to some basic d3.js interview questions and their answers. May this helps you to recruit the right person.


On Monday, April 25, 2016 at 10:50:01 AM UTC+5:30, Glenn Maxwell wrote:

Ram Tobolski

unread,
Jan 16, 2018, 11:23:29 AM1/16/18
to d3-js
Nice

hpm...@gmail.com

unread,
Jan 19, 2018, 11:38:37 AM1/19/18
to d3-js
Don't ask questions about D3JS. Simply sit them down in front of a computer, give them a WebServer and a Data File, and let them do the magic :)

I have no idea about half of these "fundamentals" other mentioned. Still I'm capable of creating graphs that are stable and used by our company day-by-day.

In a phone interview maybe ask them what kind of software they used previously for this goal.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages