It was a bold decision to take this module in the first semester of my second year, and I certainly do not regret it. Not many people are given this opportunity and I certainly learned much much more from this module than all other modules combined.

That being said, I am probably very screwed for finals. The first paper is ~4 days away and I’m not prepared. At all. (Yet I’m still writing this post because this is how much I appreciate CS3216)



Never be over ambitious.

This was really the primary takeaway from this first assignment. Another would be to manage team dynamics properly. There wasn’t much team structure in this first assignment and I thought part of it was because it was poorly managed.

The product itself was a simple idea, match NUS students together in an anonymous chat. Thinking back now, what was the entire point of this? Does it really help students meet, and what problem does it solve? This idea was clearly not very well refined.

Technically, it gave me a (painful) insight into React.js and the different Flux architectures. But given another opportunity I would have chosen something simpler, or simply do Vanilla React.js to facilitate the learning curve.

Of course, learning fast is one of the main goals of CS3216. But it is important to set some clear boundaries of what are our limits and make appropriate adjustments if things are not working out.

Seminar on Medium

Simple UI doesn’t mean fluid UX.

Assignment 2 allowed me to develop a keen eye for good products and of course critique bad ones. We chose to critique Medium. Initially I thought that we’re outta our minds.

Medium is so well designed and thought out. What is there to critique?

But at the end of the day, I’m glad that we chose a difficult app to critique. It shows us that even good apps have their flaws and weaknessses. The ability to nitpick on the fine points also allows us to do the same for our own products.

It forces yourself to think about what the user thinks. As very technical people, our ‘user experience’ is often clouded by our own knowledge of technology. Users are stupid. It’s tough to place yourself into their position.

This assignment taught us how to be stupid, somewhat. (Lol.)



Niche apps don’t get as much attention.

This was one of the more niche projects that I’ve done. The grades for this project was not up to expectations at all and I think it’s largely due to the fact of it being very niche.

Not many people would appreciate reading server logs from their mobile phones unless they are DevOps Engineers or really technical people. Given this fact, it is difficult to convince people to use such an app.

As always, I worked on the frontend using React.js and it taught me how to appreciate Flux architectures more. Although the focus was on a mobile web app, we built it on Ratchet with a very stock design. On hindsight, more could have been done to include branding. The inital plan was to come up with a functional MVP which serves the purpose of the app instead.

Despite a really poor grade, there were still lessons learnt from this assignment.



This was where the bulk of learning came from. Taking in lessons learnt from the first three assignments, this was a very well refined and validated idea. As the Product Manager, it has also given me the opportunity to negotiate, network with people, and manage a team.

Talking to People

It takes a bit of getting used to talking to strangers about an idea, and asking for feedback. It started with talking to people along AS6, to talking to even more random people at UTown to get photographs.

It allowed me to step out of my little bubble and discover things that I never thought I could do. It also removes the awkwardness that was present in me.


Our product was built on Ionic framework, which made this very easy to iterate and deploy on both iOS and Android. Angular.js abilities have also up-ed by quite a bit and I’m more familiar with SPA concepts.

Next steps would definitely be development on Native platforms, or a better Web platform.


Maketing was part of the grading scheme, but lots of it was done for the product because we take pride in what we do. Facebook page, posters, and partnering up with the right people has led us far and the results were pretty satisfactory.

Winning STePS

Yes, not to mention, we won the Best CS3216 Project for School of Computing’s Student Term Project Showcase. 🙂 It was really tiring since we had to do our sales pitch non-stop. I lost my voice momentarily after STePS was over. It was insane.


Overall we’re very satisfied of how far Letterbox has progressed from just an idea into an actual project. Hopefully we can take this to even greater heights! 🙂

CS3216 has been the main highlight of this semester. The next year would be a total different ball game in Silicon Valley and NOC. There’s much more to learn and experience. That being said, Letterbox will not die, and will continue to grow into something that we can be really proud of.

Cheers. 🍻