Intro
Recently I accepted an offer as a Software Engineer from JungleeGames India Pvt. Ltd. While interviewing, I also received an offer from Wipro AI (Holmes Team) and interviewed with NVidia. In the following article, I will try my best to share my experience and what according to me is the best way to prepare for software developer interviews.
The Process
While already interviewing with Wipro and NVidia, I was informed about an opening for SE in JungleeGames by a recruiter from InterviewBit. InterviewBit is the platform on which I did most of my technical preparation. I found this particular platform more reliable and an End-To-End solution due to its vast coverage of complete Interview process, proactiveness and availability of material for Interview Preparation.
The process itself was quite standard:
- Initial call from recruiter explaining the opportunity and sharing background about the Employer.
- Call from company HR to set up Interviews and forthcoming calls with higher management.
- Call with the Founder.
- Assignment to develop a leaderboard for a real-time game simulation.
- Interview on JAVA with Technical Architect
- Interview with CTO
- Interview with Engineering Manager
- Multiple Call with Co-Founder for Salary Negotiation.
Aligning Interviews
One overlooked aspect of interviewing is aligning interviews. It is fairly easy to interview for one company only, and just focus all the effort on it. On the other hand, when interviewing with multiple companies, you need some time management skills to make it all work out.
Your final goal is to have multiple offers, both to have more choices and to have more leverage during negotiation. Since those offers have deadlines, you want to align the interviews in such a way that the offers happen more or less at the same time, say in a timeframe of 3-4 weeks. In multistep interviews, this can be tricky.
The best thing you can do is to let know the recruiter you are applying elsewhere. This is even truer if you have other offers. Recruiters can often speed up the process and they will do their best to align their interviews with other companies. You can also use the fact you’re interviewing elsewhere as a way to extend offers deadlines.
Call With the Founder
This call was basically to give an idea about the company. As I was new to the gaming industry, this round gave me a very good idea of how a gaming industry as a whole operates, what challenges industry faces and what opportunity it exposes for me. Rahul (Co-Founder of the company) gave a very good insight of all these aspects which set me up very well at the very beginning.
The company has a very flat hierarchy and Rahul made it clear in the very beginning itself. I felt very confident about the company with the way call went.
Round 1: Assignment
The assignment was shared with me over google doc. Goal of the assignment was,
- To make an achievement board.
- Where in a simulation of players playing a game would run continuously.
- Players while in the simulation will gain/lose attribute values.
- Depending upon threshold set on an attribute value, players will gain achievements
- These achievements will continuously be updated on a to be built dashboard i.e Achievement-Board which was the goal of the assignment.
I was given 7 days to finish and submit the assignment. This was fairly good enough time considering I already had a full-time job to take care.
Round 2: Interview on JAVA with Technical Architect
Once the assignment was submitted and reviewed by the team I was interviewed by Technical architect on JAVA. It was a very intense JAVA interview with core aspects of java being thoroughly examined. Major areas of Java that were discussed during the interview were :
- Java Memory Management
- Multi-Threading
- JRE
- OOPS in JAVA
I will admit that this was one of the toughest JAVA interviews I came across. Luckily I cleared this interview.
Round 3: Interview with CTO and Engineering Manager
After the JAVA round, I had a brief technical discussion with CTO and Engineering Manager on separate calls. Both calls were fairly easy. We discussed concepts of cloud computing, Risk mitigation strategies, Handling large volumes of web traffic.
I am calling this as a discussion instead of an interview because here the problems did not have one finite answer. There were multiple ways to deal with them.
Negotiation
Negotiation gets easier the more leverage you have. The easiest way to gain more leverage is to have multiple offers. Even without that, you can leverage your current job and the fact that good software engineers (i.e. engineers that go through the pipeline) are hard to find. I managed to raise JungleeGames.com’s initial offer once by up to 20% which was a happy surprise for me and then settled for it.
There are a few things to keep in mind. First, research salary ranges to avoid being low-balled. Second, don’t disclose your current salary. Third, it is scary but just negotiate.
I suggest trying raising at least 10% of the initial offer. Focus on showing motivation but at the same time give good reasons why they should bump your salary. Recruiters don’t pay you with their own money but are evaluated on their decisions, so help them justify those decisions with their bosses.