It's 20th Aug 2021 in Pune, India.
Afghanistan is captured by the Taliban, thoughts of being in a country run by a radical organization is terrifying. However, hoping for the best for the Afghanistan citizens
One thing I learned and liked about the entire interview experience with ThoughtWorks(TW) was its social aspect, coming back on this later.
Back in 2016 I had my first go at Thoughtworks and failed in the last round, that feeling of getting a job in one of your dream organizations but not being able to achieve it was devastating. It took me some time to overcome this failure.
However, the TW recruiter encouraged me to try again. I took it positively and decided that I will work hard and try again.
Fast forward 2021
After completing 10 years in the industry, I got in touch with the same recruiter to schedule an interview at TW, to my surprise she remembered me.
And my journey has begun
Initial Discussion with the recruiter
This was a telephonic discussion which consisted of the recruiter understanding my expertise. Questions like
- How many years of experience in the industry?
- Which Languages have I worked on?
- How confident I am working with these languages?
- What are my salary expectations?
- How much is the notice period?
She also briefed me about the upcoming Pairing Round and helped with the coding assignment.
Round One: Pairing
I was provided with a GitHub repo of a project coded in multiple languages, I was given the freedom to choose the language of my choice and since I have worked in JAVA for more than 8 years, I decided to go for JAVA.
Preparation
I checked out the code and understood the domain. It was a simple spring boot project with REST APIs and domain models and a few services, nothing that difficult to understand. There was no DB layer, everything was stored in memory.
Pairing
I started my online interview on a Zoom call. My interviewer was kind enough to introduce himself. After the introductions, he shared with me a Trello board that had few tracks like Backlog, Ready for Dev, In Progress, QA, Done.
The best thing about this round was, it felt like an actual project as if I am already an employee of TW and we are working on the important task to "Save the world".
After discussing few tickets with my interviewer I decided to pick up one of the tickets in the ready for dev column.
I clarified few assumptions and also missed a few which the interviewer politely pointed out.
I started coding by maintaining active interaction from my side. The interviewer was knowledgeable and polite and let's say a man of few words.
Last two years I extensively worked on TDD and knowing that TW follows Xtreme Programming practices I decided I will start with the test first.
Using the divide and conquer strategy I divided the requirement into small chunks and confirming each chunk with the interviewer. Making sure he understood my approach.
I started writing my test with the intention to make it fail first, then make it pass using the least amount of code, and then refactor the code. Thus following the Red, Green, Refactor approach.
It took us some time to code the entire requirement, but I was successfully able to finish it. Throughout the interview, I made sure that I used most of the IDE shortcuts, thus increasing my own development speed.
The interviewer was kind enough to make me feel at home and it felt like I was working with one of my colleagues rather than being interviewed
Next day I got a call from the recruiter that I have been selected for the next round. One of the feedback from the interviewer was...
"He definitely knows to write code"
I know that I shouldn't be surprised by this, but I was so happy with this feedback.
It is rare that somebody appreciates you for the basics
I have worked in the industry for 10 years, however, nobody ever said that "he knows to code", its just kind of assumed that you know to write code.
It takes a lot of Learning, Passion, and Will to code sometimes.
The recruiter briefed me about my next round, which would include a discussion regarding the current project that I am working on.
Round Two: Project discussion
Preparation
I started preparing how I would represent the architecture, business scenarios, what is my work in the current project. As I was pondering about it I remembered one of the videos I had watched few years back by "Simon Sinek", where he explains how to explain things. It's a simple framework and goes like this.
Why? Always start with why are you doing things.
What? Then explain what are you doing.
How? Then how are you doing it
Why
- I started writing down all the things that why this project that I work on exist
- Is it still useful?
- What's the impact on the Stakeholders, Users, Customers?
- What revenue does it bring to my organization?
What
Considering the project I asked these questions to myself.
- Who are the stakeholders?
- Who are the Users?
- Who am I in this project?
- What is my current work in the project?
How
This is the most interesting part as dev.
- What is the architecture of the project?
- How many microservices?
- How do they interact?
- Which technologies are used?
After coming up with answers for each of the questions above, I thought I was ready. I also tried explaining the Architecture of the project to myself using a drawing pad.
Discussion Round
This time there were two interviewers from TW, one with around more than 20 years of experience in the industry and another with the same around mine.
As usual, they introduced themselves continued by my introduction and the round begun...
I was asked to explain my current project and the architecture, which I was already prepared for, so I started with the WHY, WHAT, and HOW we did it. In between the interviewers asked few questions related to why we choose a particular technology, also I had a chance to create a microservice from scratch in my project, hence I explained WHY WHAT, and HOW of the same service that I created.
I was also asked to design a domain for a streaming service like Youtube, just the comment sections for videos. Lucky for me, I had already explored the streaming service domain in one of my pet projects.
Overall I felt it went well, but I was not completely sure whether I impressed my interviewers.
The next day I got a call from the recruiter that I have been selected for the next rounds. Leadership round and Social Round
The next two rounds were the most interesting rounds for me.
Round Three: Leadership Round
As usual friendly introductions by the Thoughtworkers, one of the interviewers was from Mumbai and the other in Nagpur. I introduced myself and it began.
I was asked questions like,
How would you manage conflicts between two team members? How would you manage the clients if there is an urgent requirement but you won't be able to achieve it in time? How would you convince your team members to work hard?
To be honest, I am not sure if the answers that I gave were right, but I just answered what I felt was right. There was some cross-questioning on why would I decide to do something, I tried my best to explain the reasons for deciding something.
Thanks to the interviewers I felt free to express myself.
Round Four: Social Round
This was one of the most interesting rounds that I ever had in an interview, I never thought any organization would even bother to consider my social views, but I understand it's such an important part of our day-to-day lives.
We spend a lot of time with our Colleagues, sometimes even more than our families.
It's very important that we understand each other's social views, it surely helps to gel well with each other. This round reminded me of how important is it to feel free to express your views and also respect others.
After the introductions, three of us (Me and two other interviewers) resolved that Books are common ground on which we can talk about.
Some of the topics we discussed were Religion, Freedom of Choice, Gender discrimination.
The interviewers tried to understand my point of view regarding these things... I did feel uncomfortable for a while since it's not very easy to share your views with someone whom you have not known for a long time. The thought that what you feel might not be accepted or perceived in the wrong way bothered me. I tried my best not to offend any other views but still manage to put across my beliefs and judgments or thoughts.
To be honest, after this round I was a bit scared if I would be rejected.
The next day I got a call...
I was offered a job at Thoughtworks.
One of the best days of my life. I am waiting to begin my journey...
To explore a new world. Learn something new....
There are many who I need to thank, especially my wife for supporting me, my colleagues who taught me so many things, to the TW recruiter who still remembered me after 5 years, and most importantly to GOD.
If you have read so far, comment, share and follow me to know more about my journey once I start working at Thoughtworks.
Thanks for reading till here..!!! :)