I started my professional working career in December of 2009.
Fresh out of graduation. Fresh out of the economic recession.
I joined a startup (kinda) which provided software application building services on a pretty niche technology. Like any other developer role, the work posed quite a lot of challenges. Though the technology which we worked on was closed source, we managed to address problems by thinking out of the box. Not limiting ourselves to the tools we have at our disposal.
I was addressing once such problem back in 2010. I had to find a tool which does XML serialisation/deserialisation. Quite a simple task.. I was searching for Java libraries online and my search lead me here https://github.com/x-stream/xstream. I used it, the library did what it is meant to do. I gave a second glance at the contributor of the library. The package name said “com.thoughtworks”. The first thought that came across my mind.. What a nice name to have.. THOUGHTWORKS!
11 years later, I was being interviewed for an opportunity to work with Thoughtworks…
Once I decided to switch out of my first company which I’ve worked with for 11 years, I was being very choosy about the companies to which I’m applying for. I saw a job posting on one of the job portals for Thoughtworks. They were looking to add to their strength of Lead Consultants. I applied without a second thought.
I got a call from the recruitment team and was briefed about the process of evaluation. The interview process consisted of multiple rounds. A code pairing round, a technology depth evaluation round, a technology breadth evaluation round, a leadership round and finally a social change interview. I was quite scared of the interview process which felt too stringent for the likes of me. Please also put yourself in my shoes, I’ve never been interviewed for 11 years and then suddenly, I am.
I don’t want to get into the details of the interview process but I can sum up the experience as simply amazing. After all the rounds of interview are completed and after way too much self doubt, I got a call back from the recruiter saying I was selected..
And the rest is history..
Fast forward.. THE PRESENT
I am here in Thoughtworks for a little more than a year now. Not a single day goes by without me thinking why didn’t I apply earlier.
Recently, I saw a tweet from one of my friends quoting an interview process that another fellow experienced at one of the companies and in the process, applauding the interview process. I was about to reply to him saying thats exactly what Thoughtworks does and then I saw his next tweet.
I felt proud.
Life at Thoughtworks is a bliss. The culture, the practices, everything feels so right in place for someone like me.
When I got staffed for my first project here, I was panicking. I was not aware of the practices nor the norms at Thoughtworks. I was playing the role of a tech lead. A team of developers and a tech principal who were assigned to work along with me helped me adjust to the environment here. I will forever be grateful to them for making my life easy here. Let me quickly outline few of my learnings from my past one year and how I have benefitted from them.
Pair programming is strongly advocated at Thoughtworks as one of the eXtreme Programming practices. You always should work in pair. There will of-course be some push back from clients when they get to know that two people are working on a task which one person is supposed to work on but they will eventually see the benefit (as was in my case)
Pair programming has lot of benefits and improves the quality of the end product greatly. You can read more about pair programming on the following blog post by Martin Fowler with few quotes from Kent Beck.
Test Driven Development
Write tests first. Don’t write any production code without writing tests first. You can’t go wrong with what you are writing if you do this. And pairing with someone just adds to the benefits of writing tests first. You and your pair can deliberate and write the tests first and all you have to do next is to make the tests pass.
You can read more about it on the link below.
Thoughtworks adopts strict agile development methodology. Every project is executed in sprints with importance given to every single iteration of planning, backlog grooming, showcase and retrospective. Every single card goes through the process of Kick off and desk checks where you will involve the QA, BA and Product Owners as part of the process of development. This reduces the understanding gaps between the team and reduces any doubt about the outcome of the implementation as you are no longer working in a silo. You no longer have your head sunk into the computer.
You are working collectively along with a group of highly motivated individuals towards a common goal and you absolutely will not fail in reaching it.
While what I have written about so far outline the practices and principles of Thoguhtworks, the values with which Thoughtworks conducts its business is just at another level. The communities with in the organisation and the encouragement you receive at a personal level are commendable.
My interest in blogging multiplied thanks to Thoughtworks. I always wanted to write. I wanted to blog. But, I always in self-doubt. Always wondered if I was in anyway good at it. But now, here I am publishing this on a Sunday night…
Did you find this article valuable?
Support Pavan Andhukuri by becoming a sponsor. Any amount is appreciated!