It is overall a simple implementation if you follow the video, many thanks to the awesome instructors and examples. I took 3 days instead of the stipulated 3 weeks to finish this site, with most time spent on putting together portfolio projects to showcase.

This is a free online course, feel free to try it too.

Intro to Cloud Computing: Google Vision API

June 2017

In this assignment, I set up a local environment to perform face detection with Google Cloud Platform's Vision API. Utilizing node.js was pretty straightforward. Setting up in Java took up much more time.

To set up in Java, I to have a Service Account Key, and installed Maven plugin + Google plugin on Eclipse to get the program to run.

What I find more interesting is to test how well Google's face detection is working currently. The following screen capture shows my results:

[2] Is there a limit to the number of faces that can be detected? Seems so.

[3] To what stage is a face, a face?

Intro to Cloud Computing: Pi Calculation

June 2017

The program was on Cloudera, accessed by Oracle VM's VirtualBox. The codes were built in Java, and the compiled codes ran on Hadoop to test the accuracy of Pi.

Steps:

1. Generate numbers from GenerateLargeRandomNumbers.java program.

2. PiCalculation.java program does map reduce methods to calculate Pi.

The general idea is that if you have a circle in a square and you throw darts randomly at the combination, you will have enough darts that would hit inside the circle, and outside the circle but in the square.

With that in mind, (count of darts in the circle / total count of darts in the square)* 4 = estimated pi.

Mobile IoT: Calling Philips Hue's API

February 2017

This is an application built with node.js, accessing the Philips Hue API to control the lights to switch on/off, blink etc.

Mobile IoT: Building an Android App

February 2017

This is a mobile calculator application built on Android.

The program logic is at MainActivity.java. The calculation expression logic leverages an existing exp4J library.

CMU-SV: Intro to Cloud Computing

Summer 2017 (May-Aug)

In this 6-people group project, we were tasked to create something that utilizes cloud technology.

Business Problem: My group loves food and we thought that there is a business opportunity for food trucks. Currently, consumers know that there are food trucks around, but as it is mobile, it gets cumbersome to keep track of the location of those trucks everyday.

Solution: The vision of our app has three stages. First: Enable consumers to find food trucks. This can be done by levergaing on existing APIs like Yelp's API. Second: Enable food truck owners to update their business pages on our platform. They could update it manually, but ideally, it should be automated to keep the information more up-to-date. Potential sources of information could come from crawling through business pages on twitter/facebook, or pick up location updates from the business mobile devices assigned to their truck drivers. Third: Develop a community for food truck lovers and drivers. Having social interaction would encourage engagement, and potentially lead to community activities like gathering favorite food trucks at popular events.

Technology Used: iOS, AWS (API Gateway, Lambda Functions, DynamoDB).

Areas I Worked On: Team Management, Product Management (roadmap planning and execution), Development of Lambda Functions in Node.js for DataQuery, Configuration of API Gateway, and Step-by-step documentation write-up.

CMU-SV: Mobile IoT

Spring 2017 (Jan-May)

In this 8-people group project, we were tasked to create something that links up "smart devices" to our mobile phones.

Business Problem: My group searched for a valid problem to solve, and we found that current smart devices that uses NLP (i.e. Siri, Cortana, Google Now) did not recognize the context of emotions. This is backed up by researches (article) who found out that when health complaints that consists of psychological distress like "I want to commit suicide" are made to personal assistances, they receive responses that are varied versions of "I don't understand".

Solution: Create an app that would take in emotion input to output appropriate responses. For our prototype, we took in input from 3 sources: 1. camera image -> facial emotion recognition, 2. voice-to-text -> emotion recognition, and 3. emoticon choice -> emotion recogniton. Out output would be in a form of music, accompanied with effects from mood lights. Potentially, the app can be further developed after the MVP to learn and respond in ways that are customized to each individual.

Areas I Worked On: Team Management, Product Management, and Development of Phillips Hue API using Node.js, hosted on localhost.

