Monday, September 26, 2011

Welcome!

Hello and welcome to Shawn Xun Gong's project portfolio! 

To view my professional experience, please visit LinkedIn; for more comprehensive overview, please visit about.me/shawn.gong



I have been creating software and games for 8 years since high school, and am going to graduate from University of Waterloo in January 2012,
with an Honours Bachelor of Computer Science degree.

In my childhood, I dreamed of creating another world of tales. When I got my first video game, I was shocked by the imaginary world it brought, and wondered how I could do it with my own hands.

During high school, I started teaching myself how to program. In 2003, I found a chance to work with an online group (called Fantasy Studio) to make a RPG game. Through that game project I learned programming skills from other team members, and enjoyed working with a group on the same goal. Soon after, I decided that Computer Science should the my major, and got admitted into the Beijing Union University in China.

Moved to Canada in 2008, I found things were quite different. With panic, nervousness, hope and belief, I struggled to demonstrate myself to this new world. Efforts were put on school’s application, finding a part-time job, and making new friends. Luckily I got my first job at a coffee shop, where I met different kinds of people and learned the new culture from various perspectives; I met good friends in the new city, which was a big gift; meanwhile the offer from University of Waterloo brought me confidence, and infinite possibilities.

Arrived at UW’s beautiful campus in Fall 2008, while adapting to a new study system, I actively got involved with many extracurricular activities: I created a music band with new friends who have the same pursuit; I joined the Computer Science Club and Game Development Club where I was able to communicate with peers and experienced alumnus; also I participated in a variety of sport leagues, such as the Soccer Intramural  and Basketball Intramural, and helped my teams achieve good standings. These activities brought me an enjoyable and meaningful life in Waterloo.

Along with steps into this new society, academically I have been able to make progress, too - I maintained Good Standing in academic status, and passed the English Proficiency Exam. With the appreciation of UW Computer Science program's guideline: "To develop students with a broad view", I selected courses from various disciplines to satisfy my interests. In my second school term, I got my first internship as a Software Developer with Research In Motion, which opened a brand new chapter in my life.
 

In Summer 2009, with an excellent manager at RIM, I learned how the software industry work, as well as how to collaborate with team members. Discovered that many people are working on Unit Tests with poor supporting tools, I designed tools that significantly reduced the repetitive work from developers, thus greatly improved the overall efficiency for dozens of developers.

From January 2010 till August, I was interning with Electronic Arts making FIFA 11. It was like a dream to actually work on the game that I have been played since I was a kid. In the 8-month internship, I actively learned from almost everybody in the FIFA team, and completed all my tasks in time with great feedback. Beyond that, I constantly helped others to solve problems, and gained experience working with producers, artists, engineers, QAs, and 3rd party partners. I improved my communicating and technical skills, and learned how to solve conflicts in adverse situations.


In Winter 2011 I part-timed at RIM to help my manager build a new building system, which involved much fun and creativity; in Summer 2011, I interned at Mozilla in California, enjoyed the summer and contributed to the 400-million-user Firefox - you can see I being the actual firefox in the picture above!


Where would my journey toward next? (:

Sunday, September 25, 2011

Some personal projects I made

Here I only posted a few personal projects which are suitable to display; please contact me to know more about what I have done and what I am currently doing (:

Firstly, my contribution to the Open Source Firefox includes:


The followings are some personal projects:


Diary + Photo + Calendar Organizer, 2011 (Design in progress)

Earlier this year, my friend complained to me that she has always been frustrated about organizing her photos and diaries - over time, photos get messed up here and there; diaries are left in different notebooks, blogs and spaces. The current calenders, photo viewers and blogs are isolated to each other, and they're getting more and more complicated - she just wants an easy and nice organizer!

"So, why not just make one ourselves?" We started to discuss the ideas, and actually make the designs. She mainly focused on the interfaces, interactions and other "natural" aspects; I took care of the technical possibilities and software architectures.

We collaborate on it only during our spare time, so it is still a design-in-progress. However, I can see that people will definitely benefit from this neat handy tool once we have made it real!




Roomba Robot, 2011

Roomba is basically a 2D space, and as you can see there are some "line garbage" - the Robot's mission is to collect the garbage and purify the Roomba.

This application involves phisycal collision, joint movements and angle limits. Besides, how to make user control the 3-joint robot easily is a top consideration. You can either use full keyboard or keys + mouse to turn it, dash to garbage, reach your arm, then clip the garbage. Bravo!


Home Remoter, 2011

This is an Android app which help people remotely control their home appliances (e.g. Stoves, PVR, Air Conditioner) thus you don't need to find the remotes for each appliance from time to time.

Because the Android screen is small, the interfaces were designed to be as concise as possible; I needed to keep consistency among app activities so users can adapt to each one smoothly. These sketches defined the UI which listed the main functionalities for each activity so the user doesn't need to bring up dialogs or flip pages to access them. 



The goal of the main page design is to allow users monitoring each appliance's status and doing most frequently needed functionality.






Followings are snapshots of the results:



Timeline Explorer, 2011

Traditionally the file explorers only focus on the folder structure and file names, but the time factor is only served as a sorting method within the folder level. This Timeline Explorer provides a mean to explore data through timeline. You can filter the results by time range and file type; it categories files by your selection of Day, Month or Year, and shows a historgraph of the density of each time period. Imagine putting your camera photos all in one place, using Timeline you don't even need to sort them into folders - just pick the month when you went to Tokyo!


Baccarat Simulator, 2010

I have a friend who works in a casino, and his working environment enables him to do research on the pattern of the Baccarat game. He turned to me wondering if we can make a program to simulate the game, so that he can experiment on different betting patterns, and here it goes. Although we haven't found a magical way yet (that is HARD for sure :), I treat it as a good programming practice.



3D Pool, 2008

Back in 2007 fall, I started to learn 3D knowledge and created this game for experiments. It involved calculations of vectors, planes and matrices; it also included basic collision detection, physical response and movements among balls. In 2008, I moved to Canada, and the school work took me all the time, so unfortunately I haven't made progress on it for a long time.


Fire Devil, 2003

In 2003 soon after I started learning programming, I was lucky to find an online group to make this game together, which greatly helped me to improve my skills; more importantly, this experience made me decide that I want to be a software developer in the future.

This first picture shows the panel and inventory I made. The user interface's effects, linkage to item database, and controls are all implemented into  details - it includes scroll feature, fade in/out appearence, influence of equipments to character's data and so on.

This second picture shows the battle scene I made. As you can see, there are command menu, skill list, status panel and characters. It works in round-by-round mechanism and implements animation when attack, with the data calculation linked to actions.





MarioNow, 2003

This is the first game I made using DirectX, and it was also in 2003 prior to Fire Devil. I only spent 3 days on this, however, it showed the basic elements of a game, including 2D graphics, screen scrolling, maps, objects, enemies, simple AI, input and control, etc. I added some physical factors in the character's movements to add a little fun to play.







Thanks for your reading! Please feel free to contact me for any questions. 

HAVE A NICE DAY!