this post was submitted on 26 Jun 2023
41 points (88.7% liked)

Experienced Devs

3982 readers
1 users here now

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

founded 1 year ago
MODERATORS
 

We're a very small team with little experience in hiring but got approval for a new engineer. Basically HR will look for people through the usual channels and I think we have a reasonably good job description. Unfortunately the coding challenge (a 30h+ take home) is atrociously difficult and doesn't really reflect what we do. On the other hand I think the false positive rate would be low. FWIW it's a Linux application and it might be difficult to only count on experience from the CV.

Any ideas how to build a good challenge from scratch and what time constraints are reasonable?

you are viewing a single comment's thread
view the rest of the comments
[–] nibblebit 5 points 1 year ago* (last edited 1 year ago)

So what we do is, between the first and second interview we have new candidates recreate Twitter over the span of a week. We stress that they can put in as much time into it as you want. By no means does the site need to be functional at all by the second interview. If they spend 30 minutes thinking about it and are able to have a decent conversation, great! 30h assignment is a bit much and a programmer with that kind of time, is a bit of a red flag actually.

The point of the assignment, for me, is not to have some barrier of entry for a candidate. Instead, I use the assignment to:

  1. Have something to talk about
  2. See how good they are at structurally dissecting the problem
  • Do they get bogged down in details
  • In what order do they attack the problem
  1. Are able to effectively communicate some basic concepts around web-development
  • Request sequences
  • Authentication
  • Database Schemas
  1. Asses their personality
  • Do they want to try some new tech
  • Do they polish
  1. How broad are their technical interests
  • Do they do tests, did they host the project, did they do something interesting with UI
  1. How deep does their knowledge go
  • did they use the right tools, do they have experience
  1. Have room for some hypotheticals
  • How would you do it in a team
  • what would you do with a month of time

When you look at it like that, the project doesn't really need to be that complicated. A candidate may be able to fake a challenge, but they can't fake an interview.