Personal Brand — Week Four
Me as an interviewer
Preparing my coding interview
Hello everyone and welcome again, for this week the roles changed, in the second week my partner Eréndira interviewed me, she asked questions related to computer science, my primary stack (JavaScript), agile methodologies and other subjects. For this occasion, it was my turn to take the role as an interviewer but the dynamic was different, instead of asking question, the main focus was on a coding problem, so these days I have been working on how to evaluate the candidate and preparing a programming issue.
Besides that, I continue practicing doing some coding challenges, I read about how to manage stress and books related to interviews (you can read my blog of it here).
This phase is almost over and I feel very excited to see what is next. With nothing more to say, I hope you enjoy the reading.
Executing the interview
Before starting the interview I needed to do a grading rubric to evaluate the candidate, I took in considerations four categories, all were divided in subcategories for a more specific result, here I will write all the categories I used for evaluating:
- Understanding the Prompt. With this I wanted to qualify how good is the interviewee understanding a new problem.
- Designing a Solution. Before coding, I ask the interviewee to plan her solution, she told me her ideas and how she could solve the problem, this was helpful to me to evaluate this category.
- Implementing a Solution. And here we jump to coding, here I focused more on how good was the code of the interviewee in terms of good practices, if it was easy to read (use of tabulations and a consistent format) and if the solutions passed all the tests cases, besides other things.
- Communication. This was evaluated the entire interview, here I checked how the interviewee communicated her ideas, her attitude and if she maintained a positive tone.
For the problem I prepared a small one, my idea was to see if the interviewee could find the two solutions: the simple solution with the worst time complexity case, and the efficient solution with a better time complexity case, the problem was the following:
Given an unsorted array A of size N that contains only non-negative integers, find a continuous sub-array which adds to a given number S.
The solutions where:
- Simple Approach: Consider all subarrays one by one and check the sum of every subarray. Run two loops: the outer loop picks a starting point I and the inner loop tries all subarrays starting from i, time complexity is O(n²).
- Efficient Approach: If a subarray has sum greater than the given sum then there is no possibility that adding elements to the current subarray the sum will be x (given sum). Start with an empty subarray, add elements to the subarray until the sum is less than x. If the sum is greater than x, remove elements from the start of the current subarray, time complexity is O(n).
My partner did a good job in the interview, I worked in her feedback after the meeting and I sent it to her.
In general, I could say that both learned from this experience, it was interesting be in the interviewer side, their work is definitely harder than it sounds, you need to be prepared and have an efficient way to evaluate the candidates and it can be really difficult to see the true potential of a candidate in just one hour.
In addition to this, I keep working on programming challenges, I did a research for preparing the one I used for the interview, solving many issues and watching coding interview simulations was really helpful to determinate a good one to use, this week I worked on search algorithms problems, dynamic programming, stacks and queues. I still need to solve other problems, but I am happy of my progression.
This is all for the moment, another week with a new experience and many learnings. Thanks for learning and see you next time!