I was included in the CodeNation discussion list with CodeAgon – their editing competition. My position was among the top 200 and I did not really expect to be selected.
There were 4 rounds of interviews. After all these cycles, I was more confident than ever that I would not qualify for the next one. So, I never bothered to prepare for any interviews, but I was lucky enough to break every round:
TL; DR: 2 rounds were based on problem-solving and discussions on previous projects, the other 2 focused on designing software / systems / libraries. Except for the first cycle, each cycle took about an hour. The interrogators reassured me that I understood the problems and made me think of solutions to the same problem with a few tweaks.
More details about the interview: Commit yourself, this will be one long answer. I hope you will take something useful from it!
Round 0 (Debugging around): Time: 25 minutes
- Shared URL of sharing with me that had a C ++ function that I had to work on. Expected inputs and outputs provided.
The problem was to determine the number of palindromic layers within the wire using a robust system. The given task has some logical and concise errors that I had to correct. After correcting the mistakes, I explained the interviewer’s correction and did not give a good answer, so I was skeptical about how the conversation went.
Round 1(Algorithmic Problem): Time: 60 minutes
This should be one of the best conversations I’ve ever had.
- The interviewee spent 15-20 minutes discussing my internship project and my interests in Computer Science.
- Next, he gave me an algorithmic problem to solve. I had no contact with competitive programs for a long time and I had a little rust. It took me about 8-10 minutes to find a solution. After confirming the solution with the interviewee, I applied it to C ++, making sure I used different appropriate words and handled cases in the corner.
At one point, I was in danger of giving up the problem, thinking that there would be no better solution, but the one who spoke to me forced me to think it over and finally
I have seen a quick solution. I have truly learned the importance of not giving up on this discussion.
Round 2(Cycle Design Problem): Time: 60 minutes
I was going to skip this conversation, as I thought I had gotten enough of the process, and clearing some rounds wasn’t my cup of tea.
However, my father urged me to try.
This has been the most difficult cycle in the process. The interviewer seemed to have a lot of experience and asked several questions that made me ask for my 4 years of Computer Science studies.
- I was asked to design text editor APIs, such as Notepad, with some basic features like adding letters, removing characters, copying text blocks, cutting text blocks, etc. I had to decide which data structures I could use wisely. I also had to write a fake code of works.
My interrogator has been questioning me about the various design decisions I have made. All the decisions disrupted the work of another project in some way, and I was improving my solutions further.
At the end of the interview, I was asked about my average grades in College (about 65% – cartoons that used 85% + points). The person who spoke to me told me, “Simply solving algorithm problems from GeeksforGeeks is not enough. Software Engineering is far more complex than those problems. ”
In my head, I was thinking, “I didn’t prepare for this round!”
I knew it was all over and that I would have to join the company that made the ATMs. I was just happy that I had broken 2 rounds.
A week passed, and one day I received a mail from the registrar that I was eligible to attend the next round. I also checked my email to see if it was really meant for me. It was.
The next round would take place in two days.
Round 3(Design Problem): Time: 45-50 minutes
I just wanted to have a good conversation with the interviewer, as I do with my friends – about how we can invent something, point out flaws in my own design sometimes and try to fix it, raise more opportunities, and try to design and think outside the box.
- The first problem in this cycle was the creation of a text-highlighting feature in several text editor languages.
- The next problem was to create a find and replace feature for the text editor.
By this time, I was already thinking that CodeNation created text editors.
Both of the above problems were attractive. All the algorithms associated with the cable I knew were going around in my head and I was trying to balance things out, including the difficulty and deciding on my solution to my interviewer.
My interviewee also discussed whether I would use C’s malloc differently, and how I would change.
After this discussion, I felt a strange sense of satisfaction in participating in the challenging rounds of conversations that made me think and learn and grow.
My experience with CodeNation interaction was really great!