Mission: Our mission is to better humanity through software and help drive the creation of a socially and economically just world. We bring together the most capable, driven and passionate people to:
1. Run a sustainable business
2. Champion software ...
OK, let’s get the corporate stuff out of the way first. ThoughtWorks is a global IT consultancy providing Agile-based systems development and consulting services. We've pioneered many of the most advanced and successful Agile methods of software development and best practices used in the industry today.
In other words, we build (amazing) software. It’s amazing because we build it with a complete obsession on doing the right thing for the user and the customer, and some innovative methods to get us there really quickly. It’s also amazing because it’s the stuff that makes or breaks companies; software which creates competitive advantage.
But that’s only part of the story. ThoughtWorks is a social and commercial community based on three pillars – (1) running a sustainable business -- which enables us to (2) deliver software excellence and (3) advocate for positive social change. You’ll hear us talk about our Pillars at lot if you join us.
We see building software as a social activity, best done by teams of brilliant people, not a mechanistic process where individuals are interchangeable cogs in a master plan. Our hiring model focuses on finding outstanding talent, over the mastery of tools.
Since 1993 ThoughtWorks has grown from a small group of passionate people our founder, Roy Singham, gathered in his basement in Chicago to a company spread across 42 offices in 14 countries: Australia, Brazil, Canada, China, Ecuador, Germany, India, Singapore, Spain, the United Kingdom and the United States.
We’ve been building game-changing software for our clients since we started. We specialize in creating technology that helps differentiate companies, or that helps make a positive change in the world.
It’s not that straightforward though. If you ask anyone who works here what we do, they’ll give you a different answer. ThoughtWorks is very much what you make of it, and your experience will be shaped by the projects you’re on and the people you work with. We’re also a bunch of entrepreneurs and so we’re just as likely to tell you about the company we want ThoughtWorks to be, as what we are today.
Since we started, in that basement in Chicago, we have made many mistakes, and have learnt a lot about how to build software, but more importantly, how to work effectively. We’re fanatical about helping our industry to get better and we do this by writing books, blogging, and talking at conferences.
Our mission is to better humanity through software and to be a role model for the 21st century socially responsible company. Martin Fowler, our Chief Scientist, blogged about what this looks like when you’re a ThoughtWorker. You can read it at
In terms of our organizational characteristics, we think the following sums us up pretty well:
There's something else you should know about us. If you think that the lack of women in IT has something to do with women being genetically indisposed to programming, ThoughtWorks isn’t the place for you. That goes for any other diversity dimension you’d care to suggest. We are really proud to be an equal opportunities employer and an awesome place to work. Our recruiting team is fanatical about sourcing people from all sorts of different backgrounds, because this is what helps us be a more innovative, more inclusive community.
ThoughtWorks believes that people are central to creating great software. We value technological expertise and innovation, but also personal integrity and enthusiasm. At ThoughtWorks, you’ll get a chance to do amazing work, alongside some of the brightest people you have ever met, without the typical frustrations and big company politics (well, at least not internally).
We’re out to build a community of experts, not just provide a one or two-year stepping stone for job-hoppers, so we have a different philosophy of hiring and career development. We have a very exciting graduate scheme, but that doesn’t mean we hire large numbers of inexperienced people and filter them out each year with an 'up or out' approach. We think that leaves something to be desired, and to be frank, it doesn’t fit with our values.
Instead, we hire carefully (and sometimes slowly). If you become a ThoughtWorker, we try and tailor a path that is uniquely right for you. We don’t believe in boilerplate career plans with pre-defined roles. If you have what it takes, we want you to follow your passion. Whether that means moving towards management, immersing yourself deeply in a technical specialty, becoming a cross-discipline general practitioner, or something else entirely of your own choosing.
In terms of our specialities, we generally hire the following types of technical people:
I worked at ThoughtWorks (More than 3 years)
Excellent people to work with. On any random project with 10 employees you ave personally never met before you can 100% count on them all being excellent and dedicated
heavy travel requirements. unwillingness to accept government contracts.
Advice to Management
add an equity participation program
I applied through an employee referral. The process took 4 weeks. I interviewed at ThoughtWorks (Chicago, IL) in February 2018.
I knew a senior consultant at ThoughtWorks offering to submit a referral on my behalf. After sending him my resume, I received an email from the recruiter to complete a coding assessment to be completed in Java as well as a 16 part questionnaire.
The questionnaire consisted of questions such as "How did you hear about TW?", etc. I would recommend reviewing your response to those questions and possibly running them by someone else for grammar and syntax. I decided to do the Sales Tax problem, which gives you a basket of items and prices expecting you to parse a data structure of your choice for prices and item names to output sales tax, total, etc.
After submitting these two assignments, I had a 1 hour phone interview with my recruiter. The interview was behavioral in focus. We spoke about past experiences, projects, how I felt about pair programming, salary expectations (they do not negotiate) as well as to describe 2 oppressed in the United States as well as why I would call them oppressed. Toward the end of the call, the recruiter passed me feedback on my coding assessment. My feedback was pretty positive and is listed below:
ReadMe is a plus (documentation is always appreciated even if not looked at)
Solution completed and runs (obvious why this is good. I also allowed the the user to test different things through the terminal line)
Good job structuring solution to OO solutions (created two classes Items & Basket to work together for output)
Good use of public and private variables (Displayed a good grasp on encapsulation)
Areas of Improvement
Incorporate JUnit tests
Long Main Class with long try catches (I had to read files to get the basket information. The try catch was what to do in the instance the user input the wrong file name)
I could tell based on my feedback that I would move forward.
They got back to me at the end of the week to schedule a 2 day in-person interview in Chicago (even though I was interviewing for the SF office). They also asked me to complete a Predictive Index test before I came to this interview.
The first day of the interview in Chicago, we just did a Wonderlic test as well as the logic-flow test. These two tests do not determine your candidacy, rather they are just another data-point to consider your hiring. The Wonderlic is meh. If you do not know the answer right away go on to the next question and revisit the ones you left. You probably will not finish all of them but it's a good thing to get as many right as possible. I found the logic-flow test online and practiced for it a little bit. It's really cool because it tests how you follow directions and includes many programming concepts such as loops and manipulating variables. I would recommend taking your time on both of these and checking your answers if possible.
The next day I had three interviews.
The first was non-technical. They just asked me questions about how I view the world, why software development, where I see myself in 5 years, why ThoughtWorks, etc. They dis a phenomenal job giving me insight into expectations as well the company culture.
Next, was technical and I had two women-identifying developers. They asked me OOD questions. I told them I was unfamiliar with a few of the technical terms but we went on asides where they explained the concepts to me. Next, they asked me questions about ReactJs and then about my role on different projects and why I chose those roles. They asked me about databases since I had that on my resume. Neither of my interviewers had experience with document based databases outside of conferences, so I had the chance to teach them some things. This was a fun interview and I think by being placed in the position to supply so many examples for the concepts and the nature of the interview allowed my personality to shine. Toward the end I asked the two developers two questions: Could they speak about their growth as developers at TW? What are some of the unique challenges they face as women developers?
The last interview was the other technical interview where I refactored my Sales Tax solution with two developers. This was kind of harder because I was not as comfortable with Java. We started coding as soon as I explained the problem to them, then we reworked my classes from top to bottom. They made me defend my many of design choices and then change them! Toward the end we started to work on JUnit tests, however, we did not have time to implement them.
After this interview, my recruiter followed up with me to discuss how the interviews went as well as my timeline. She told me they would get back to me Monday-Tuesday at the latest. On Wednesday I received an email to schedule a time to speak with the recruiter either that day or the next. I thought I was getting rejected based on the neutral tone of the email and decided to schedule my conversation ASAP in order to rip off the band-aid. I ended up receiving an offer on this call.