A year ago, I was searching for a new job and doing an interview per week. I wasn't in a hurry to change employment, therefore I wanted to find that perfect company where I could be challenged and develop new skills while being paid with great benefits. Even in a large IT market like Montreal, this is not an easy combination.
One company got interested in my CV and invited me for a Senior Web Developer position. They were in a great location! Downtown Montreal, with the subway (we call it metro here) exit right in their building. The preliminary interview was with the human resources and we covered the culture, the product, the org. structure, the benefits, and the salary. There was a mutual and professional spark. I was invited to a first interview with the team.
I met two senior developers and we had a pleasant conversation for an hour. We talked about my past experiences, the company, and their products, the technology stack they use, the importance of unit testing, and a question about the design patterns, of course. It was going great! At the end, we shook hands, exchanged pleasantries, and I was on my way home.
I am not new to interviews. I actually enjoy them and have done a lot of in the past years! This helps me to keep my skills sharp, gives me a good idea of where the market is at the moment, what opportunities are out there, and what's being asked by potential employers. Of course, there's an easier way to do all of that... Stack Overflow annual surveys, market statistics and books or tutorials on how to pass an interview. Still, the only way to get good at interviews and most importantly the dreaded salary negotiations is practice, practice, and practice!
On my way home, I was mentally playing back the last an hour and a half, and analyzing what had or hadn't been said, if I had forgotten to mention something or overshared, I had been able to present myself different and how. Overall I felt very confident about the meeting. As soon as I got home, I emailed the HR a thank-you note to be passed to the interviewers, I even included a link to some article about microservice architecture that we had talked about. The next day, I got an invitation to a follow-up and this time with the manager of the department.
Oh, what luck! It turned out the manager is the guy whose position I was presently holding at my current company. I even sat in his old chair (when he was a developer). I had a ton of stories to tell him, and he was happy to share some few inside jokes too. We laughed and nodded to each other. Anything that helps to establish a rapport with the person who's interviewing can be in your favor. As many interview gurus will claim. Although, I decided to keep to myself the ones about the frustration of having to deal with the code base and a disastrous architecture that was left to my team after this guy had left the company. It was not his fault entirely, yet he was the senior developer... but I digress.
So, I was in the second interview. This was going to be technical one, I would write code and three interviewers would watch and we would discuss it. The exercise was to read a file of words on each line and find the ones that are a palindrome, the word can be spelled the same forwards or backward, as in madam or kayak. This needed to be done using Test Driver Development- write a test, make it fail, write code, and make the test pass. Easy and on top of that I just had done a palindrome tutorial a day before and it was still fresh in my mind.
I told them about my accidental over-preparedness and offered to change the exercise to something else. They refused. The coding part was extremely easy. We chatted as I wrote and passed the tests. The easiest coding session I've done. A few follow up questions, hands got shaken and I was going home with a very confident feeling. This was the best interview I've ever done. It went perfectly in my mind. Another thank you note through the HR, and I was waiting for the offer...
Two days later, I received a reply that reads "...unfortunately you havenβt passed the test for our senior solution developer position. You did good but not great and they are looking for a developer with strong coding competencies. Thank you again for your time. " Wow! Really? I was shocked! Did they email the right candidate? I double checked the email, yup! Indeed, it was addressed to me! There's no mistake... I was being rejected. Ouch!
I have been rejected before, and as much as it hurt, the rejections are the greatest lessons, I truly believe that. I would always follow up with a polite and probing question "Why?". Most recruiters are kind to constructively criticize others would just ignore and not reply. However, this time I made an exception. I did not even acknowledge the receipt of the email with a "thanks". This was BS! Good but not Great? They picked a palindrome problem! That is something they teach in programming 101! I fumed for a few days. It wasn't the rejections that upset me, it was the "good but not great" comment. How can you grow from that? Olympians are good but not great (those that don't get gold). They I understand, but programmers?
A year later, I think about this company and laugh at myself. Whatever the reason was for their rejection is not important! Perhaps my coding was actually bad or maybe they found a better candidate. My reaction was wrong and silly. There're few lessons I want to draw from this experience.
1) Don't let emotions and pride get in the way.
2) You're not hired until you sign the offer. No matter how great the interview was. I've seen people resign with fanfare before actually getting the next job offer on paper!
3) Your perception of a person/situation could be wrong and you are missing something. If you realize it, make the inquiry to understand why you were wrong about your initial impression. I should have followed up with my standard "why?" especially in this case.
4) Failed interviews are opportunities to learn something new about yourself. They've defined my professional career and helped me to find the companies that I truly enjoyed working for.
5) It is possible to make no mistake and still fail. In this situation, you pick yourself up and you keep going and trying your luck elsewhere. It is OK!
Happy Job Hunting!
Top comments (5)
Good article, but not great. Jklolhaha. Great article. Using my smartphone, I discreetly recorded my job interview. Listening to it after was quite an experience. I missed and misunderstood a lot! I never would have realized it otherwise. I recommend recording yourself in interviews as a learning tool. Thanks again for the article.
Thanks for reading! The problem with recording, it is actually not legal in some countries. Still, you can always ask for permission, but I'm not sure how comfortable the interviewers will be. I wouldn't be comfortable because during an interview confidential topics might be discussed(i.e salary, projects, trade secrets, important deadlines and so on). The best thing is to rehearse an interview with a friend or relative and practice the most common questions that can be thrown at you.
Doesn't TDD stands for Test Driven Development? And was the coding question in C? If so my idea is you forget to test the case \0 and 0\ \0 and this kind of strings
lol, thanks for noticing the mistake. You're correct, it's Development not Design.
The question was in C#, and I don't C# when blogging at 2 AM.
Haha it probably was 5pm in Europe :)