thoughtworks logo

Thoughtworks Interviews

5 experiences168 reads16 questions80% success rate
Thought work | Interview Experience| Application developer
thoughtworks logo
Thoughtworks
Application developer1 yearsRejected
December 18, 202450 reads

Summary

I interviewed for an Application Developer role at ThoughtWorks. The process began with an Online Assessment covering core CS MCQs and two coding problems. This was followed by a code pairing round which involved discussions on OOPS, Java concepts, and designing a Ride Sharing Application, alongside a coding question similar to LeetCode's 'Greatest Common Divisor of Strings'. Unfortunately, I was not selected for the subsequent rounds.

Full Experience

I recently applied for an Application Developer role (JAVA) at ThoughtWorks through their portal, having 1 year of experience working in a service-based company. Here's how my interview journey unfolded.

Round 1: Online Assessment (OA)

The initial stage was an Online Assessment which comprised MCQ questions on core CS subjects and programming. Thanks to my GATE preparation, I felt confident and managed to answer all the core CS questions, especially those related to OOPS. I didn't do any specific extra preparation for this part.

The coding section of the OA had two questions:

  • The first was an array-based problem involving two pointers, which I successfully solved, passing all test cases.
  • The second question combined hashing and dynamic programming on strings, and I was able to identify the pattern and solve it as well.

I completed the entire OA within 30-35 minutes, coding everything in Python. To my delight, I was selected for the Code Pairing round!

Round 2: Code Pairing Round

This was my first experience with such a round, and it lasted about 2 hours. I was paired with a ThoughtWorker and tasked with solving a problem using an Object-Oriented Approach.

The round began with:

  • Discussions about my skills, current technologies I work with, my current project, and my role within it.
  • We then delved into core CS subjects like Computer Networks, DBMS, Data Structures & Algorithms, and Operating Systems (my favorite!). I managed to answer all these questions effectively.
  • The main emphasis was on OOPS concepts, where they posed many questions, ranging from basics to advanced topics, requiring real-world examples.
  • Following this, we moved onto Java-specific concepts such as HashMap, Collections, JVM, and Java 8 features. I was able to answer about 90% of these, though I did get a bit stuck on some Java-related questions.

For the actual code-pairing part, I was asked to design a Ride Sharing Application. We discussed the desired features, and I explained my proposed implementation strategy. I identified key entities, classes, attributes, functions, and relationships, presenting a high-level view and an ER diagram. I tried to clarify many aspects during the initial implementation phase.

This was where I made several blunders. I couldn't complete the entire code within the given timeframe. They also inquired about the data structures I used and my reasoning, as well as potential code optimizations, which I was able to answer. I got stuck trying to implement the Controller module; by then, my mind was fatigued, and I couldn't think of better solutions.

During this round, I was also asked a coding question similar to LeetCode's 'Greatest Common Divisor of Strings'.

Ultimately, I did not make it to the next rounds. Despite the outcome, I learned a great deal about clean code, design principles, and SOLID patterns from their feedback. I'll definitely keep trying, and I believe something better will come my way soon!

Interview Questions (2)

Q1
Ride Sharing Application Design
System Design

Design a Ride Sharing Application. Discuss features, identify entities, classes, attributes, functions, relationships, high-level view, and ER diagram. Be prepared to discuss data structures used, why they were chosen, and potential optimizations.

Q2
Greatest Common Divisor of Strings
Data Structures & AlgorithmsEasy

Given two strings str1 and str2, return the largest string x such that x divides both str1 and str2. A string x divides string s if and only if s can be formed by concatenating x with itself one or more times.

Preparation Tips

My preparation for the Online Assessment's core CS section was primarily based on my GATE exam studies, which significantly helped me with the MCQs. For the coding part and subsequent rounds, my general practice in Data Structures and Algorithms (DSA) was beneficial. I specifically recall solving a problem similar to 'Greatest Common Divisor of Strings' from LeetCode.

