Quantcast
Channel: Backstage - Medium
Viewing all articles
Browse latest Browse all 103

My Experience As SDE Intern @ Goibibo

$
0
0

Hello Readers :) ,

I am Anshuman , a final year Computer Engineering student @ Delhi Technological University and I just got over my Summer Intern At Goibibo.

As you know from the title , I’ll be sharing my internship experience with Android team at Goibibo , Gurgaon , which has been amazing . My Intern duration was of 2 months , June & July 2019. I am a fan of breaking bad , so please don’t mind the references :P .

On first day, we were made familiar to the work culture & policies of Go-MMT. We performed many team bonding activities , and were given goodies at the end of the day , which was like cherry on cake.

The next day started with Isha Monga, Deputy Manager- Human Resources, introducing me and fellow interns to the HR team members .

Nurpur Roy, Assistant Manager HR , then introduced me to the android team and my mentors Ashok Kumar Singhal ,Lead Software Engineer, And Shashwat Sinha , Engineering Manager. I worked with them in “Experiences” vertical of the main Goibibo Android App.

We then attended stand-ups , which used to happen daily at that time :P .
Ashok then explained what the project was & what its impact will be . He gave me liberty and freedom to express my thoughts and give insights. As I had no prior professional experience in Android , he advised me to revise my basics and learn Android Architecture.
So after developing a basic ground in Android, we were ready to start implementing our project.

In easier words — the project was to develop “Time Bounded Deals” (Couldn’t reveal details , because its not live yet :P ) . The idea was to have deals starting at fixed time with great offer to increase user interaction and engage them in the application . Each deal had start time & end time . After the successful enrolment of the user we would then announce the winners of the deal.

It sounded simple , but it turns out we were dealing with 7 deal phases of each deal along with their Deal timers on the screen .
I first started by building all the layouts of the project, and took time in the beginning , but then with the help and guidance of Ashok , I got into the flow.

Now the things started becoming challenging.

So you want to show each deal with a countdown timer . How do you do that ? Make a separate thread to update the deal time of each deal , Right ? But it turns out, that if the number of deals on the page reaches, a small number like 20 , your android OS might kill your application because of excessive memory usage , also even if the OS allows you take up this huge amount of memory, you can only imagine how difficult UI-rendering will be for user.

Now the challenge was to reduce memory usage and have efficient UI , without lag as we are dealing (pun intended) with a special deal with a huge audience taking part and announcing winner , it will be unfair and frustrating for users.

We solved the memory issues by using a Singleton Timer Class which would provide current time to any entity which subscribes to it. We initialised the timer class from the current time provided by server.

UI rending issues were resolved by efficient use of LiveData & Data-Binding. I think they are life savers for an android developer and are the latest technologies in Android to work on ( you can read about the Android JetPack Library if more interested in them).

So are we done with the project ?

Actually it had a major drawback ( hack in some way). A user while waiting for the deal to end , might keep the activity in background and change the device time and that , for some unknown reasons , changed our deal timer’s time. Weird isn’t it? Our deal timer was supposed to be independent of the device time as we initialised it with time provided by server.
After spending time with the bug and going to through deep corners of Internet. We found out the kind of thread we were using in Singleton Timer Class was itself OS clock dependent (to trigger it every second) , we then found alternative to it , which was ExecutorService .

Till this time I was working in Java and now we had to build the second half the project which was winner phase/list of the users. Ashok was open to my idea of now shifting to Kotlin and developing rest of the project in Kotlin to add more fun :) . So I learned Kotlin using the online courses (free of cost , thanks to Go-MMT :) ) , which were suggested by other team members . Kotlin saved a lot of our time and handles most of the thing on its own.

Then we had several meetings to discuss the bugs , more features to be added , and feedbacks . I had a lot of fun in the discussions , everyone was humble and open enough to let me give my feedbacks as well.

My journey has been really challenging. I gained the knowledge of how the “Real_Coding_World” is. I learned the true meaning of Abstraction , it is not just some word in books & The art of debugging .

I was lucky to have Ashok & Shashwat as my mentors ,and work with such a amazing team, apart from the knowledge of Android , they taught me how humble a person could be and how we can solve our problems as a team. I was trusted with my code and was not spoon-fed every detail , so it made everything more interesting and challenging (& you know its the best combination). In short , it has been a really great experience :) .


My Experience As SDE Intern @ Goibibo was originally published in Backstage on Medium, where people are continuing the conversation by highlighting and responding to this story.


Viewing all articles
Browse latest Browse all 103

Trending Articles