Sunday, May 12, 2013

Welcome!

Welcome to Shawn Xun Gong's project portfolio! 

To view my professional experience, please visit LinkedIn; for an overview of my different sites, please visit about.me/shawn.gong. I also have a couple of open source projects to share on GitHub.

I have been creating software and games since high school, and graduated from University of Waterloo in January 2012, with an Honours Bachelor of Computer Science degree.

Since my childhood, I have dreamed of creating another world of tales. I was shocked by the imaginary world video games brought, and wondered how I could do it with my own hands.

I started teaching myself how to program in high school. In 2003, I found a chance to work with an online team to make a RPG game and had great experience collaborating and learning from team members, which made me decide to pursue Computer Science in college, and got admitted into the Beijing Union University in China.

Moved to Canada in 2008, I struggled to merge into this brand new culture, and got admitted into the University of Waterloo. 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 had 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 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 these social activities, academically I maintained Good Standing, 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 stepped into professional software industry and learned 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 playing since youth. 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!


After graduation, I joined Yext, a startup company to help businesses manage and publish their location information easily, in Spring 2012. With the brilliant team and exciting projects, I thrived in my abilities on web development from back-end through front-end, and have become a much more full-fledged developer. I'm excited to see where next I should be. 

Some personal projects I made

Here are a few personal projects which are suitable to share; I have a couple of open source projects to share on GitHub; please contact me to know more about what I have done and what I am currently doing (:

Currently I'm designing and developing a calendar-parsing, note-sharing app for iPhone, and expect to put in App Store in June 2013 - please check back later for it!

My contribution to the Open Source Firefox includes:


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!