PlacementPrep

Thoughtworks Placement Papers 2026

13 min read
Topics & Practice
Advertisement Placement

Last Updated: March 2026

ThoughtWorks Placement Papers 2026 | Complete Preparation Guide

Company Overview

ThoughtWorks is an American global software consultancy founded in 1993 by Roy Singham in Chicago, Illinois. The company is known for its expertise in agile software development, cloud computing, data science, and digital transformation. ThoughtWorks has pioneered many modern software development practices including continuous integration and delivery.

With a strong culture of social justice and diversity, ThoughtWorks operates as a flat organization without traditional hierarchical structures. The company employs some of the brightest minds in software and is known for its rigorous hiring process that values both technical excellence and cultural alignment.

Why Join ThoughtWorks?

  • Work on challenging, impactful projects for global clients
  • Flat organization with no hierarchy
  • Strong focus on social impact and tech excellence
  • Continuous learning culture
  • Diverse and inclusive environment

Eligibility Criteria 2026

CriteriaRequirement
EducationB.Tech/M.Tech/MCA in CS/IT or related
CGPA7.5+ preferred
BacklogsNo active backlogs
Year2025, 2026 graduates
SkillsOOPs, DSA, Agile basics

CTC Structure for Freshers 2026

ComponentAmount (INR)
Base Salary₹8-12 LPA
Variable Pay10-15% of CTC
BenefitsHealth, Wellness, Training
Total CTC₹10-15 LPA

Exam Pattern 2026

RoundFocusDuration
Online AssessmentAptitude + Coding90 mins
Code Pairing 1Live coding with dev60 mins
Code Pairing 2Advanced problem solving60 mins
Technical InterviewSystem Design/OOPs60 mins
Cultural InterviewValues & Social Justice45 mins
Leadership InterviewFinal round45 mins

Note: ThoughtWorks places heavy emphasis on pair programming and collaboration.

Aptitude Questions (15 with Solutions)

Q1: A alone does work in 10 days, B in 15 days. With C, they finish in 5 days. C alone?

Solution: 1/10 + 1/15 + 1/C = 1/5 → 1/C = 1/5 - 1/6 = 1/30. C = 30 days

Q2: A pipe fills in 4 hours, another empties in 6 hours. Both open?

Solution: 1/4 - 1/6 = 1/12. 12 hours to fill

Q3: A:B = 3:4, B:C = 5:6. Find A:C.

Solution: A:B:C = 15:20:24. A:C = 15:24 = 5:8

Q4: Average of 5 numbers is 27. If one excluded, average is 25. Find excluded number.

Solution: Total = 135, New total = 100. Excluded = 35

Q5: 20% discount, then 10% cash discount. Equivalent single discount?

Solution: 0.80 × 0.90 = 0.72. Discount = 28%

Q6: A invests ₹12000, B ₹15000. After 8 months, C joins ₹18000. Year profit ₹42000. Find C's share.

Solution: Ratio: 12000×12 : 15000×12 : 18000×4 = 144:180:72 = 4:5:2. C's share = (2/11)×42000 = ₹7636

Q7: SP of 12 articles = CP of 15 articles. Profit%?

Solution: 12SP = 15CP → SP/CP = 5/4. Profit = 25%

Q8: A man rows at 8 km/h in still water. Upstream takes twice as long as downstream. Stream speed?

Solution: Let stream = s. 8+s = 2(8-s) → 8+s = 16-2s → 3s=8 → s = 8/3 km/h

Q9: Probability of getting at least one head in 3 coin tosses.

Solution: 1 - P(all tails) = 1 - 1/8 = 7/8

Q10: Find odd: 2, 5, 10, 17, 26, 38

Solution: n²+1 pattern: 1+1, 4+1, 9+1, 16+1, 25+1, 36+1. 38 should be 37. 38 is odd

Q11: Statement: All flowers are beautiful. Some beautiful things are red. Conclusion: Some flowers are red.

Solution: Does not follow (undistributed middle)

Q12: Coding: SING=52, RING=47. Find KING.

Solution: Positions sum with pattern. S(19)+I(9)+N(14)+G(7)=49? Close. Try: S(19)-? =52. Alternative: Reverse positions. K(11)+I(9)+N(14)+G(7)=41

Q13: A is 10m north of B. C is 10m east of A. D is 10m south of C. Distance BD?

Solution: Forms square. BD = 10√2 m (diagonal)

Q14: Find next: Z, W, T, Q, ?

Solution: -3 each: Z(26)→W(23)→T(20)→Q(17)→N(14)

Q15: In a row, A is 8th from left, B is 9th from right. After swapping, A is 15th from left. Total?

Solution: A's new pos = B's old pos = 15th from left, 9th from right. Total = 15+9-1 = 23

Technical Questions (10 with Solutions)

Q1: What is pair programming?

Solution: Two developers working together at one workstation - one writes code (driver), one reviews (navigator).

Q2: Explain TDD (Test Driven Development).

Solution: Write failing test first, then write code to pass, then refactor. Red-Green-Refactor cycle.

Q3: What is the difference between unit and integration testing?

Solution: Unit tests individual components in isolation. Integration tests how components work together.

Q4: Explain the SOLID principles.

