I went through the HR screening process and was later scheduled for a technical interview with one of their senior software engineers. The interview covered generic questions about design patterns, such as "what is polymorphism," and then moved to a collaborative text editor. There, I was asked to implement a binary search method.
The job description listed PHP as the primary language and made no mention of needing to [re-]implement something like this in any language. Consequently, I ended the interview. Presenting this same question as a pre-interview exercise would have been more appropriate.
I would never accept a position that requires solving difficult problems demanding concentration with someone observing closely. For the same reason, I would never accept a position that screens employees using this method.
There is an unlimited list of programming concepts that one must selectively navigate based on the requirements of the specific role or craft. Asking questions that do not apply to the role during an interview is poor form.
Test the knowledge and experience relative to the role instead of trying to test what a candidate doesn't know. You'll pass up on plenty of great programmers by doing so.
I've worked with many people who were better at reading technical articles and explaining design patterns than at knowing when and when not to apply them, much less at getting work done within a reasonable timeframe.
Implement a binary search method.
I fully expected the next question to be: "Describe a B-tree structure and its variants." :)
The following metrics were computed from 2 interview experiences for the SendGrid Software Engineer role in Denver, Colorado.
SendGrid's interview process for their Software Engineer roles in Denver, Colorado is extremely selective, failing the vast majority of engineers.
Candidates reported having very negative feelings for SendGrid's Software Engineer interview process in Denver, Colorado.