ThoughtWorks | Graduate application developer | India | Nov 2024 [Offer]
thoughtworks logo
Thoughtworks
Graduate application developerIndiaOffer
December 4, 202439 reads

Summary

I received an offer for a Graduate Application Developer role at ThoughtWorks in India after successfully navigating a comprehensive four-round interview process that included coding assessments, technical discussions, and a leadership & cultural alignment interview.

Full Experience

My journey with ThoughtWorks began when I reached out to an employee on LinkedIn and applied with a referral. The entire process involved four distinct rounds: a HackerRank Test, a Code Pairing Interview, a Technical Interview, and finally, a Leadership & Cultural Alignment Interview.

Round 1: HackerRank Test (75 min)
This round consisted of four coding questions—two easy and two medium—primarily testing logical reasoning. A week after taking the test, I received an email confirming my selection for the next stage.

Round 2: Code Pairing Interview (90 min)
For this round, I received the problem statement an hour before the interview. My task was to clone a repository, set up the environment, and understand the problem. I collaborated with two ThoughtWorkers who observed my collaboration skills, coding clarity, and ability to apply OOP principles and functional modularity. The focus was on identifying code smells, refactoring, and testing a legacy codebase while encouraging discussions. The problem itself wasn't overly difficult; the key was demonstrating my understanding and application of SOLID principles and OOP concepts, especially through effective use of classes and design principles. The very next day, I was notified of my progression to the subsequent round.

Round 3: Technical Interview (65 min)
This one-on-one session began with an in-depth discussion about my personal and internship projects. Following that, I was given two coding questions: Valid Anagram and Find First and Last Position of Element in Sorted Array. Additionally, I answered questions on coding OOP concepts with real-world examples. I also engaged in a case study involving an e-commerce website, where I had to identify entities, define their relationships, and write SQL queries based on the proposed design. A week later, I received an email informing me that I had cleared this round and would proceed to the final HR stage.

Round 4: Leadership & Cultural Alignment Interview (50 min)
This final round aimed to understand my perspective and aspirations beyond my resume. After initial introductions, I was presented with a PPT slide containing 25 cards. I picked around 5-6 cards, each with a scenario, and discussed the situations using the STAR method. My advice for this round is to simply be myself and share my authentic story. Four days after this interview, I received a call from HR confirming my selection and discussing the joining process.

Throughout the process, each interview involved two ThoughtWorkers who were consistently helpful and supportive. Overall, it was a great learning experience, and I'm very grateful for the opportunity.

Interview Questions (4)

Q1
Valid Anagram
Data Structures & AlgorithmsEasy

Given two strings s and t, return true if t is an anagram of s, and false otherwise. An Anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.

Q2
Find First and Last Position of Element in Sorted Array
Data Structures & AlgorithmsMedium

Given an array of integers nums sorted in non-decreasing order, find the starting and ending position of a given target value. If target is not found in the array, return [-1, -1]. You must write an algorithm with O(log n) runtime complexity.

Q3
E-commerce Website Case Study (Entity-Relationship Design)
System Design

I was presented with a case study for an e-commerce website and asked to identify key entities and define their relationships within the system.

Q4
SQL Queries for E-commerce Case Study
Other

Based on the e-commerce website case study and the identified entities and relationships, I was asked to write SQL queries to retrieve specific information.

Preparation Tips

For my preparation, I primarily focused on reading past interview experiences available on LeetCode and GeeksforGeeks.

ThoughtWorks | Senior Consultant | Gurugram | July 2023 [Offer]
thoughtworks logo
Thoughtworks
Senior ConsultantGurugram5 yearsOffer
July 31, 202321 reads

Summary

I interviewed for a Senior Consultant position at ThoughtWorks in Gurugram, undergoing a multi-stage process that included code pairing, technical assessments, leadership principles, and a unique social change round. Despite an initial setback in the first round, I was given a second chance, successfully navigated all stages, and ultimately received an offer.

Full Experience

My interview journey with ThoughtWorks for a Senior Consultant role, based in Gurugram, began in July 2023. At the time, I was an SDE3 at HashedIn Technologies with 5 years of experience.

ThoughtWorks Interview Pattern

ThoughtWorks has a distinctive interview pattern, typically starting with a Code Pairing interview, followed by a Technical interview, then a Leadership Principles interview (exclusive to Senior roles), and finally, a Social Change round.

Round 1 - Code Pairing - LLD (90 min)

Prior to this round, I received a code repository link. The expectation was to thoroughly review the repository, noting down observations and potential improvement areas for discussion. This usually helps in establishing a starting point for the interview.

First Attempt:
  • The round started with my introduction and an overview of my current project.
  • The interviewers then presented a user story for implementation:
    DISPLAY COST OF LAST WEEK STORAGE
    Description
    As an electricity consumer, I want to be able to view my usage cost of the last week so that I can monitor my spending

    Acceptance Criteria:
    - Given I have a smart meter ID with price plan attached to it and usage data stored, when I request the usage cost then I am shown the correct cost of last week's usage
    - Given I have a smart meter ID without a price plan attached to it and usage data stored, when I request the usage cost then an error message is displayed

    How to calculate usage cost
    - Unit of meter readings : kW (KilloWatt)
    - Unit of Time : Hour (h)
    - Unit of Energy Consumed : kW x Hour = kWh
    - Unit of Tariff : $ per kWh (ex 0.2 $ per kWh)

    To calculate the usage cost for a duration (D) in which lets assume we have captured N electricity readings (er1,er2,er3....erN)

    Average reading in KW = (er1.reading + er2.reading + ..... erN.Reading)/N
    Usage time in hours = Duration(D) in hours
    Energy consumed in kWh = average reading x usage time
    Cost = tariff unit prices x energy consumed
  • I wanted to discuss my observations first to align with the existing codebase and justify my implementation decisions. However, the panelists preferred not to discuss them.
  • Since I was working on a codebase that already had flaws, some of my decisions were questioned. It felt like the panelists had a particular solution in mind that they weren't able to articulate clearly as a real situation or issue.
  • Unfortunately, I did not get selected after this round. However, the HR, with whom I had a positive experience and received an offer a year prior, scheduled another attempt for me.
Second Attempt:
  • Similar to the first, this attempt also started with an introduction and an overview of my current project.
  • The interviewers provided a new user story to implement:
    As an electricity consumer I want to view the usage of my gas and electricity separately so that I can decide if separate tariffs for each type of energy will save me money

    Acceptance Criteria:

    Given I have a smart meter ID when I connect and then I send electricity usage data and then I send no gas usage data then no error message is shown

    Given I have a smart meter ID when I connect and then I send gas usage data and then I send no electricity usage data then no error message is shown
    Given I have a smart meter ID when I connect and then I send electricity usage data and then I send gas usage data then the usage data for each is collated

    Given I have a smart meter ID when I have sent my usage data and my tariff then I am able to be shown the separate usage for gas and electricity I have sent for the past week

    Given I have a smart meter ID when have sent my usage data and my tariff then I can view the separate cost of the gas and electricity usage I have sent for the past week
  • This time, we had a very healthy discussion about my observations. We collaborated on implementing the user story and evolving the codebase's design, focusing on SOLID principles and Design Patterns.
  • The panelists made it clear they don't expect a complete user-story implementation, but rather assess my thought process, coding style, and pair-programming abilities.
  • I received positive feedback for this attempt, and the HR scheduled the next round.

Round 2 - Technical (90 min)

  • This round began with my introduction.
  • I was asked several questions on Java basics, including Java 17 DateTime API vs Java 8, Java 8 functional interfaces and lambdas, Spring IOC container, and the usage of the @Import annotation for dependency injection, along with other Spring Boot and Java topics.
  • Following this, we extensively discussed my current project: its overview, the problem it solves, its architecture, and functionalities. I was in the driver's seat, explaining details and answering deeper questions about my development contributions, choices of DB, cloud services, queue functionality (RabbitMQ vs Kafka), why Java Spring Boot microservices, and potential alternatives.
  • In the final 5 minutes, a small LLD problem was posed to me:
    Design classes and structure them in such a way that we can use them to store distance values. Values could measure in any metrics like kilometers, miles, meters, centimeters, millimeters etc.
  • I designed a simple and robust class structure, though the interviewers weren't entirely satisfied with my proposed design.
  • Despite this, I received positive feedback, and the HR moved me to the next round.

Round 3 - Leadership Principles (60 min)

  • The round started with an introduction.
  • We discussed my role and responsibilities in my current project.
  • I was then presented with several situation-based questions, covering technical difficulties, challenging phases, high and low career moments, team engagement, and dealing with critiques.
  • The panelist seemed happy with my responses. A helpful tip for these types of questions is to prepare situations around common themes and answer using the STAR method.
  • I received positive feedback and was scheduled for the final round.

Round 4 - Social Change (60 min)

  • There were two panelists in this round. After introductions, they noted this wasn't my first ThoughtWorks interview and asked about my existing knowledge of their social change initiatives. We had a brief discussion on this.
  • Next, they asked me to think of three things I would do to create change in the world. I could only come up with two: the Indian Tax System and the Indian Reservation System.
  • We discussed each of these topics in detail, exploring how I would approach solving these issues if I had the power to make country-level decisions.
  • We maintained a healthy discussion, steering clear of controversies. The panelists were pleased with the discussion and gave positive feedback.

The entire process took approximately 15 days. I asked the HR to expedite it as my release date from my current company was approaching.

Ultimately, I was selected and received a job offer.

Interview Questions (4)

Q1
Display Cost of Last Week Storage
Data Structures & Algorithms
DISPLAY COST OF LAST WEEK STORAGE
Description
As an electricity consumer, I want to be able to view my usage cost of the last week so that I can monitor my spending

Acceptance Criteria:
- Given I have a smart meter ID with price plan attached to it and usage data stored, when I request the usage cost then I am shown the correct cost of last week's usage
- Given I have a smart meter ID without a price plan attached to it and usage data stored, when I request the usage cost then an error message is displayed

How to calculate usage cost
- Unit of meter readings : kW (KilloWatt)
- Unit of Time : Hour (h)
- Unit of Energy Consumed : kW x Hour = kWh
- Unit of Tariff : $ per kWh (ex 0.2 $ per kWh)

To calculate the usage cost for a duration (D) in which lets assume we have captured N electricity readings (er1,er2,er3....erN)

Average reading in KW = (er1.reading + er2.reading + ..... erN.Reading)/N
Usage time in hours = Duration(D) in hours
Energy consumed in kWh = average reading x usage time
Cost = tariff unit prices x energy consumed
Q2
View Separate Gas and Electricity Usage and Cost
Data Structures & Algorithms
As an electricity consumer I want to view the usage of my gas and electricity separately so that I can decide if separate tariffs for each type of energy will save me money

Acceptance Criteria:

Given I have a smart meter ID when I connect and then I send electricity usage data and then I send no gas usage data then no error message is shown

Given I have a smart meter ID when I connect and then I send gas usage data and then I send no electricity usage data then no error message is shown
Given I have a smart meter ID when I connect and then I send electricity usage data and then I send gas usage data then the usage data for each is collated

Given I have a smart meter ID when I have sent my usage data and my tariff then I am able to be shown the separate usage for gas and electricity I have sent for the past week

Given I have a smart meter ID when have sent my usage data and my tariff then I can view the separate cost of the gas and electricity usage I have sent for the past week
Q3
Design Classes for Distance Values with Various Metrics
Data Structures & Algorithms

Design classes and structure them in such a way that we can use them to store distance values. Values could measure in any metrics like kilometers, miles, meters, centimeters, millimeters etc.