For more information, click on the link to this blog post to find out more details (including presentation slides and demo videos).

CMU-SV: Software Engineering Management

Fall 2016 (Aug-Dec)

In this 5-people group project, we were tasked to build an app together.

Business Problem: The problem we identified was regarding brand awareness for self-improvement. Many times people face difficulty having a feedback loop on areas that they would like to improve on. For example, a person may want to improve his/her public speaking skills, but after every presentation, he/she may not be able to gather the feedback he/she need as people tend to be polite and may not speak out their mind.

Solution: We want to build a platform for positive self-development in a safe environment. The app would allow you to input areas you would like to improve on, and only people who are located nearby or have attended the same event could feedback accordingly. My team built a prototype for our classmates to test out.

Technology Used: As we wanted our solution to be accessible by all types of mobile devices, we built our app with node.js, interfacing with ionic2 so that Windows phones, iPhones, and Android Phones can all access our application.

Areas I Worked On: I was the Scrum Master of this project. For development work, I did up the profile, search listing and rating portion of the app. The codes I worked on were in html, typescript, and scss.

For more information, click on the link below to view the introduction video:

Quickbooks Connect Hackathon 2016 by Intuit

October 2016

In Nov 2016, being excited to be relocated in the Valley to pursue my Masters' program, I decided to take part in Quickbooks Connect's hackathon with my schoomates. The topic was to create an app that saves a SME/non-profit organization's time or money by solving a unique non-profit problem.

Business Problem: One huge activity that non-profit orgnizations indulge in is to do fund raising. This is important for them to carry out their daily operations and to provide assistences for their beneficiaries. However, fund raising activites can be time consuming and largely dependant on help from volunteers.

Solution: Among the many API partners that presented on stage during the hackathon briefing, Jibo stood out for our team. Jibo is a social robot that is designed to be likable with it's animated movements to interact with others. We decided to test out a simple idea of setting Jibo up to ask for donations for non-profit organizations. The following is our process flow:

Areas I Worked On: Designing the process flow, coded with Square API, Quickbooks API, and tested the API calls with Postman collections.

For more information, click on the link to this blog post to find out more details (including presentation slides and demo videos).

HPC Quest 2005 by A*Star IHPC and IBM

June 2005

In 2005, I took part in this competition with a team of 3 people during the June holidays.

Business Problem:
Our project idea is that if we can find text in word documents easily using CTRL+F, we should also be able to find words in libraries of voice files similarly.

Solution:
We utilized Fast Fourier Transformation algorithm to apply to voice files to find words and their location in audio books that sits in audio libraries. This huge computation means we had to leverage on super computers or parallel computers. My team of 3 borrowed laptops from my school to create our parallel computing cluster. We built our prototype using C++ and ran our program on Linux Ubuntu. The results we presented was at >90% accuracy.

Areas I Worked On: Researching on Fast Fourier Transformation and building parts of it in C++.

Robotics: Micromouse and Roboracing

2003 - 2006

When I was in high school and junior college, I used to be very active in robotics competitions. In 2003-2004, I took part in micromouse competitions, and in 2005-2006, I took part in robo-racing competitions.

Micromouse (2003-2004): For micromouse competitions, the aim is to navigate a "mouse" to reach the center of the maze as fast as possible to attain the "cheese". In order to win this competition, there is a hardware and software component to it. For the hardware component, we would need to configure the mouse to sync up with the embedded systems, motors, and wheels to move in straight lines with appropriate distances, and turn exactly 90 degrees when it needs to. For the software component, I would set up an algorithm to increase the probability of getting the mouse to reach the cheese as soon as possible. We would not know how the maze looks like until the competition begins after we submit our mouse and algorithms.

Roboracing (2005-2006): For robo-racing, the aim is to make the robo-racer race on the track as fast as possible. As the president of the robotics club, I led my club to clinch one of the most awards it received in school history.