Ganesh Prasad's blog

Software Development At Zomato

July 17, 2017

It has been almost 2 months since I first found myself employed and working fulltime on something I liked and cared about; in short I have been coding for last 2 months with a bunch of awesome people who like coding new stuff on a rather daily basis. In this post I'll outline this awesome experience and a little bit of backstory to it.

Previously I was officially unemployed, working mostly on my own pet projects like Ghournal and Ironscript and freelancing sometimes for little money. Then I got employed as a software development engineer at Zomato and joined the job about 2 months ago. Since then, life has been a little different than what it used to be. The main difference being, here I am not an individual developer with my own agenda anymore, here I am a part of a team and we collaborate. The idea of responsibility is a bit different in this scenario. For instance, when I was an individual developer working on Ironscript, I used to care little about backward compatibility, but here because the softwares we develop are rather complex ones with a lot of dependencies, upgrading something blindly may actually break some parts of the software. And as a matter of fact, I came to realise that we do not exactly need to upgrade everytime a new (read trending) technology comes in. If the software works well and is performant, then upgrading it blindly just to take 'advantage' of some new technology may not be that good an idea. Another important thing I noticed is that, it's better and more efficient to take an evolutionary approach to software development than a properly planned and static development model. Firstly it speeds things up and always keeps you on your toes. Secondly it's easier to deliver better software when the client can actually evaluate a working copy of the software and point out which things neeed to change and what new features they want. The evolutionary approach does decrease the communication gap between the developer and the client.

So much for the general experience, let's talk about the things I am working on here. It's mostly React and React-native. Yeah, React is one of the best things around at this moment and it's here to stay. A lot of people are moving to React. My first assignment here was to add some new features and fix a few bugs in an existing app written using React-native. I had some previous experience with React, so I had a rather easy time understanding the existing codebase and working with it. Then I was assigned to develop the frontend for our Recommendations System (which is currently under development) so that we can visualize and test the same, I prefered to do it using React and I did the same. Nowadays I am working with both the projects and leveling up my skills with React and Redux. It certainly has been an awesome experience.