Skip to content

A peek into the past…

I never wrote many of the weekly blogs as Prof. Ben had asked us to. I’m tempted to blame it on the ‘lack of time’ and take the easy way out. But the truth is that I was never really a good writer, and never seemed to convey all my thoughts properly through my writing. So I always tried to avoid writing as much as I could. But one of my most memorable semesters is just about to get over and I could find no rationale in still hanging on to my childish complex. So I decided to just go ahead and express some of my views through this blog entry.

It has been a very tiring and quick semester, mostly because of 3216. When I first applied to this module, I thought it would be a very technically challenging module and would help improve my coding skills much more.  Although I was very enthusiastic while applying, I was pretty surprised and slightly afraid when I actually got through. I was then thinking that this module required elite coding skills, and being from Electrical Engineering that was something which I didn’t have. But I still decided to give it a try and was hoping for at least a pass grade in the end.  And that was basically how my 3216 journey started, filled with excitement and fear. How it turned out is a completely different story though!

To be frank, our final project was a mess when we started it. The backend was slow, the UI was bad, nothing seemed to work, we kept missing our project deadlines and Prof. Ben was continuously on our back. But I think with every failure, we got slightly better. The amount we screwed up kept shrinking with each submission. In the end, we were able to change our app’s whole design with a new name and a new theme in just about 35 hours before the poster session.  From a place where I was taking three days just to code a single API call, to a place where I could redesign the whole backend structure in about 30 hours, I’m proud to say that I’ve come a long way technically.

But more than the technical stuff, there are a few more interesting things that I would like to talk about based on my experience in this past 4 months.

  • Good backend doesn’t mean good UI. Good UI doesn’t mean it looks beautiful. UI looking beautiful doesn’t mean that it is easy to use. And to complete this vicious circle, being easy to use doesn’t mean that everything works the way it should.
  • We were building a productivity app for our final project and some people didn’t face the problem that we were trying to solve. They continuously criticised our ideas and efforts. But in the end, I learnt that there is no such thing as everyone loving a productivity app simply because everyone doesn’t need it. Criticism from someone not facing the problem can be ignored, whereas criticism from users who could relate to our problem is very vital.
  • Making an app without continuous user feedback is like building a rocket without knowing about the atmosphere. If you are very lucky you might have built the right model and your rocket might not even get scratched. But for our rocket, it more or less just exploded.  After this explosion, all our other iterations went through a lot of user feedback on UI, purpose, solution, etc., and our rocket then grew more stable.
  • There is no such thing as a perfect version for any app. We made around four complete iterations for our final project. With each new iteration many problems got solved, but we kept finding ourselves in new and more complex problems. An app’s improvement cycle is an endless road. You can never solve a problem perfectly because there always is a better solution. What makes the difference is, if you are able to reach that better solution faster than the others.
  • The existence of a mammoth competitor app doesn’t mean that your app will fail. It just means that you need to look beyond the competitor’s perspective, and try to reach that better solution before they do.
  • A good team comprises of elite programmers and elite designers. But a great team consists of people who are willing to shun their ego and would go to any lengths, just so that the app solves the problem even slightly better than it previously did.
  • Building an awesome app just solves 20% of the problem you are trying to solve. The rest 80% is how you actually take your app to the people who face that problem and make them use it. And this 80% is the most difficult part, as no one teaches you how to do it right. Everyone just shares their marketing experience. Just blindly following them doesn’t mean that it would work the same way for you too.
  • You are your first and best critique, because only you know what exactly you were trying to solve. After building the app, if you don’t see yourself using the app for the purpose you created it for, then it surely means that the current version is a failure. It’s time to go back to the drawing boards to iterate.
  • A ‘cool’ feature may not always be the ‘best’ feature. We tried to introduce features like ‘content aware swiping’ and ‘long touch movement’ in a web app. We were really proud of ourselves at first. But users are accustomed to a particular way of browsing their web apps. In the end, our ‘cool’ features ended up confusing our users and hindered even the normal processes. So of course, we had to remove them in the next iteration
  • Programmers under estimating the time that they need by half, is a fact. But unfortunately this is true only when you are working on something that you already know what the hell to do. If working on something you don’t have the slightest clue about, please multiply the time you ‘think you need’ by at least 10 to even come close to the actual time it takes. This had a deep impact on all our deadlines. We usually submitted everything late. But then I learnt that working with ‘micro-deadlines’, made things much better. Logically, it might not reduce the total time needed to complete the code. But completing micro-deadlines at smaller time intervals means that you are able to conquer more deadlines within less time, thereby increasing your morale. And a good morale is what keeps your patience going  when you are searching through pages and pages of google results to learn something that you don’t have the slightest clue about.


