Ekansh Preet, one of ThinkUp's Google Summer of Code students, delivered his completed summer project last week: a Google Maps visualization of ThinkUp post replies, and the ability to sort replies by proximity to the original post. To see Ekansh's work in action, check out the White House's Grand Challenge tweet replies mapped here and here.
After such a successful summer contributing to the project, we asked Ekansh a few questions about his experience with GSoC and the ThinkUp community. Here's what he said.
Q: Given all the projects that were available, what made you decide to work on ThinkUp for Google Summer of Code?
A: I came across the ThinkUp project through GSoC 2010 and going through the technologies enumerated in the requirements list, my interest arose. I decided to go deeper and learn more about the organization and the project. I was looking for projects related to the field of web development, ones which involved the use of PHP, Javascript, AJAX etc. I had some experience in these languages and intended to further better my skills in this domain.
I came across a number of organizations offering projects in the field of web development, both small and large, but ThinkUp captured my attention.
Firstly, I was impressed with the concept and the aim of ThinkUp. I could see how useful such a software could and, undoubtedly, would become if developed. The thought of contributing to a project, soon to be used by hundreds of thousands of users, was enticing and alluring. Social networking these days is all the rage. Everyone is on one social networking site or the other. Giving people a tool to organize and archive their communications through these websites, give them various sorts of statistics and trends about their activity on these websites seemed to me to be just the sort of a tool that a user would love to have for themselves.
Secondly, the project was a very young one, still in its pre-alpha stage. This meant that my contribution would mean much more as the project's architecture was so much more flexible than the others. It also meant that I could contribute in a much more diverse manner to the project than just restrict myself to my work on it. There was much scope for creativity in my solutions. Also, seeing the first client for the project, the White House, helped remove any little apprehensions that I could have had. It meant that the product had great promise and potential to become one of the leading technologies in its field.
Another reason being, my work, the Google Maps Visualization project. I hadn’t seen such a feature anywhere. To be working on a feature that was yet to be developed, not just in ThinkUp but in any of the other software catering to the same needs the world over, was exciting and the fact that the ThinkUp community came up with this radically new feature showed how committed they were to the ThinkUp project.
All these reasons together made me pick up ThinkUp as my preferred GSoC project of choice.
Q: What was the best part of working on ThinkUp?
A: I would rate this summer, working for ThinkUp under GSoC, as amongst the best experiences that I have had till now for a plethora of reasons, so much so that it is hard to pick one and say that it was the best part of working. From the thought of being able to contribute to a project of world standards, one that would soon have millions of users, to being involved in its development –everything excited me. It was challenging, something that I hadn’t done earlier, and that made it all the more appealing.
ThinkUp has a really supportive community. Any queries that I had were answered almost immediately. Even before the program began, I was guided on the issues I faced installing ThinkUp. They helped me better understand the requirements of the project and the suggestions and tips that I received, enabled me to improve my proposal.
However, if I have to pick the best part, it has to be the opportunity to interact and work under the guidance of world class mentors. From understanding the ThinkUp architecture to informing me about tools that would make my task much more fun and how to get acquainted with them, I was guided at every step of the program. My mentors, both Mark and Gina, made sure that all my queries and doubts got answered at the earliest. My work was reviewed regularly, at times even without requesting one, and they made sure that I was heading in the right direction. All the discussions that I had with them were enriching and made me think of all possible cases and take a comprehensive view of the situation. Their knowledge of the field was truly phenomenal and their suggestions invaluable. I am highly obliged to both Mark and Gina, for without them, it wouldn’t have been possible for me to complete the project, let alone doing it the way I envisioned it to be in the first place.
Q: What was the most challenging part of working on ThinkUp?
A: My work at ThinkUp during the summer had its own fair share of challenges associated with it. ThinkUp, being a project yet to attain maturity, envisions a very rapid pace of development. There were times when my version of ThinkUp became outdated in a matter of a few days. There were major changes happening almost on a daily basis, some even collided with the functions and features I was using in my own work. This at times, made me redo my work, as the basic framework on which my work was based had changed. My limited knowledge of Git and GitHub and my unfamiliarity with the Model-View-Controller (MVC) architecture during the early phases of the program only added to the challenge.
Moreover, there were high quality standards that the ThinkUp community had set and that had to be ensured. From code style guides to optimization of code, everything just had to be perfect. Apart from the numerous style guide changes that I was suggested, I was at times even told to make the variables’ names more descriptive or to make changes in the way the credits were given in the read me file. At first, I considered these changes as trivial and didn’t fully understand why such improvements were suggested in the first place, but by the end of it I realized how important it was to stick to these rules and how important a part this discipline would play in making ThinkUp reach the heights that it has envisioned to reach.
All this, and more, had to be accomplished within strict time limits and together they made my work challenging, yet interesting.
Q: What have you learned most about working on ThinkUp?
A: Working for ThinkUp this summer has been a rare learning opportunity, one that takes you to wider horizons. Every suggestion that I received from my mentors was a mind opener. In fact, I got loads of them. My mentors helped me out by pin pointing lines of code that could be improved. They helped me work with Git, MVC and the ThinkUp architecture, and in optimizing my code and even in developing tests to check my code thoroughly.
All the learning over the summers, however, was not just restricted to the technical side at all. The importance of communication when working in a professional environment was elaborated. Right at the beginning of the program, I was told to communicate to my mentors on a daily basis or at least once every two to three days. I was expected to report to them regarding every development, however small or large, that affected work positively or negatively. Even things like unavailability to work for a certain duration I was expected to inform beforehand. We made a schedule to talk at least twice a week. As I understand now, communication is extremely important when one works in a professional environment.
Great attention was paid even to the minutest detail of my code. It was ensured that my code adhered to the style guides and that it was optimized to as large an extent as possible. This attention to detail is what I believe shall play a key role in scaling up the project to great heights. It allows other developers to understand the code quickly and continue with its development. Making the code explanatory, using extensive commenting and following style guides among other things, played an important role in success of the project.
Another important aspect that I learnt was time management. In the beginning, we were required to give an estimate regarding the dates by which we were expected to achieve the different milestones in our projects. At midterm, we were asked to make any revisions to our earlier time limits depending upon pace at which our project was proceeding. Maintaining high quality standards under strict time constraints was a challenge, but an important thing to learn, the earlier we learn the better it would be.
All in all, it was one amazing experience, one that I shall surely cherish for a long long time to come. I’m happy that I got the opportunity to contribute to ThinkUp in my own little way and I’m grateful that I had Mark and Gina as my mentors. I hope that this project lives up to expectations and becomes a runaway success sooner rather than expected.

Comments