Francis Chang •


My professional goal is to research and develop the next generation software technologies for virtual worlds, multimedia streaming, distributed computing systems, mobile platforms and new user interface paradigms.


Ph. D. in Computer Science and Engineering, 2014

Portland State University (Systems and Networking Lab)

·         Dissertation: “Towards Constructing Interactive Virtual Worlds”, 2014. Advisor: Dr. Wu-chi Feng

·         Research involvement: multimedia visualization of 3D environments, network traffic analysis, packet classification algorithms, network processors and digital video analysis.

·         Designed and instructed CS 199: Introduction to Video Game Development – an undergraduate course to teach non-CS majors basic video game development principles including computer programming, 3D modelling and animation and simulated physics using Second Life as a game development platform.

·         Designed and instructed OMSE 510: Computing Foundations – a graduate level course teaching the fundamentals of computer architecture and operating systems.

·         Instructed CS 510: Malicious Code and Forensics – a graduate level course focusing on techniques and examples of malicious code as well as forensic analysis of techniques and protection and recovery from malware.

·         Recipient of the Outstanding Graduate Student award.

·         Member of the PSU Brazilian Jiu-Jitsu and PSU Kickboxing clubs.


Master of Science in Computer Science and Engineering, 2004

OGI School of Science & Engineering at OHSU (Systems Software Lab)

·         Instructed CSE506/606 NWP: Network Practicum – a graduate level course in network processor development, focusing on the Intel IXP1200 platform. Received a class rating of 4.7/5.0, the second highest for an instructor teaching that quarter.

·         Teaching Assistant: CSE58x: Network Practicum – Tasks involved creating assignment curriculum, lecturing, grading, assisting students and lab administration.

·         Teaching Assistant: CSE513: Introduction to Operating Systems – Created the assignment curriculum, marking, conducting tutorials and general instruction in NACHOS operating system

·         Recruiting, interviewing and management of undergraduate interns in SySL


Honours Bachelor of Mathematics in Computer Science, 2001

University of Waterloo

·         Undergraduate research work with real-time volumetric rendering in the Computer Graphics Lab under Dr. Michael McCool.

·         Vice President of the Archery Club & Member of the Badminton Club

·         Received various high school scholarships & awards

·         Extracurricular work involved porting ssh to win32, development of portable 4-dimensional stereogram engine, contributor to the Linux on Laptops Survey, volunteer work for the Ronald McDonald House


Queen Elizabeth Park High School, 2001

·         Set up, designed and maintained QEP's Internet website

·         Instructed basic website development

·         Teaching assistant for math and computer programming

·         Extracurricular activities involved Oakville Youth Symphony Orchestra (violin) and local band (guitar)

Selected Publications

Virtual World Infrastructure

·         Huaiyu Liu, Mic Bowman, Francis Chang. “Survey of State Melding in Virtual Worlds”, ACM Computing Surveys (CSUR), Volume 44 Issue 4, Article No. 21, August 2012

Terrain Streaming

·         Francis Chang, Wu-chi Feng. "Streaming Terrains", Proceedings of NOSSDAV 2007, June 2007

Packet Classification

·         Francis Chang, Wu-chang Feng, Wu-chi Feng, Kang Li, "Efficient Packet Classification with Digest Caches", Network Processor Design: Issues and Practices, Editors: Patrick Crowley, Mark Franklin, Haldun Hadimioglu, Peter Onufryk, Morgan Kaufmann Publishers, 2005, ISBN: 0-12-088476-3

·         Francis Chang, Wu-chang Feng, Wu-chi Feng, Kang Li, “Efficient Packet Classification of Digest Caches”, in Proc. of the Third Workshop on Network Processors & Applications (NP3), February 2004, Madrid, Spain.

·         Francis Chang, Kang Li, Wu-chang Feng, “Approximate Caches for Packet Classification”, in Proc. IEEE INFOCOM 2004, March 2004, Hong Kong.

·         Kang Li, Francis Chang, Damien Berger, Wu-chang Feng, “Architectures for Packet Classification Caching”, In proceedings of the 11th IEEE International Conference on Networks (ICON 2003)

·         Francis Chang, Kang Li, Wu-chang Feng, "Approximate Caches for Packet Classification", ACM SIGCOMM (poster session), August 2003, Karlsruhe, Germany.)

·         Game Network Traffic Measurement

Internet Gaming & Traffic Measurement

·         Francis Chang, Wu-chang Feng, “Modeling Player Session Times of On-line Games”, In Proceedings of NetGames 2003, May 2003.

·         Wu-chang Feng, Francis Chang, Wu-chi Feng, Jonathan Walpole, "Provisioning On-line Games: A Traffic Analysis of a Busy Counter-Strike Server", In Proceedings of the Internet Measurement Workshop, November 2002.

·         Francis Chang, Wu-chang Feng, Wu-chi Feng, Jonathan Walpole, "Provisioning On-line Games: A Traffic Analysis of a Busy Counter-Strike Server", ACM SIGCOMM (poster session), August 2002, Pittsburgh, Pennsylvania.

Virtual Human Interaction

·         Nick Yee, Jeremy N. Bailenson, Francis Chang, Dan Merget. (2006, in press). "The Unbearable Likeness of Being Digital: The Persistence of Nonverbal Social Norms in Online Virtual Environments". The Journal of CyberPsychology and Behavior.

