What it's like to be a globetrotting super-developer at ThoughtWorks

ThoughtWorks devs are a nomadic bunch, known to criss-cross the globe helping clients with high-tech projects. We tracked them down and asked what it was really like to work there.

Written by Anthony Sodd
Published on Feb. 08, 2017
Brand Studio Logo

We’ve heard a lot about the developers at ThoughtWorks. They’re a nomadic bunch, known to criss-cross the globe helping clients with high-tech projects.

Although ThoughtWorks devs spend a good amount of time on the road, the company maintains a two-floor office in the Flatiron district. It's an interesting space where no one sits at an assigned desk — instead, people come and go, sharing workspaces as necessary. It's kind of like having a hotdesk at WeWork, except everyone in the office works together.

When we heard they were on a hiring spree (they're currently looking for Lead Software DevelopersSenior Developers and Infrastructure Developers), we managed to track down some devs and asked them what it was really like to work at ThoughtWorks. Here's what they had to say.

 

What exactly do you do at ThoughtWorks?

Maria Gomez, Lead Software Developer: As a lead developer, my main focus is to work closely with clients to define strategies that help them reach business goals through technology. Also, I ensure developers in the team have the right tools and support to understand that strategy and implement it in the best possible way. To do that I try to spend at least half of my time with the team pair programming (my favorite part!). Last but not least, I help coach and mentor the next batch of leaders in ThoughtWorks.

‘Wole Solana, Senior Developer: As a Senior Developer, I tend to refer to myself as a Deconstructionist. In plain terms, I spend most of my time implementing solutions to client problems by helping them build software. Building software is not always the right solution, which is why it is key to help clients understand the problems they are facing and coming up with the right solution to their business problem.

Max Lincoln, Lead Infrastructure Developer I switch back and forth between what my former colleague Tim Brown described as 'production engineering' vs 'engineering productivity.' Production engineering is about taking the applications we are building and helping ensure they are fast, reliable, safe and maintainable. Engineering productivity is about finding and eliminating bottlenecks in the software development, test, and release process.

 

How does that work fit into ThoughtWork’s overall strategy?

Gomez: Our company has a 3-pillar model: run a sustainable business (Pillar 1), champion software excellence (Pillar 2) and advocate for social justice (Pillar 3). As a lead at ThoughtWorks, I contribute to these three pillars in different ways. I make sure we are bringing value to our clients and their ambitious missions. I coach developers (both ThoughtWorkers and clients) to ensure the highest quality software is delivered. Lastly, as a woman in tech, I work really hard to close the gender gap and make sure the amazing women technologists coming after me have more opportunities than I had.

Solana: Delivering excellent software is one of the three pillars of our business, so as a Senior Developer, I am involved in helping to deliver one of our key value propositions.

Lincoln: Users now expect companies to be able to quickly build, enhance and support increasingly complex software projects. Similarly, technology has become more fundamental to most business processes, and companies want to be able to quickly build & launch new products. In order to do this, we need to strive for technical excellence not just for the applications we are building, but for the entire ecosystem that exists in order to build and run them.

What sorts of technologies do you work with?

Gomez: The technology choice depends a lot on the problems we’re trying to solve. Lately, my focus has been on building services that support our clients’ new products and ideas, which means building APIs, designing and implementing microservice architectures and making use of patterns like CQRS and event sourcing. I've learned a bunch of languages along the way: Java, Ruby, C#, Javascript, Python and more recently Scala.

Solana: As a consultant, I’ve worked with many technologies: Swift for iOS, Ruby, Python and Java to name a few. I also work with tools for CI/CD like GoCD and TeamCity.

Lincoln: For 'engineering productivity' we increase velocity and reduce mistakes via automation. We use build tools (e.g. Maven, Rake), continuous delivery servers (e.g. GoCD, Jenkins), and configuration & deployment automation (e.g. Chef, Ansible, Terraform, Capistrano). For 'production engineering' we work with just about any system designed to support or compliment the main applications: databases, networking components, monitoring and log aggregation systems and more. We frequently use cloud APIs and services for both categories, since the cloud gives us flexible capacity for both our development and operational needs.

With such a diverse array of clients, does that mean you’re working in a lot of different industries or do you specialize in just one?

Gomez: We are generalist technologists and therefore we learn to adapt to new domains and technologies. In some specific industries, like healthcare or retail, we have Subject Matter Experts that assist us in complex situations. The good thing about being a generalist is that you can bring ideas and past experiences from one industry to another.

Solana: I’ve worked across different industries. One of my favorite projects was carrying out a Discovery, Inception and initial Delivery phase for a client in the BioTechnology sector. It was awesome because I got to apply some of my research knowledge in Bioinformatics in delivering software in a highly specialized environment.

Lincoln: I have worked in many different domains, including healthcare, telecom, retail, energy and finance. All industries share the problem of building, releasing and maintaining stable production systems as efficiently as possible.

I’ve heard that ThoughtWorks’ devs travel a lot for work. How does that work?

Gomez: It’s important that all team members work in the same room (or as close as possible) so there are shared goals and a relationship of trust is built. This often means traveling to the client site and working in their office Monday to Friday. But specific travel requirements can vary based on each project’s need: in most situations we work full time on site while in other situations we may look for different ways to collaborate.

Lincoln: As consultants, we travel to our clients' sites and embed ourselves in their offices. I have traveled a lot and working at ThoughtWorks will always require an openness to extensive travel. There is a push for more client projects that allow for 'location independence,' so I think the travel load will be lighter in the future than it has been in the past.

What’s the coolest place you’ve ever been for work?

Gomez: I spent nine months in our office in Quito, Ecuador. At that time the office had recently opened so I wore multiple hats: led the first local project, coached, presented in front of potential clients, etc. Leaving was sad and difficult but I was so proud of the people there and so humble that they let me be part of their growth. Also, Ecuador is the most diverse country on earth: Quito is literally on a volcano, you can go to the Amazon for a weekend and the Galapagos islands are just over two hours away by plane!

Lincoln: I spent almost two years living in Brazil. It’s an amazing country with a lot of beautiful places, and I was fully immersed in a new language and culture. I’ve also been to Chile, Ecuador, Peru and Germany for work. I’ve been able to travel around to visit other offices, projects, and conferences in order to help build the infrastructure developer capabilities in new offices.