Solution: S-Single Responsibility, O-Open/Closed, L-Liskov Substitution, I-Interface Segregation, D-Dependency Inversion.

Q5: What is continuous integration?

Solution: Practice of merging code changes frequently, with automated builds and tests.

Q6: Difference between abstract class and interface?

Solution: Abstract class can have implementation; interface traditionally only declarations (Java 8+ allows defaults).

Q7: What is dependency injection?

Solution: Design pattern where object receives dependencies from external source rather than creating them.

Q8: Explain agile vs waterfall.

Solution: Waterfall: sequential phases. Agile: iterative, incremental, adaptive to change.

Q9: What is refactoring?

Solution: Improving code structure without changing external behavior. Improves readability and maintainability.

Q10: What is clean code?

Solution: Code that is readable, maintainable, testable, follows conventions, and expresses intent clearly.

Verbal Questions (10 with Solutions)

Q1: Synonym of "Cohesive"

Q2: Antonym of "Aberration"

Q3: Error: "The number of students are increasing."

Q4: Fill: "He is proficient ______ coding."

Q5: One word: Fear of confined spaces

Q6: Idiom: "The ball is in your court"

Q7: Analogy: Doctor : Diagnosis :: Teacher : ?

Q8: Preposition: "She is married ______ him."

Q9: Spot error: "Each boy and each girl have their own book."

Q10: Rearrange: Innovation/drives/progress

Coding Questions (5 with Python Solutions)

Q1: FizzBuzz (TDD Example)

def fizzbuzz(n):
    result = []
    for i in range(1, n+1):
        if i % 15 == 0:
            result.append("FizzBuzz")
        elif i % 3 == 0:
            result.append("Fizz")
        elif i % 5 == 0:
            result.append("Buzz")
        else:
            result.append(str(i))
    return result

# Tests
def test_fizzbuzz():
    assert fizzbuzz(3) == ["1", "2", "Fizz"]
    assert fizzbuzz(5)[-1] == "Buzz"
    assert fizzbuzz(15)[-1] == "FizzBuzz"

Q2: Bowling Game Scorer (TDD Kata)

class BowlingGame:
    def __init__(self):
        self.rolls = []
    
    def roll(self, pins):
        self.rolls.append(pins)
    
    def score(self):
        score = 0
        roll_idx = 0
        for frame in range(10):
            if self.is_strike(roll_idx):
                score += 10 + self.rolls[roll_idx+1] + self.rolls[roll_idx+2]
                roll_idx += 1
            elif self.is_spare(roll_idx):
                score += 10 + self.rolls[roll_idx+2]
                roll_idx += 2
            else:
                score += self.rolls[roll_idx] + self.rolls[roll_idx+1]
                roll_idx += 2
        return score
    
    def is_strike(self, roll_idx):
        return self.rolls[roll_idx] == 10
    
    def is_spare(self, roll_idx):
        return self.rolls[roll_idx] + self.rolls[roll_idx+1] == 10

Q3: Prime Factors

def prime_factors(n):
    factors = []
    d = 2
    while d * d <= n:
        while n % d == 0:
            factors.append(d)
            n //= d
        d += 1
    if n > 1:
        factors.append(n)
    return factors

Q4: Word Count (Unix-style)

def word_count(text):
    words = text.lower().split()
    count = {}
    for word in words:
        word = ''.join(c for c in word if c.isalnum())
        if word:
            count[word] = count.get(word, 0) + 1
    return count

Q5: Stack Implementation with Min

class MinStack:
    def __init__(self):
        self.stack = []
        self.min_stack = []
    
    def push(self, x):
        self.stack.append(x)
        if not self.min_stack or x <= self.min_stack[-1]:
            self.min_stack.append(x)
    
    def pop(self):
        if self.stack.pop() == self.min_stack[-1]:
            self.min_stack.pop()
    
    def top(self):
        return self.stack[-1]
    
    def get_min(self):
        return self.min_stack[-1]

Interview Tips (7 Tips)

  1. Practice Pair Programming: Be comfortable coding while someone watches. Explain your thinking aloud.

  2. Know TDD: Understand Red-Green-Refactor. You may be asked to demonstrate TDD.

  3. Refactoring Skills: Be ready to improve existing code - naming, structure, eliminating duplication.

  4. Social Justice Awareness: ThoughtWorks cares deeply about diversity and inclusion. Show your values align.

  5. Agile Knowledge: Understand Scrum, Kanban, user stories, and iterative development.

  6. Clean Code: Read Robert Martin's "Clean Code". Know naming conventions, function size, SOLID principles.

  7. Ask About Culture: Show interest in their flat hierarchy and continuous learning culture.

FAQs

Q1: Why does ThoughtWorks have so many interview rounds? They prioritize finding the right cultural fit alongside technical excellence.

Q2: Is prior agile experience required? No, but willingness to learn and adapt is essential.

Q3: What makes ThoughtWorks different from other consultancies? Flat structure, social justice focus, and commitment to software excellence practices.

Q4: Do I need to know specific technologies? Strong fundamentals matter more. You'll learn technologies on the job.

Q5: How important is the cultural interview? Very important. They reject technically strong candidates who don't align with values.


ThoughtWorks seeks developers who care about code quality and social impact. Show your passion for both.

Advertisement Placement

Share this article: