ThoughtWorks | Application Developer | India | May 2022 [Offer]

thoughtworks logo
thoughtworks
application developerindiaOffer
June 2, 20222 reads

Summary

I successfully interviewed for an Application Developer role at ThoughtWorks as a new graduate, completing four intensive rounds including an online assessment, a code pairing session, a technical interview, and a social change & leadership round, ultimately receiving an offer.

Full Experience

My ThoughtWorks Interview Journey: Application Developer Offer

As a new grad from the B.Tech CSE 2022 batch, I reached out to ThoughtWorks HR in late April 2022. After submitting my details and resume via a Google form, I received an invitation for a 90-minute HackerRank online assessment.

Round 1: Online Assessment

This round consisted of 16 questions over 90 minutes. I faced three coding questions (two related to arrays and one to stacks) and 13 MCQs covering data structures (sorting, searching, trees, stacks), computer fundamentals, and design principles.

Within a few days, I was notified of my selection for Round 2, the Code Pairing Round, and was asked to choose a 90-minute slot.

Round 2: Code Pairing Round

This was a design-oriented round that lasted about two hours. I was paired with two ThoughtWorkers and given a problem statement 15-20 minutes beforehand. My task was to code a solution using OOP concepts and design techniques while sharing my screen. They were keen on my thought process, clean code, and modular design. I first explained my approach, then coded it, receiving feedback on improving code modularity. Towards the end, they asked a few questions on OOPS concepts, and I had the chance to ask them questions.

The problem involved designing a system for an OTT company to offer customized streaming plans.

The problem wasn't overly difficult, but the focus was heavily on demonstrating strong SOLID principles and OOP design. I effectively used classes and design patterns in my solution.

The next day, HR called to provide detailed feedback and inform me I had cleared this round. They asked about my availability for the Technical Interview, which I scheduled for the following day.

Round 3: Technical Interview Round

This 1.5-hour round involved two interviewers. They began by outlining the interview structure: introduction, project discussion, programming language and OOPS questions, and finally, a coding question.

  • I introduced myself, then we delved into my projects: challenges I faced, what I was most proud of, and questions about the tech stack and my choices.
  • I stated my comfort with Java.
  • We discussed OOPS concepts extensively: encapsulation, abstraction (with examples and real-life scenarios), other OOPS pillars, interfaces (with examples and real-life scenarios).
  • Specific questions included: Is multiple inheritance supported in Java? Can it be implemented another way?
  • We had a long discussion on exception handling, covering checked vs. unchecked exceptions. I was given a code snippet and asked to determine its output.
  • Other Java-specific questions included: Collections in Java? Differences between ArrayList and LinkedList? Default methods in Java? String pool?

Then came the coding questions:

  1. I was asked to sort an array containing only 0s and 1s. I explained approaches from brute force to optimized, wrote the code, and performed a dry run.
  2. The second question was about finding a 2-number product, similar to the LeetCode Two Sum problem. Again, I discussed various approaches, implemented the code, and did a dry run.

At the end, I had the opportunity to ask them questions.

Later that same day, HR called again with positive feedback, confirming I had cleared the Technical Interview. They scheduled the Social Change & Leadership Interview for the next day, explaining its purpose (cultural fit) and sharing preparation resources.

Round 4: Social Change & Leadership Interview

This 1.5-hour round was taken by a product manager (12+ years at ThoughtWorks) and a developer. After my introduction, we discussed my projects, conflict resolution within a team, and various hypothetical scenarios. A key takeaway was ThoughtWorks' emphasis on quality: if faced with a critical project issue versus a design requirement, I should prioritize fixing the critical issue, even if the team leans towards design.

The social change aspect involved discussions on diversity, women in tech, and the LGBTQ+ community, with scenarios testing my response in such situations.

I also had the chance to ask questions at the end.

The next day, HR called with final feedback. They were pleased with my performance, and I was thrilled to receive an offer letter! It was an amazing experience.

Interview Questions (4)

Q1
Customized OTT Plans Design
System DesignMedium

As a smart OTT company, we want to offer customized OTT plans for our customers so that the customers should be able to choose to build their plan by choosing different streaming platforms and how many viewing hours they want for each of them. We do support the following streaming services and below is their tariff plan.

Streaming Service | Price per unit | Unit in hours

  • Netflix | Rs. 10 | 10 hrs
  • Amazon Prime | Rs. 2 | 5 hrs
  • Hotstar | Rs. 1 | 5 hrs

Viewing hours can be subscribed based on the multiples of the above mentioned units only. Based on the user’s choice, the system should show the total amount which should be paid by the customer.

Sample Input 1
Viewing hours for Netflix: 20
Viewing hours for Amazon Prime: 10
Viewing hours for Hotstar: 50

Sample Output
Total amount should be paid: Rs.34 (10 * 2 + 2 * 2 + 1 * 10)

Sample Input 2
Viewing hours for Netflix: 10
Viewing hours for Amazon Prime: 0
Viewing hours for Hotstar: 100

Sample Output
Total amount should be paid: Rs.30 (10 * 1 + 2 * 0 + 1 * 20)

Sample Input 3
Viewing hours for Netflix: 10
Viewing hours for Amazon Prime: 2

Sample Output
Amazon Prime allows viewing hours in multiples of 5 only

Q2
Java Exception Handling Return Value
Other

Given the following Java code snippet, what will the ans() method return?

 public static int ans(){
        try
        {
            System.out.println("Inside try block");
            return 1;
        }
    catch(Exception ex)
    {
        System.out.println("Exception caught in catch block");
        return 2;
    }
     
    finally
    {
        System.out.println("finally block executed");
        return 3;
    }
    
}</code></pre>
Q3
Sort Binary Array
Data Structures & AlgorithmsEasy

Given an array containing only 0s and 1s, sort the array in-place.

Q4
Two Number Product
Data Structures & AlgorithmsMedium

Given an array of integers and a target product K, find two numbers in the array whose product is equal to K. This question is analogous to the LeetCode Two Sum problem.

Preparation Tips

Preparation Strategy and Resources

My general preparation involved practicing on LeetCode and going through previous interview experiences on GeeksforGeeks and other platforms. I am sharing my experience to help others who are preparing for interviews.

For the Code Pairing Round specifically, I found the following resources helpful for understanding Object-Oriented Analysis and Design (OOAD) and preparing for ThoughtWorks' unique code pairing format:

The HR also shared specific resources for preparing for the Social Change & Leadership Interview, which helped me understand the company's values and expectations for cultural fit.

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!