Open In App

CodeChef Software Engineer Internship Interview Experience

Improve
Improve
Like Article
Like
Save
Share
Report

I’m a regular user at LinkedIn and I came across the Software Development Engineer internship’s poster by CodeChef when I was browsing through the feed one day. CodeChef’s interview process is very different unlike most other companies including its parent Directi. Due to COVID-19, all of the rounds were virtual.

Online Coding Round at CodeChef – 3 hours
– 1 st and 2nd question were of beginner level.
– 3rd question (Easy) – You are given an array A1, A2, …, An of size N. A pair (i, j) is good if and only if 1 <= i < j <= N and Ai+Aj is a prime number. You need to find the number of good pairs in this array. (Trick: Using Sieve of Eratosthenes for finding primes)
– 4th question (Medium) – Modified knapsack question (Dynamic Programming)
– 5th question (Hard) – Based on graphs
Out of these, I was able to solve 4 of them and I got into the next round.

Web App Development Round – 10 days of time
– I was given the tech stack which I had to use – PHP (Slim Framework) + MySQL + ReactJS.
– I was given access to the official CodeChef API and the task was to build a contest arena with features like searching of contests, problems in it etc. The interesting thing here was that CodeChef APIs are rate limited. So I had to cache the data at an intermediate server for a specified interval of time and then serve the results to the front-end.
– I was asked to submit the code by pushing into a private GitHub repo. Find the preview of  the web app below

Web App Discussion + Technical Round – 1 hour
– The interview started with how I built the web app and what were the challenges faced.
– Then I was asked some fundamental questions from OS, DBMS & Networks.
– I was also asked to explain about the technologies I had mentioned in my resume like Docker, MongoDB etc. (Pro Tip: Make sure you know to explain each word in your resume).

The most-awaited DSA round – Telephonic Interview – 1 hour
– Given an array of n positive integers with duplicates, how will you convert the array such that all elements are distinct with the minimum number of moves? The catch is, you’re allowed to do only one kind of operation but can be repeated any number of times: For any pair in the array, (Ai, Aj) can be converted to (Ai, Ai + Aj)
– After some time of thinking and discussing with the interviewer, I was able to come up with a solution using hash-maps in quadratic time. Then, I was asked to optimize. After doing a dry run through few examples I observed something (replacing any element with the sum of itself and maximum element in the array), and came up with a solution in linear time. And then I was asked to code the same in my favorite language(C++).
– My suggestion here is to Think Aloud. Your thinking process matters more than the solution itself.

Final round of Interview with the CTO of CodeChef – 30 mins
– This was more of an informal discussion about me, my family background, interests. All I had to do was to stay confident and share my stories.
– He also shared about the evolution of CodeChef and its culture.
– I was immediately informed by the CTO that I was in.

Here ends the one-month long interview process and I’m selected for the SDE Internship at CodeChef 🙂

Preparation Strategies and Tips
– There’s no shortcut to mastery. Practice. DSA is very essential for any computer science engineer since web frameworks may come and go but this subject has existed and will continue to do so as long as data exists. Hence, the high priority is given to it by most product development companies.
– If you’ve long enough time to prepare, you can improve your logical thinking skills by solving problems at Codeforces, CodeChef and also follow the next point.
– But if the time is short, then it’s better to go for practising standard DSA questions on GeeksForGeeks, HackerRank, Leetcode.
– Well even if you’re good at DSA, it isn’t sufficient to pass an interview of this kind unless you’ve some experience with web development. For that I would suggest you to learn some latest web/mobile app technologies and build some side-projects. Also try contributing to open-source projects in GitHub so you’ve a better understanding of how coding looks like in real life.
– Prepare your LinkedIn profile and be an active user. You might find an opportunity anytime just like I did. It also helps you to improve your professional network.


Last Updated : 12 May, 2020
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads