The interview process consisted of:
The screen share coding interview was straightforward and not difficult. Basically, they gave you a JUnit suite and some stub code, and you had to write the method bodies to make the tests pass.
The group coding exercise was difficult for me. It was a multithreaded programming question. While not necessarily difficult in itself, I am most comfortable with Java, and the machine was not really set up as a Java dev box, which took some time. On top of that, I don't really work with low-level Java thread code too much, so I had to spend a lot of time Googling. It was a bit nerve-wracking.
The whiteboard architectural talk went okay. I felt like the interview team had pretty much made up their minds already by that point.
I finished with a 1:1 interview with a manager, which involved more soft skills interview questions. There were lots of things that felt like trick questions. It really pays to think carefully about why the interviewer is asking these questions.
Eventually, I was rejected, with the reason being they wanted a candidate with "more coding experience." I take that to mean they wanted someone who gives the aura of being able to handle multithreaded code with ease. Fair enough; from talking to them, they run a very high-volume operation, and I'm sure threading/parallelism is a big day-to-day concern.
How do you think your co-workers would finish the sentence:
"
The following metrics were computed from 2 interview experiences for the SendGrid Senior Software Engineer role in Denver, Colorado.
SendGrid's interview process for their Senior Software Engineer roles in Denver, Colorado is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for SendGrid's Senior Software Engineer interview process in Denver, Colorado.