Open In App

NavGurukul Interview Experience for Software Engineer Intern

Last Updated : 04 Aug, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Part 1: The Application Process

I applied through Navgurukul’s careers page (https://www.navgurukul.org/). The application process was straightforward, requiring me to fill out a small form. To my delight, I received an instant email confirmation stating that my application would be processed within a few days. Shortly after, a member of the People and Culture team reached out to me via phone call that lasted about 15 mins. He provided an overview of the upcoming steps in the hiring process and informed me that I would soon receive an email containing detailed requirements for an app I had to create. The deadline for the project submission was set for the following week.

Part 2: Developing the Student Tracking App

I enthusiastically embarked on creating the student tracking app, it took me about 8-10 focused hours to complete the project. The entire process took me three days: two days were dedicated to creating the project itself, while an additional day was spent selecting suitable recording software, loading mock data, and demonstrating the app’s functionality in a video. If you’re interested in watching the demonstration video, you can find it here:https://screenrec.com/share/bDVim0gLSn

They had also requested my CodeChef profile, founder of CodeChef is a part of NavGurukul. I had done a lot of competitive programming of Codechef, i also provided some of my other coding profiles to solidify the point XD.

After submitting the project, I received another call from the People and Culture team. We scheduled my first interview, which was set to take place the following day at 5:00 pm.

Part 3: The First Interview

During my first interview, I had the privilege of speaking with a senior engineer who possessed an impressive 25 years of experience working at FANNG companies. He commenced the interview by introducing himself and sharing insights into the company’s vision and goals for the role. Subsequently, he requested an introduction from me, which I provided.

The interview then transitioned into a more technical focus. The interviewer asked me to demonstrate the project once again, this time from a purely technical standpoint. The questions followed a “why” style, delving into the reasoning behind my choices and implementations. I explained my thought process and provided justifications for the decisions I had made.

After the demonstration, the interviewer requested a modification to one of the project’s requirements. I encountered some challenges during this live coding session, but with the interviewer’s assistance, I managed to reach a point where the necessary changes were nearly complete. Only a script was required to finalize the modifications. The interviewer acknowledged the difficulty of live coding and praised my performance.

The interviewer also inquired about my familiarity with scripting languages. I mentioned my proficiency in Python and JavaScript but expressed a preference for coding in C++.

About 20 mins were left, and I was presented with a Low-Level Design (LLD) question: “Create a URL shortener.” Although I had not prepared for this specific question (or any system design question), I initially believed that designing a mechanism to hash URLs into strings would be the main challenge. I shared my knowledge of tries, string algorithms, and mapping optimizations, explaining how I would apply them to tackle the question. However, the interviewer had a different expectation. They asked me to assume the availability of a library or function that performed the URL hashing and requested me to design the class accordingly. Ultimately, I presented the code that precisely fulfilled these requirements. Initially, I had used a different implementation, but after discussing the time complexity, I made further adjustments to achieve an optimal O(1) time complexity. The interviewer expressed satisfaction with my response.

C++




class
private:
        map<string, string>
        set<string>
        int cnt = 0; 
public:
        void mapurl(string x){
                bool ok = false;
                set.insert(x);
                if(cnt<set.size()){
                        cnt++;
                        ok=true;
                }
                if(ok){
                        string shortURL = UrlShorter(x);
                        map[shortURL] = x;
                }
        }
        void geturl(string x){
                if(when shortURL is not found in map){
                        return "xyz";
                }
                else{
                        return map[shortURL];
                }
        }


This is the code I ended the interview with. there was a lot of back and forth also I was under stress so I am not able to recall what I had written earlier. This was not language specific, i was writing in a .txt file, no color coding, no indentation. I added the indentation by myself.

Part 4: The Final Verdict

In the end, I received the final verdict from the interview process, and I was selected for the position. However, due to academic restrictions, I was unable to accept the offer to join the company. Though I was disappointed, I cherished the valuable experience gained from the interview journey.
Hope this helps you. 😉



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads