Welcome to my site!

  • Developer

  • Learner

About Me

I am currently pursuing a Bachelor of Computer Science Degree at The University of Waterloo.
I always look forward to coding with a team full of passion and creativity.

Cheng Peng

Developer & Team Player

I love Hackathons and new Challenges ! My interest in various areas of software developement has given me a wide exposure to stack development, design patterns, different languages and algorithmic optimization. I strive to become a full-fledged developer with a solid understanding in software development.

Here are my projects and resume.

Get in touch!


Here are projects that I have worked on.

Project Details

    It Is Time YO

    Date : November 18, 2014
    Creation : YO Challenge
    Categories : Web App

    The Challenge

    First time using Django, postgresql and the YO api, we wanted to make a web-app that allowed users to set a simple and quick reminder for the near future (up to 24 hours). We needed a responsive backend, smooth-interface and high quality app that was fit for release.

    The Solution

    Heavily relying on the Django, Heroku and Postgresql documentation, the back-end database was finally ready to accept YO usernames, and a time in { Hours, Minutes }. Upon insert, the user's time is adjusted depending on the current time on the server as the countdown begins. Using something similar to a Cron Job, the database polls every 10 seconds to sent a YO notification whenever a row in the database has expired, deleting it to avoid bottlenecks. After some fiddling with Forms and the Django infrastructure, the front-end was completed as well.

    The Result

    Barely managing to hand-in the challenge on time, the app was finally completed with satisfaction.
    Next steps: Clean-up code and remove security threats to Open-Source. Added dynamic accounts on YO to send unique reminders!

    Twilio Plays 2048

    Date : September 21, 2014
    Creation : Hack the North
    Categories : Web App

    The Challenge

    At the biggest Hackathon in Canada, we had 36 hours to develop an app that will stand out among 1000 hackers. After some brainstorming, our team decided to create a spinoff of the game 2048, with a twist. It was going to be based on the multiplayer game "Twitch Plays Pokemon", but through the use of SMS commands. The goal was to allow offline players over the world to play together and enjoy the cooperative challenge with a cell phone's SMS.

    The Solution

    Using the open source code from the creators of 2048, most of our hack would be back-end code that managed the SMS and the filtering of its data. Using Twilio's REST API, the back-end could start recieving GET requests upon SMS. Then, Node.js powerful frameworks like Express or Socket.io, would accept the requests and filter them to prevent spam and change the game state.

    The Result

    After a tough 2-day marathon, Twilio Plays 2048 was finished, with pride. In fact, our team won the 1st place api prize for the Best Use Of Twilio!
    Next steps: Hook up a database to keep the game state when restarting the server. Give MMS feedback so game will feel real!


    Date : December 24, 2013
    Creation : Facebook Hackathon
    Categories : Web App

    The Challenge

    With 24 hours on the clock, my team needed to create a podcatcher web app that could search, subscribe and listen to podcasts. The goal was to allow users to login via Facebook and keep their podcast subscriptions for another day.

    The Solution

    Using the itunes API for searching podcasts, and the popular language PHP, we could provide podcast channels. Populating the SQL database, each user had their podcast channels saved for next time. Creating a playlist, user could save podcasts and listen to them in any order. With a bit of extra time, we created a podcast player to allow seeking and volume control.

    The Result

    After a tough 24 hour marathon, the PodGenius web app was a success.
    Next steps: Add the ability to filter using genres or categories, use a more efficient algorithmn to search itunes, and pre-buffer each podcast for performance.

    Canadian Abroad

    Date : March 03, 2014
    Creation : CODE Hackathon
    Categories : Web App

    The Challenge

    Competing with Canadians coast to coast, this 2-day hackathon required us to use given federal government data (www.data.gc.ca). The theme was to solve problems and increase productivity through the use of open data. After careful consideration of the theme, my team decided to develop Canadian-abroad, a web app that allowed Canadians to check travel advisories for each country, and how to get to the nearest embassy.

    The Solution

    There were two sets of data available: travel advisory and and foreign embassy. Both were in JSON. For a good UI experience, we used an interactive map that had features like zooming, colouring and toggling. To allow the user to filter different countries, we used elastic search that also updated the map status. Languages we used included JavaScript, Jquery, and Node.js.

    The Result

    The 48-hour hackathon was a long one, and in adding feature after feature, Canadian Abroad was essentially completed.
    Next steps: Develop a better looking UI, show multiple embassies at once and mark them, notify the user if the the user's current residing country is dangerous.

    Wifi Remote

    Date : Febuary 16, 2014
    Creation : PennApps Hackathon
    Categories : Android App
    Website : Github/PennApps

    The Challenge

    One of the biggest hackathons around, PennApps is famous all around. As first-timers, I was nervous and ready to code! My team decided to create a mobile sandbox, that allowed users to create a wireless controller over wifi for their own purposes!

    The Solution

    We chose Android since it is a popular platform and supports java. This means we could use Java Robot, which simulates keypresses on your computer with certain given data. Creating a server with Java, the idea is to setup a port connection between the phone and the computer first. Then, using buttons, the phone can send data over to the server.

    The Result

    In the end, we created a couple layouts to simulate a gameboy, tv remote, and arrow keys. Using the arrow keys layout, it was possible to play snake on the PC wirelessly. Arriving in Philadelphia for the first time, UPenn offered an unforgettable experience.
    Next steps: Add better sandbox features for the UI, get the joystick function working, allow saving states.


    Get in touch over coffee! Don't be shy.

    Email me!

    Find Me

    • 81 Columbia Street West
                Waterloo, ON (Ontario), Canada N2L 3K7
    • (289) 489 - 3743
    • cwpeng@uwaterloo.ca