Learnings From My First 2 Years as a Software Consultant

Sayan Chakraborty
The Startup
Published in
4 min readSep 10, 2020
Photo by Emile Perron on Unsplash

At the time of publishing this article, I have completed 2 years of working as a developer at ThoughtWorks. I thought this would be a nice opportunity for me to reflect back on my learnings and realisations over my last two years here.
Maybe you will find these insights relatable or maybe not, either way do give it a read.

I joined ThoughtWorks as a graduate developer after finishing my Bachelor’s in Electronics and Communication. I didn’t go through any sort of internship programme during my college, and, as a result, I was clueless, to say the least, about enterprise software. Nevertheless, I have been fortunate enough to learn many things here at this wonderful company.

1. Tackling problems in general

It is quite normal to be overwhelmed when a difficult problem is presented to us. Working with some smart minds, I have realised that big problems are not solved by striking a dagger at the heart of the problem. Instead, the big problem is often broken down into smaller problems and solved incrementally to achieve the end goal. Properly dissecting a big problem is half the work done.

2. Deep dive into everything

Most of the time, developers work under a deadline of finishing the task at hand. As a result, they only scratch the surface of a particular language, tool or framework in order to get things done on time. In this process, developers end up having shallow knowledge of the technology used.

I found this very harmful in the long run and I’ve realised deep diving into tools and technologies we regularly use is the best way to move forward for a developer. Of course it requires a lot of effort- neither Rome nor a good software engineer was built in a day.

3. Quality over quantity

Churning out lines of code isn’t a metric for productivity. I’d prefer writing five lines of tested code in a day that are readable, maintainable and extensible over writing unreadable and unmaintainable functions to get my work done quickly. Although getting work done fast is important, it’s equally important to not compromise on quality.

I have been in situations where I have given priority to refactoring over delivering new features. In the long run, this genuinely helps.

4. There’s more to tests than we think

As a developer, tests are your best friend. Be it unit, integration, contract or end-to-end, tests serve much more purpose than just determining the quality of software you or your team deliver. Well written tests are a safety net for refactoring code. As it is often said, tests are the best documentation of your code there is. Personally, I couldn’t agree more with this. I always look at tests when I am exploring functions or apis.

As a developer, writing tests should be equally important as delivering a feature. Even better, start with Test Driven Development(TDD) if you’re not doing it already. This helps in giving a direction to the design of your code as well. If you’re oblivious to tests, you’re probably doing it wrong.

5. Communication is key

As a software consultant, it is of paramount importance to be good at communicating with other technical and non technical people. More often than not, I have found myself working with non technical people and it becomes extremely important to make sure that non technical jargon is used while explaining the work I do. Bridging the gap between tech and business groups is what makes a good software consultant.

6. Battling impostor syndrome

This one’s very important to me personally since I have always had a problem with believing in myself. I would always think that my peers and colleagues are better than me and I am not worth my salt. Working with smart folks can solidify this misconception (or at least it did in my case).

It’s important to understand that none of this is actually true and these thoughts are a manifestation of our fears and insecurities. Every person has something unique to bring to a team and although it’s important to have a good career, one shouldn’t turn it into a rat race. The destination remains the same, the journeys different.

7. Work life balance is important

You might think that work life balance should not be a priority for someone who is starting out in the industry but I don’t think that’s true. A healthy mind requires adequate involvement in work and leisure. Sure, at times, long hours of work are necessary but making it a habit can be very hazardous.

Personally, I have felt more focused at work when I have drawn a fine line between my work and leisure hours.

I’ve written this article because I’ve been fortunate enough to work with some smart people and learn some amazing things along the way. This is just the start of a long and interesting journey as a software consultant and I can say that I am eagerly looking forward to what this industry has to offer to me or rather what I have to offer to the industry. Thanks.

--

--