NUS to me, is not about learning how to succeed. It is about experiencing more and more failure and that is what happened to me in 3216. For only a person who has experienced failure, would realise that success never lasts long. And only a person who realises that, would know that failure never lasts long too.

These were just a few of things that I remember as I write this blog. This is just my perspective based on my experience, although tomorrow might be a new day with new perspectives. That is what makes life interesting to me.. looking forward to the next day, completely uncertain of what I’m going to learn or experience!

I belong to the reserved bunch in class and was never really very vocal. But I’d like use this post to thank Prof. Ben for 3216 and for giving me the opportunity to be a part of it. It really took my NUS Experience to the next level. Until now I was basking in the safety of the NUS compound, whereas Prof.Ben guided me near the wall and helped me jump and take a peek at the world outside.

Another person that I would like to thank is Kok Wee. I look at him as the ‘silent mastermind’ behind 3216. I’m pretty sure he is technically very sound. But when our first project report bombed and we had to have a special meeting with him, I think his guidance and humility were the main driving force that put us on the right track.

It has been my pleasure, an honour actually to have been part of this module. Prof. Ben asked this question first about whether we were a lone nut or not. I had a confusion of who exactly I was, back then. But now I know. I am a lone nut.. have always been one and will always be one too!


Half way mark..

The half way mark for 3216 is just around the corner, and I think I’ve come a long way.. From knowing nothing about html or php or sql at the start, then to being in-charge of the server side in my first project and to being singly in-charge of the rest api and all the backend logic in the html5 project, I think I’ve learnt a lot.

I usually am a lone bird, and believe in doing things alone. I think the reason I usually preferred to doing stuff alone was because of the fear of me screwing up others work or of others screwing up my work.  I don’t know why, but this had sort of become my obsession from childhood, to try to do everything single-handedly. Even in my other “group projects”, I always preferred doing my part of the work alone. But 3216 sort of forced me to do the opposite, and  the earlier perception of mine did change a bit after these 2 months. I’ve now stopped over thinking too much about burden and my ethics and other stuff, and have started enjoying shared pain. There is just so much to learn from people around me, technically and psychologically, and with the ever looming deadlines, I really couldn’t afford being a lone bird and I do enjoy this change in me.

As our team embarks upon this quest of crossing our final hurdle tonight, I would just like to say one thing to the other teams, the race is ON guys and we won’t give up easy! All the best guys!

CS1 – Get Help!

I found a few issues with the UI design:

I’m not quite sure whether the tabs ‘New Project,Recommendation and Overview’ on the top, are subsets under the profile tab or are separate tabs by themselves. They seem to appear when the user clicks on the statistics tab too. So,if the developers intended them to be separate tabs, they could have followed the same slanted style for them too. If the developers intended them to be subsets of the profile tab, they could have placed it differently. The reason being that, now in the home page the subset tabs are placed in front of the main tabs which might lead to some confusion for the user. The tabs seem to be a bit misleading.

I’m not sure if bringing the user directly to the ‘New Project’ page is the best way to go. The reason being that, I would spend more time tracking the progress of my project than creating a new project. I might only create a new project once in a while, but I might need to continuously monitor the progress of my already created/uncompleted projects. It would be better if I could directly see my ‘Ongoing Projects’ page instead of the ‘New project’ page, as soon as I enter the app.

The check boxes in the ‘New Projects’ page, seem to overlap each other. 1st and 2nd option seem to be contradicting each other whereas the 1st and 3rd option might complement each other. So instead of just directly converting all the check boxes to radio buttons, the developers could think about the contradicting and complementary options and come up with a new layout for that part.Maybe the first 2 options could be radio buttons and the third one a check box, but the check box only gets activated for use when the user clicks the first radio button.

