ThoughtWorks | Application Developer | India | Sept 2021 [Offer]

thoughtworks logo
thoughtworks
Application DeveloperIndia2.5 yearsOffer
May 16, 20221 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.

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!