The entire process took almost two months from start to finish, and I only got to the first step of doing an at-home programming challenge. I never talked to anyone over the phone or in-person, everything was over email through a coordinator. Almost all interactions with the coordinator took 24-36 hours to hear a reply, nothing about their process is fast.
Overall, I think this interview process was pretty miserable for interviewees. For the amount of calendar time and actual effort put into the programming challenge, they basically only got 1-bit of information back. They did not care about what approach I used, how I broke down the problems, or what approach I used to testing code. They literally only wanted a perfect bug-free solution and nothing more. I really wish I had known this upfront. I would have put less effort into how I approached the problems and more effort up front into ensuring I had a perfect solution. Every other take home programming challenge I have done has worked the opposite, where they want a solution that works, but care more about your approach and how you think about the problems.
Here is my experience broken down--
Week 0:
I applied online and waited.
Week 4:
I was contacted by a recruiting coordinator and asked many base line questions. This included things like expected start date, expected salary, relocation ability, etc.
I was asked to sign an NDA in order to move the next step of their programming homework assignment.
Week 5:
I was sent the programming assignment and told they would like the test completed and returned within a week, but I can take as much time as I needed within reason. I told them I had to delay a week because I was not in a position to do the test this week.
Week 6:
Working on the problems - there were two questions each very different. The questions were certainly challenging, but when broken down, they were not insurmountable. I do feel like a junior engineer may have struggle a lot more with these two particular questions. Ended up putting in a significant number of hours over a few days to feel comfortable with my answers. This was time writing the solutions themselves, and time put into writing unit tests and debugging the code.
Submitting -They only wanted the headers and source for these problems, they did not want to see my test harness or test case code at all. I had to wait a bit for feedback. From what I can gather, the coordinator hands the code off to an engineer who then hooks the code up to their own test harness, then passes back feedback to the coordinator. This process takes time.
I was informed that one part of my solution did not return correct results, they made no mention of what the nature of the problem was or what types of inputs were causing the issue. Thinking this was part of the test, and that I would need to inquire about more details on the nature of the bug, I asked what information I could give me about the bug (like you might try to do in the actual position), I was simply told that they wanted to see my ability to debug and test my code.
Week 7:
I did find a couple of corner cases that were not covered in my original submission. I went ahead and submitted my corrected version.
Week 8:
I was informed my submitted solutions did not pass and I would not be going forward.