Welcome to my website.


Recent Projects

Projects that I have undertaken in these recent years during university studies.



I am co-founder and CTO of diPoll. In short, diPoll is a social voting platform which allows anyone to easily vote, comment, create polls, and take part in a community where they can get instant feedback from others worldwide.

Current efforts are focused on user authentication via social networking sites (Twitter and Facebook Connect), embedding of polls on 3rd party websites, and migration to a RESTful architecture.

Visit diPoll.com

Light Real-time Embedded Operating System for the HR-17 Robot

Robofactors HR-17

I was contracted by Robofactors to lead the developent of a lightweight real-time operating system to run on the DRC-1 robot controller for the HR-17 robot, a 17 degree-of-freedom humanoid robot. The OS provides real-time control of 17 servos as well as support for input from custom user sensor modules, while running on a mere 16 MHz low-power and low-cost ATmega128 microcontroller.

Low-current Sensor for Nanotechnology-based Biomedical Devices

Sensor PCB

I have designed a low level current sensing device and accompanying software suite for interfacing with a nanotechnology-based biomedical sensor.

This project was done for the Advanced Micro-/Nanodevices Laboratory at the University of Waterloo.

High School Programming Projects

Programming projects that I have worked on for during my high school years, some were for school assignments and some were personal experimentations.

Genetic Algorithm Magic Square Program

Magic Square

A Java program that allows users to create a magic square and check it. A magic square is a square of numbers in which the same sum is obtained adding the rows, columns, and diagonals. The artificial intelligence of this program is entirely the genetic algorithm used to generate random magic squares.

Download the program (jar file)
Download source code (rar file)

3D Towers of Hanoi Solver

Towers of Hanoi

A Java program with an original 3D Engine developed from scratch to render and animate an interactive 3D solution to the Towers of Hanoi problem.

Uses: Towers of Hanoi recursive algorithm, 3D geometry: Transforms (Rotations, translations), 3D Rendering: shadows and lighting, Java AWT Graphics

Download the program (jar file)
Download source code (rar file)

NGTorrentReader Program


This C++ MFC program identifies posts on newsgroups with .torrent file attachments and compiles a list for easy access. The list can also be exported to the user specified MySQL database server. This program uses the MySQL API codes provided by MySQL.com.

Uses: C++ MFC programming, windows sockets, multithreading, NNTP META content parsing, MySQL API

Download compiled program (rar file)
Download source code (rar file)

Remote Server/Client Program

Remote program

This C++ Win32 program allows the server to remotely control the client computer using a mouse and keyboard over a network, as well as prompt messages on the client's screen. The keyboard and mouse hooks are created by an accompanying DLL.

Uses: Win32 keyboard and mouse hooks, simple communications protocol, windows sockets, windows dynamic-linked libraries

Download compiled server & client programs with DLL (rar file)
Download source code (rar file)

Line Program

Line program

A Java applet with an original 3D Engine to generate a line in 3D space based on 2 points. Information on the line are calculated, including the intercepts and equation. Transformations are possible (rotation and zoom).

Uses: 3D Mathematics, Transforms (Rotations, translations), Java AWT Graphics

Run the applet (opens new window)
Download source code (rar file)

Ice Cream Program

Ice cream

A grade 10 introductory programming class assignment where we had to write a Turing program for hypothetical customers to order ice cream from "Irene's I Scream for Ice Cream Shop". I took this assignment to the next level... the user can see their ice cream cone in 3D :-) with my 3D graphics engine written in Turing (it's a very limited programming language).

Uses: 3D Mathematics, Transforms (Rotations, translations), Turing language

Download source code (T file)

Keylogger Program

Nobody is a real programmer without developing something annoying! Here is a transparent C Win32 program and accompanying DLL that logs every key pressed by a Windows user.

Uses: File IO, Windows Keyboard Hooks, Windows Dynamic Link Libraries, Win32 programming

Download compiled program and DLL (rar file)
Download source code (rar file)

Misc. High School Engineering Projects

Magnet Car Project (Grade 12)

Car Schematic Car Pic

A project including construction, IC and transistor circuitry, and Visual Basic programming that uses the parallel port and a joystick to control a "battle" car's movements to pick up paperclips.

Uses: Simple joy stick design, drive design with calculated gear use, stepper motor control, parallel port interfacing, Visual Basic programming

View circuit schematic diagram (pdf file)
Download car program source code (rar file)

Electron Transport Chain Model (Grade 12)

ETC circuit ETC Pic

An electronic model for the electron transport chain in the mitochondria of a cell illustrating the transport of the electron pair through various protein, carriers, and the proton pump by the ATP synthase.

Uses: Shift registers, 555 timers, flip-flop memory, AND/OR logic gates, transistor motor control

Click here to see it in action (avi file)

Elevator Project (Grade 11)

Elevator Program
Elevator Pic
Elevator Schematics
Elevator CAD

A project including CAD design, construction, IC and transistor circuitry, and Visual Basic programming that uses the parallel port of the computer to control a model elevator's movements.

Uses: Visio circuit, AutoCAD design, H-bridge, BCD to Decimal Decoder, BCD to 7 segment Decoder, parallel port interfacing, Visual Basic programming

View AutoCAD drawings and list of materials (pdf file)
View circuit schematic diagram (pdf file)
Download elevator program (exe file)
Download elevator source code (rar file)