Work Experience

Software Engineer, Summer 2014 - Present

Google Inc., Google Experience Team

·         Engineer for the Google Experience team, designing interactive displays in physical spaces in Google Experience Centers


Computer Science Researcher, Summer 2008 - Spring 2009

Intel Corporation, Architecture Systems Lab

·         Researched topics on metaverses and virtual worlds

·         Designed & Developed XPU (Extremely Partitioned Universe), an metaverse architecture experiment framework written in C#

·         Server development of OpenSimulator, an open-source virtual world in written in C#

·         Virtual world content development - scripting, modelling and art


Virtual World Content Developer, Second Life 2004-2008


·         Virtual content design & development including programming, 3D modeling, texture art, animations, cinematography, managing contractors, marketing and business development

·         Clients include General Motors Company, Toyota Motor Corporation, Nissan Motor Company Ltd., The Electric Sheep Company, and Millions of Us LLC.

·         Undergraduate level teaching and workshop instruction

·         Popular projects include the Dominus Shadow, Seburo Compact-eXploder, Wet Ikon Roam and Franimation Overrider

·         Charity work included campaign and event management, and content development for the Electronic Freedom Foundation, Heifer International, Red Cross, American Cancer Society and VERTU.


Research Assistant, Summer 2000

University of Waterloo, Computer Graphics Laboratory

·         Developed prototype real-time volume rendering software, based on nVidia GeForce 3 texture shader & register combiner technology, written in a mixture of Tcl/TK, C/C++ and OpenGL, with prototype nVidia specific extensions.

·         Algorithms were based on fixed-grid cubic topology, with a static data-set. (MRI and CT data)


Software Designer, Winter 2000, Fall 2000

Proxinet Incorporated/Puma Technology Incorporated

·         Software development for a proxy-based wireless web browsing solution for mobile devices

·         Web browsing thin client development targeting PalmOS using Codewarrior C and Motorola 68000 assembly

·         Server development on Solaris, using the Mozilla rendering engine

·         Designed & wrote specifications for the thin-client browsing system, image processing and transmission protocol

·         Designed, developed & maintained UNIX/Java product branding system, including image manipulation, branded resources management and file validation utilities

·         Designed, developed & maintained multi-threaded Java AFTP/TCP protocol sniffer & debugging tool

·         Research involved raster image compression & processing research, general compression techniques, UNIX hashing programs, and data encryption/obfuscation

·         Interviewed prospective software engineering candidates


Software Design Engineer, Summer 1999

Microsoft Corporation

·         Worked in Visual Basic Projects Team, developing using MFC/ATL/COM with Visual C++

·         Adding, Designing and Extending functionality to Win9x Unicode/API wrapper libraries

·         Developed new COM utilities, including the VB7 Upgrade Wizard

·         Check-in Suite design and Suite Library implementation

·         Developed automated tests to validate ongoing changes to the codebase

·         Miscellaneous internal utility development including maintenance, bug fixes and new features


Software Developer, Fall 1998

Corel Corporation, Bitmap Effects Team

·         Development focussed on a library for raster image manipulation for Corel Draw and Corel Photo-Paint, targeting Win32 using MS Visual C++ and MFC

·         Developed new image manipulation effects, including algorithms design and implementation, and user interface design

·         General library maintenance, bug fixing and performance enhancements

·         Designed and developed an internal C++ code analysis utility to aid programmers in identifying portability and interface compatibility issues

·         Graphics challenges included concurrent programming, anti-aliasing primitives and colour space manipulation


Software Designer, Summer 1997, Winter 1998

Thinkage Limited

·         C/C++/YAY development, on various platform including WinNT, Win95, UNIX and GCOS

·         Developed the C math libraries for the GCOS operating system (9-bit architecture) and Intel x86 machines

·         Math library implementation involved designing mathematical approximations, resolving overflow/underflow and truncation errors and circumventing hardware limitations to comply with ANSI C 98 standards

·         Developed a  multi-threaded telnet application in Borland C++ using win32 multi-threaded constructs, with support for the Kermit file transfer protocol

·         Worked on prepro, a precompiler that embedded a new macro language in C++, designed for compiler construction


Computer Programmer, Summer 1996

Adnet Information Systems Incorporated

·         Developed a custom data-management application for Advanced Debt Technologies Ltd using Visual Basic

·         Database design  and manipulation using SQL, using MS Access databases

·         Programming challenges included Microsoft Mail Merge, automated banking features, automated of MS Excel spreadsheets construction using OLE, and cross-platform compatibility.



Computer Programmer and Consultant, Annex Galaxies

Summer – Fall 1995

·         Started a small business providing consulting services in website development and BBS setup and maintenance


Systems Jr. Technician, Region of Halton

Spring 1995

·         Diagnosed, repaired, assembled and upgraded PC computers, attended to service calls

·         Instructed coop students on PC maintenance and operation


Computer Programmer & Summary Writer, McMaster University

Summer 1994

·         Developed programs to model the behavior of fractal and chaos algorithms for grad students studying fractals

·         Created notes and summaries intended for graduate students studying chaos and fractals


My hobbies include photography, wristwatches, poker, boxing, kickboxing and Brazilian jiu-jitsu.


References are available on request.