The application name could have been mentioned somewhere in the app. The additional info div on the new project page could have been aligned better.

The red colour used for the buttons seems to jump out at you. They could gone with a colour scheme and button design, more in line with the facebook UI. That might make the facebook users more at ease while using this app. Is the key to a good UI making it more similar to the native platform or is it to make it more attractive by itself ? Though this is debatable, I think that as long as our app resides within another application it is always good to follow the design principles of the parent application.

Somehow the SQL queries seem to be printed in the home page. Maybe it is because the developers were testing the app when the screen shots were taken.

The ‘help initiator’  creates tags for his/her help request.So, it would be better to have a search feature in the Overview page. The reason being that, if I have a skill at my disposal, I could just directly search from my feeds regarding who needs help in that particular field rather than scrolling through pages of unrelated help requests. Maybe the developers could take it to the next level. When I first enter the app, I would enter tags related to me or what I can do ( which can be updated later too). And using this info, maybe the app could pull just the helps that match my user tags, in a separate tab called ‘Related to you’ or something.

In the project page, in the ‘Helpers’ division, the same photos seem to be repeated even though there are more people helping. This might not be a UI error, maybe just a small logical error.

I do like the badge system and the nice names given to different achievers. I think it might spur some competitive spirit among all the users.

These are some of my views after first glance at the screenshots. Maybe the developers could design the app to be more easier for tracking unfinished request rather than creating new help requests, because that is what the users are going to spend more time on. I think maybe that is why the team had to redesign their UI again. Overall, I think the idea seems pretty good though.

Night Stand.. The Alarm clock with a difference

Night stand is basically an alarm clock app for the IOS platform. After having listened to the team’s presentation, I was doubtful of how much really an alarm clock could do, and tried out the app on my Ipad. But as I began to use the app, I could relate more to the presenter’s point of view.

There are three main points I’d like to reiterate from their presentation.

1. The pre-built sounds and pictures were aesthetically pleasing. Especially the bird chirping sounds and the fireplace sound effects were brilliant. I would love to wake up to sounds like that everyday. An issue that I found was that when the app runs under a locked screen, the alarm clock doesn’t switch on the screen but just the sound. I think it would be better to involve the screen light too in the quest to wake us up.

2. The UI seems too cluttered with a lot of info. And this is something I really don’t want to look into as soon as I wake up. There are too many tabs with RSS feeds, Facebook and  twitter feeds. And on top of it the app not only shows the weather now, but the forecast for the next few days too which again takes a lot of space.

3. The app is a bit unstable at times. It crashed once when I was using it, and this repels me a bit from depending on it too much to wake me up.

Some of the other points that I would like to add on :

1. Switching off the alarm clock  seems to be difficult at times. The icon to switch it off is really small, and this might frustrate you a lot when you wake up. And after reading some reviews, I found that many people faced this same problem.

2. The UI design seems a bit confusing. They seem to be caught in between an alarm clock app and a news reader app.  And so I feel that they’ve not achieved their potential in either of the areas. For example, if they want it to be a primary news reader app, I don’t know why they have the big time window which uselessly occupies one fourth of the screen, leaving lesser space for the feeds. If they want it to be an alarm clock, I wouldn’t really want to stare into so much info as soon as I wake up. Or maybe they could integrate both, but in separate screens rather than on a single screen.

I personally think that since they started this app out as an alarm clock and have made it pretty good, they could concentrate more on this sector and make it even better. I prefer not to have to read so much when waking up. Rather with the great voice synthesis technology nowadays, the clock could greet us with minimal info with voice. For example, the clock could greet me with something like ‘Good Morning Aravindh. Temperature now is.., weather expected to..And maybe add on a joke, interesting fact or important news headlines that could be customised to the user’s preferences’, as soon as I turn the alarm off. Especially while waking up, I would prefer the info to be crisp and short and being a lazy bug I would prefer if someone told me the info rather than me reading it.

3. When I was searching through the app store, I found many apps with a variant of the name ‘night stand’, some of which were free and had a higher user rating. This again shows the original ‘Night Stand’ guys, the reason to innovate fast and in a more focused manner.

