It is a passion of mine to design, create and refine software applications be it for research, for improving quality of life, or entertainment purposes.
I graduated from Ngee Ann Polytechnic with a Diploma with Merit in Information Technology, Solutions Architect specialization.
My mantra in life is to always improve myself, to learn from others and to be gracious.
In my free time, I like to read books, articles & webcomics. I also watch anime.
Me and two of my classmates discovered vulnerabilities in Ngee Ann Polytechnic’s (NP) E-learning portal, Blackboard Learn – Mel while working on a school assignment that required us to find vulnerabilities in any software / hardware.
Together with another classmate, I documented the vulnerabilities, developed proof-of-concept attacks and demonstrated them to our supervisor and NP’s administrative staff while recommending countermeasures. I'm not at liberty to elaborate on the vulnerabilities but they were severe enough such that they can be exploited to obtain the credentials of lecturers and other students easily.
This project taught me the value of IT security as I observed first-hand how one vulnerability (or a combination of vulnerabilities) can easily cause grievous harm to any organization. All of us definitely learnt not to be complacent; everyone had preconceptions that the system would be infallible before embarking on the assignment and we were shocked (and a little amused) when we discovered the vulnerabilities.
For my final year project, I decided to develop an Android mobile application that improves the lives of the less fortunate in my community. Together with 2 other like-minded individuals, Jeremy Lim and Jian Yu, we embarked on TrAVEl as our final year project.
TrAVEl is an Android application (app) to help the visually impaired and elderly navigate Singapore using public transport. It automatically plans the best route based on the starting and ending points provided. It provides real-time updates even if there are other apps running to ensure the user is kept updated on where he is, when the next bus is arriving and also informs the user when to board/alight the bus/train through notifications. The route is recalculated if the user missed the stop.
The user experience (UX) is both visually and aurally designed for the visually impaired and works well with Android accessibility features (e.g. Talkback) if necessary. There is also a help button at the same location on every page to guide users if they are disoriented. Testing was done with the visually impaired guides at Dialogue in the Dark (DID) to ensure satisfactory UX.
A key feature is the speech-to-text recognition of a large dataset of Singapore places such as Jurong East, Bishan or even Bukit Chandu which makes it a lot easier for visually impaired to use (compared to existing apps). The app is also able to recognise speakers with different accents and pronunciations of most Singapore locations.
The development of TrAVEl has also led to the creation of spinoff apps, such as a bus timing monitor for the Pebble smartwatch which is also visually impaired-friendly, and a bus location viewer which uses live data from users of TrAVEl to display the locations of buses. It has also been covered by The Straits Times and won our team the Ngee Ann Polytechnic Outstanding Innovation Team Award.
After our final year project, we have worked with Ngee Ann Polytechnic (NP) and DID to refine the application. Since then, the team has handed over the project to NP publish and provide maintenance.
I am very thankful to NP, my advisors and last but not least my team of friends who made this project a success. It is my wish that the application would be helpful to the visually impaired and elderly community, especially since I have friends and relatives who fall in either category.
For a games development school assignment, I developed a parody of Runescape Classic with 2 classmates. Features include fishing, cooking, mining, trading, equipment, eating, map generation, mob generation, fighting and quite a number more such as quests.
The game basically leads the player from one quest to another, ultimately culminating in a boss fight with a dragon.
My first exposure to 3D game development, I created a 3D game using GameMaker with a classmate. Features missions, relatively realistic archery (takes wind and heartbeat into account), skills etc.
This was despite the fact that I had little to no prior experience with either 3D game development nor GameMaker Studio and that we were expected (and advised) to only develop a 2D game.
I had wanted to develop a 3D game to challenge myself as I had already done various other 2D games previously and also because I also believed that the game idea of archery simulation would be better served with a 3D perspective than a 2D perspective.
It was tremendously satisfying when we surpassed everyone's expectations with the quality of the game, especially considering we did it so quickly and with all the GameMaker quirks.
Me and one of my classmates decided to take our Windows Application Development assignment to the next level and we created a multiplayer top-down shooter (which can support up to at least 8 players). Has multiple classes (specializations) with different abilities (such as turning invisible) and weapons and various other features like scoreboards, primitive map editor etc. Delta timing was also implemented to ensure smooth gameplay.
This assignment was especially memorable as we were the only team that conducted a live playtest when we were presenting to the lecturer and the class. Seeing everyone enjoying our creation made all the effort worth it.
During my first semester at Ngee Ann Polytechnic, I joined the Splash Awards competition with two classmates. As nobody in the team had any prior C# knowledge (and we only had a bit of coding practice), I had to learn C# and build a game with Silverlight in 2 weeks from scratch on my own. My effort paid off and we clinched the 2nd runners up position.
In addition to learning C# and winning 3rd place, the experience was unforgettable as it was a personal life lesson on the value of passion, focus and determination. The game is on the Windows App Store here.
During web development class, me and a few friends discovered a security vulnerability in a website belonging to our lecturer which he was using as an example. This vulnerability allowed us to change the image on the website and we thought it was a great idea to photoshop our lecturer's face into a movie poster and put it on the website.
This snowballed into an entire photoshop portfolio featuring him, Mr. Anand Ravi Deshpande. The full portfolio can be found at http://tinyurl.com/photos-of-mr-anand.
Note: This was a harmless prank on a website used for purely educational purposes; Mr. Anand was greatly amused and not insulted by the prank. On our graduation day, we gifted him a collage poster of these photoshopped images with our signatures, much to his and our amusement.
I created this Windows application because I wanted to "talk" to my friends while gaming, yet I did not have a microphone. I thought it would be cool (and funny) to speak to them in Google Translate.
More at the GitHub repository for this project:
A suite of scripts to automate the filling of online forms such as Google Forms, SurveyMonkey etc. Allows me to randomize results by regex, set percentages for MCQs etc...
As you may suspect, I am not going to make these scripts public because these scripts have the power to perform Denial Of Service (DOS) attacks on a form and can easily render any form's data useless in a few seconds (especially for SurveyMonkey; a DOS on SurveyMonkey would take less than a second because it enforces a limit of 30 survey results for a free account).
These scripts were developed for experimental purposes only and have only been used on sample forms.
Imagine yourself standing in front of the world's grandest scenery. In front of the grand canyon. In lush forests. Accompanied with music.
Scenery Traveller teleports you from your home into the beautiful parts of the world, as if you are there amongst the foliage, or at the top of a mountain.
More at the GitHub repository for this project:
An editor for this project is also available at this GitHub repository:
Save Our World Services, or SOWS for short, is an online portal for services and products by companies in Singapore.
Together with another technology developer, we revamped their existing website and content management system (CMS) using Bootstrap as our front-end framework and Laravel as the back-end framework.
Because the start-up company was undergoing a business overhaul, much of their existing website and CMS had to be scrapped; everything had to be redesigned and recreated from scratch.
The project was fraught with scope creep and changes, so much so that the founder of SOWS personally apologized for it. Fortunately, me and my colleague managed to pull through. We had delivered:
- A relatively clean and responsive online portal that acts as a listing for services. Users can login to rate / favourite services, while companies can update their profile as listed services are linked to an existing company in the system.
- A content management system for the business' employees to be used for managing the services listed on the portal.
I am proud to say that the founder of SOWS was very satisfied with our work and astounded by our work ethic considering that we were unlikely to (and did not) get paid for our efforts.
All in all, it was a very tough experience because we had to rush so much work out in so little time but I learnt a lot through the process and from my colleague on both front-end and back-end development.
Also Can! is a English to Singlish translator mobile application developed for Ngee Ann Polytechnic. This application syncs the Singlish dictionary with a server so that when a translation is corrected by one user, other users also get the improvement. There is a versioning system which allows the admin easily remove/ignore entries that they believe are spam.
It can be downloaded here on the Google Play Store.
Bookshelf is a responsive web application created for users to keep track of what they read, or to take notes. What it does is it allows the user to summarize their reading material and tag them for future reference. Or they can just tag them for future reading. The main idea is to provide a platform for the user to keep track of what he reads and allow him to make notes / summarize if he wishes so that he can remember the more important points better.
Bookshelf has various features:
- CMS for articles; add, edit, delete, search by tag/date/title/content, pagination etc
- Uses Material Design (by Materializecss, but animations are changed to use CSS to provide smoother animation on mobile)
- Other little usability nuggets like automatically populating the add article input fields upon pasting in the article URL (e.g. filling in the title & description with the page's meta tags), Markdown for description/summary etc.
I was hired by Ngee Ann Polytechnic (NP) with a group of other students to develop Photobooth, a web application that allows the user to take a photo of himself, frame it (from a wide range of frames) and give it a caption (which can be dragged to position it). The web application is usable on a computer, tablet or a mobile phone. The photo taken will then be displayed on a large screen for everyone to see.
Photobooth was used by NP School of ICT for Open House 2015. It was very satisfying to see the software run without a hitch on the day itself and to see everyone using it without complaints. To see their faces light up in amusement as their faces appeared on the screen was very fulfilling.