It was a hot April afternoon and I already knew that it was going to be a long day at work. In fact, it could even spill over into late hours. We were deploying one of our upcoming products and realized that a certain issue with the browser cookie which I overlooked while developing had come back stronger to bite us. However, after a few iterations and a lot of brainstorming with my technical architect Rajith, I finally figured out how to squash the bug.
And, so I did. A new learning (yet again) as I called it a day.
Now out of the flashback to current times – summers are behind us and rains have been lashing down almost every day. Amidst this, the world saw the release of Signeasy for Zoho Writer, built by the folks at Zoho using the Signeasy API platform. It was releasing the beta version of the API platform that had kept me busy that hot afternoon four months back.
Here’s some more background to the story. Back then, I had just started working on the server side applications – something I had never done before. I am an Android developer and have built Android apps for more than four years now, Signeasy included. (Oh yes, I wrote a blog on Android code cleanup as well during my initial months at Signeasy)
I am proud of being an Android developer. I love the community, the ease of access and the opportunity in this space. The love, undoubtedly, is here to stay. Earlier this year, there was a requirement raised by the marketing team to write a webhook service for implementing a lead creation process. As it turned out, the backend team was swamped. Somewhere in between, I learned about the requirement. I was done with my sprints and I thought it would be fun to get my hands dirty with PHP.
And, I believe, this is where it all started. That was probably the first time I was writing a backend code. I did pester my colleagues from the backend team when I hit a wall, but I got the job done.
Little did I know that the greater challenge was on it’s way!
The web hook deployment had boosted my confidence into backend development, and, in some way, of my manager’s as well. I immediately got the chance to work on another backend development project. It involved working on Flask (Python) on the backend and AngularJS on the frontend. To begin with, I had to pick a codename for the project (something we do for all projects at Signeasy). Going by the magnanimity of the challenge, there was nothing better for me than calling it Project Himalaya. All of this while making sure the Android development stays on track.
Suddenly, I found myself moving from “make a new fragment” and “add a gradle dependency” to “ssh into that server” and “mount a volume in docker”. With Android development, our focus is to get data, process it and display it to the users in a meaningful way. Most of our efforts are into the presentation and to make interaction seamless – things like offline caching, handling network and managing memory. It was challenging at first, but after grappling with it for a couple of years, I had become comfortable with Android development. Actually, a little too comfortable.
Jumping into server application development yanked me out of my comfort zone and sent me spiraling down the lane of exponential learning. I was learning new concepts every day which continues till date.
Going beyond the call of duty to learn and do something new at work is always exciting. The road to get there, however, is anything but smooth. As I was taking up additional backend project, I realized it was going to be a bumpy ride because the Android sprints were underway as well. There were a lot of times when I ended up working on both simultaneously and got pulled in all directions. “This too shall pass!” became a familiar note to self then.
After having finally scaled Himalaya, I was entrusted with bringing up a micro-service that would be integrated with our backend infrastructure. Yes, it was overwhelming for a while, but I thoroughly enjoyed it. Fast forward to now, I am working on optimizing our infrastructure by employing cutting edge technology from AWS. Meanwhile, did I tell you that we also released an Android update last week? ?
Nose-diving into backend development has helped me push my horizons. I was able to look at a problem and envision an end-to-end solution. This learning has given me the ability to understand systems and how small moving parts can come together to form the ecosystem.
Also, I would like to encourage every programmer reading this to pick up a fundamentally different language from your primary one. This may mean stepping out of your comfort zone and taking up additional responsibilities, but it’s incredibly exciting. In my case, Python is very different from Java. Java is a strongly typed language and the way the language is structured forces you to follow certain rules without which it fails to compile. On the other hand, Python is an interpreted language. You are not forced to follow any rules. You may not need classes and it will still run and get deployed on the server. (Of course, until the time it crashes in the middle of the night because you did goof up somewhere)
Working on Java and Python has made me understand the importance of structure and code quality even more. Further, it fundamentally altered my psyche as a programmer when I envisioned an object.
So yes, from sweltering summers to pleasant showers – a lot has changed.
I was lucky that my team, especially Rajith, my technical architect was very understanding and forthcoming to help me out and mentor me. The management too was ready to take a risk by ushering me into the vast expanse of backend development and keeping the belief that I will stay dedicated to my primary role of Android development as well. I feel the environment you are in is a huge factor in how far you can really go and in my case, my luck was clearly on steroids. To say the least, this has been a humbling and exciting experience – with both in equal proportions
It has been a fun and a hectic ride. I was quite happy that I could fit in my learning and implementation within the deadline and I am so excited to see my products being used by our customers.
The adventure continues.
Meanwhile, I would love to help out anyone who is looking to venture into backend development. I could share my technical learnings and give some pointers on what to look out for. Do hit me up on Twitter! Even better, drop by sometime in our office for a conversation or a ping-pong game!