Random musings…

This post is not really related to what I learnt last week or how much work I have or how fast 3216 made me learn stuff. We all knew that this is what would happen when we took up this module, and I feel it is not that interesting to discuss about it. So in this post I’ve chosen to share with you all, some of my views on a few topics discussed in class last week.

One of the very interesting videos shown was about how a revolution starts. Well, the first thing that struck me when I saw this was not whether I was a leader or a follower, but rather how much similar we were to our animal friends. Although we boast of being so very mentally evolved, the crux of our social fabric is still very primitive and similar to any other species on earth. And the narration was intentionally similar to that of Discovery channel’s, making this fact all the more obvious. Unfortunately on the downside, this social make-up is what spurs us to join pointless riots and not only destroy our lives but others too. But, moving on from this thought…

Though at the end of the video we all wanted to be the lone nut guy, the truth is that being a lone nut means rock bottom in our social hierarchy. Whereas being a leader means that you are very close to the top. Many of us who want to be the lone nut, think that doing so would give us more freedom and will facilitate doing things our way. This is the idea behind many entrepreneurial aspirants (including me).  But, does being a lone nut really give you the freedom to do things your way, or is it just that we make the society’s way our way ? Many of us become the lone nut after seeing huge companies like google or apple, and seeing how they control market needs at their own will. But the truth is that only a leader can afford to that, and not the lone nut. Being a lone nut means that your ideas don’t really matter, but rather how,when and where you execute it.  For example in the video, the idea of dancing isn’t really an innovation. In fact that is how most of us jump around in discos. But the person’s execution of the idea in that particular boring place without any shame, is what made him what he was at the end. Another interesting idea that the video portrayed was that, being a lone nut doesn’t mean that you make your own decisions. Every lone nut always wants to be the leader. Having said that, embracing your followers and giving them ‘what they want’ is what makes you a leader, and not really only your idea. I say this because, the second guy was as good as the first person in dancing and could have started his own ‘revolution’ . But he rather chose to join the first guy, mainly because of the leader’s attitude towards him. So being a lone nut and having an idea, we shouldn’t just bank on that idea for success, but rather work on what we do with it and how fast and perfectly we do it.

Another interesting thought was whether we should share our ideas with other people. The ideal answer always seems to be that we should share it with ‘trustworthy’ people. But practically who are really the ‘trustworthy’ people. Well, we could say our parents and close friends are trustworthy. Before going deeper into this, I would like to talk about why we need to share our ideas. There are two things that we hope for while sharing, assurance and criticism. So given that we all want to share it just only with the trustworthy people viz. close friends and parents, would mean that we only get assurance irrespective of how the idea is. So I thought about why many of us say that we should share our ideas only with the ‘trustworthy’ people. Is it really because of our fear of others stealing our idea ? Or is it just that we secretly hope that there are only good comments about our ideas and at the same time we also have the satisfaction of sharing our ideas around ? Hmmm, there are no right answers to these questions. Everyone has a different perception of why they do what they do. And I use the word ‘perception’ , because many of the times we ourselves actually don’t know why we are doing the stuff we do. We just do it because we have to.

This post has been very random and incoherent. Sorry for that! But these are just a few of the random thoughts that cross my brain when I marvel at the people and world around me. See you all today in the evening!

CS3216 – a new beginning, a new challenge…

As I write this post tonight, my mind boggles with fear and excitement. When I first came across this module, I was doubtful if I had it in me to sail through smoothly. The thought slowly changed into reluctance, the reluctance changed into fear, the fear changed into confidence, and here I am, eagerly waiting for tomorrow’s lecture.

I enter into this module not with many expectations, but with only one that the teaching staff continuously put up challenges without showing any mercy! I myself might not be able to complete all the challenges, but I don’t care, since I’ve taken this module with the main aim of achieving an exponential learning curve where in  grades take a back seat.  But at the same time, I hope that we are not just left stranded in the middle of the sea without knowing any tools to survive. I hope that Prof Ben is there guiding and streamlining me not just throughout this module , but for the rest of my life as well! I’m pretty sure that this module will bring out the best in me and I hope to bring out the best in my team mates as well, as we set on a quest in making the ‘next big thing’!