Q4
Propose Initiatives for Social Change
Behavioral

The interviewers asked me to think of three things I would like to do to make change in the world and discuss them.

ThoughtWorks | Application Developer | India | May 2022 [Offer]
thoughtworks logo
Thoughtworks
application developerindiaOffer
June 2, 202230 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.

ThoughtWorks | Application Developer | India | Sept 2021 [Offer]
thoughtworks logo
Thoughtworks
Application DeveloperIndia2.5 yearsOffer
May 16, 202228 reads

Summary

I received an offer for the Application Developer role at ThoughtWorks in India after a comprehensive interview process focusing on OOPS, clean code, TDD, and data structures. I ultimately accepted the offer due to the company's culture and growth opportunities despite other offers.

Full Experience

I interviewed for the Application Developer role at ThoughtWorks in India. My journey began with an OOPS Pairing Round (R1) where I had to select a story, which involved creating APIs for user and password validation. ThoughtWorks heavily emphasizes OOPS, Clean Code, and Test-Driven Development (TDD). I learned that it's okay to admit if you're new to TDD; interviewers are understanding. The key here was to continuously communicate my approach and ensure proper naming conventions for classes, methods, and variables. They weren't necessarily looking for a complete solution but rather a strong thought process.

The second round (R2) was fantastic—it felt more like a discussion than a typical interview. I was presented with Data Structures and Algorithms questions, specifically tasked to implement my own LinkedList from scratch, add data to it, and then reverse it. Following that, I had to implement Queues using Stacks and Stacks using Queues. Beyond DSA, we discussed database design for a pizza shop, REST API design, and Java 8 features like Streams.

As my previous work involved the Networking Domain, I had an additional third round (R3). This round delved deeply into my project experience and included discussions on networking concepts like SIP, VOIP, and RTP protocols.

Finally, the fourth round (R4) focused on Social Impact and Behavioral questions. This round was designed to understand my perspective on social topics and how I would handle situations as a consultant, given that ThoughtWorks offers a consulting grade. A key takeaway was to avoid being biased towards one side in discussions.

I was thrilled to receive an offer from ThoughtWorks. Although the compensation was lower than other offers I had at the time, I chose to join because of the unique interview process and the company's culture. It has proven to be one of my best decisions, providing immense work satisfaction and opportunities to learn new technologies and directly engage with clients, all while maintaining a good work-life balance.

Interview Questions (2)

Q1
Implement Custom Singly Linked List with Reversal
Data Structures & AlgorithmsMedium

I was asked to create my own singly linked list from scratch, including methods to add data. Following that, I had to implement a function to reverse the linked list. The entire code needed to be written on my favorite IDE.

Q2
Implement Queues using Stacks and Stacks using Queues
Data Structures & AlgorithmsMedium

I was challenged to implement a Queue data structure using only Stacks, and then, conversely, implement a Stack data structure using only Queues. I had to write the full code for both implementations.

Preparation Tips

While the post didn't explicitly detail my specific preparation strategy, I gathered several insights from the interview process that serve as valuable preparation tips. For the OOPS round, it's crucial to have a solid understanding of Object-Oriented Programming principles, clean code practices, and ideally, some familiarity with Test-Driven Development. During this round, I learned the importance of continuously communicating my thought process and rationale for design choices to the interviewer. Using clear and proper naming conventions for classes, methods, and variables is also highly valued. It's acceptable if the entire problem isn't solved, as the focus is more on the approach. For technical rounds, be prepared to implement fundamental data structures like Linked Lists from scratch and demonstrate knowledge of common DSA problems, such as implementing one data structure using another. Familiarity with database design, REST API principles, and modern language features (e.g., Java 8 Streams) is also beneficial. For behavioral rounds, practicing how to discuss social topics without bias and preparing for questions on handling client interactions is essential.

Have a Thoughtworks Interview Experience to Share?

Help other candidates by sharing your interview experience. Your insights could make the difference for someone preparing for their dream job at Thoughtworks.