<p><span style="text-decoration: underline;"><b><span style="font-size: medium;">Project Description:</span></b></span></p>
<p><span style="text-decoration: underline;"><b><span style="font-size: medium;"><br></span></b></span></p>
<p><span style="font-size: small;">LLVM has gained much popularity in
the programming languages and compiler industry from the time it is
developed. Lots of researchers have used LLVM as frameworks for their
researches and many languages have been ported to LLVM IR and
interpreted, Just-in-Time compiled or statically compiled to native
code. One of the current drawbacks of the LLVM JIT is the lack of an
adaptive compilation System. All the non-adaptive bits are already there
in LLVM: optimizing compiler with the different types of instruction
selectors, register allocators, preRA schedulers, etc. and a full set of
optimizations changeable at runtime. What's left is a system that can
keep track of and dynamically look-up the hotness of methods and
re-compile with more expensive optimizations as the methods are executed
over and over. This should improve program startup time and execution
time and will bring great benefits to all ported languages that intend
to use LLVM JIT as one of the execution methods</span></p>
<p><span style="font-size: small;"><br></span></p>
<p><span style="text-decoration: underline; font-size: medium;"><b>Project Outline:</b></span></p>
<p><span style="text-decoration: underline;"><b><span style="font-size: small;"><br></span></b></span></p>
<p><span style="font-size: small;">Currently, the LLVM JIT serves as a
management layer for the executed LLVM IR, it manages the compiled code
and calls the LLVM code generator to do the real work. There are levels
of optimizations for the LLVM code generator, and depends on how much
optimizations the code generator is asked to do, the time taken may vary
significantly. The adaptive compilation mechanism should be able to
detect when a method is getting hot, compiling or recompiling it using
the appropriate optimization levels. Moreover, this should happen
transparently to the running application. In order to keep track of how
many times a JITed function is called. This involves inserting
instrumentational code into the function's LLVM bitcode before it is
sent to the code generator. This code will increment a counter when the
function is called. And when the counter reaches a threshold, the
function gives control back to the LLVM JIT. Then the JIT will look at
the hotness of all the methods and find the one that triggered the
recompilation threshold. The JIT can then choose to raise the level of
optimization based on the algorithm below or some other algorithms
developed later.</span></p>
<p><br><span style="font-size: small;">IF (getCompilationCount(method) > 50 in the last 100 samples) = > Recompile at Aggressive</span><br><span style="font-size: small;">ELSE Recompile at the next optimization level.</span></p>
<p><br><span style="font-size: small;">Even though the invocation
counting introduces a few lines of binary, but the advantages of
adaptive optimization should far overweigh the extra few lines of binary
introduced. Note the adaptive compilation framework I propose here is
orthogonal to the LLVM profile-guided optimizations. The profile-guided
optimization is a technique used to optimize code with some profiling or
external information. But the adaptive compilation framework is
concerned with level of optimizations instead of how the optimizations
are to be performed.</span></p>
<p><span style="font-size: small;"><br></span></p>
<p><span style="text-decoration: underline; font-size: medium;"><b>Project Timeline:</b></span></p>
<p><span style="text-decoration: underline;"><b><span style="font-size: small;"><br></span></b></span></p>
<p><span style="font-size: small;">This is a relatively small project
and does not involve a lot of coding, but good portion of the time will
be spent benchmarking, tuning and experimenting with different
algorithms, i.e. what would be the algorithm to raise the compilation
level when a method recompilation threshold is reached, can we make this
algorithm adaptive too, etc. Therefore, my timeline for the project is
as follow</span></p>
<p><br><span style="font-size: small;">Week 1</span><br><span style="font-size: small;">Benchmarking
the current LLVM JIT compiler, measuring compilation speed differences
for different levels of compilation. This piece of information is
required to understand why a heuristic will outperform others</span></p>
<p><br><span style="font-size: small;">Week 2</span><br><span style="font-size: small;">Reading LLVM Execution Engine and Code Generator code. Design the LLVM adaptive compilation framework</span></p>
<p><br><span style="font-size: small;">Week 3 - 9</span><br><span style="font-size: small;">Implementing
and testing the LLVM adaptive compilation framework. The general idea
of the compilation framework is described in project outline</span></p>
<p><br><span style="font-size: small;">Week 10 - 13</span><br><span style="font-size: small;">Benchmarking, tuning and experimenting with different recompilation algorithms. Typically benchmarking test cases would be</span></p>
<p><br><span style="font-size: small;">Week 14</span><br><span style="font-size: small;">Test and organize code. Documentation</span></p>
<p><span style="font-size: small;"><br></span></p>
<p><span style="text-decoration: underline; font-size: medium;"><b>Overall Goals:</b></span></p>
<p> </p>
<p><span style="font-size: small;">My main goal at the end of the summer
is to have an automated profiling and adaptive compilation framework
for the LLVM. Even though the performance improvements are still unclear
at this point, I believe that this adaptive compilation framework will
definitely give noticeable performance benefits, as the current JIT
compilation is either too simple to give a reasonably fast code or too
expensive to apply to all functions.</span></p>
<p> </p>
<p><span style="text-decoration: underline; font-size: medium;"><b>Background:</b></span></p>
<p> </p>
<p><span style="font-size: small;">I have some experience with the Java
Just-In-Time compiler and some experience with LLVM. I have included my
CV for your reference. I don't have a specific mentor in mind, but I
imagine that the existing mentors from LLVM would be extremely helpful.</span></p>
<p> </p>
<p> </p>
<p class="MsoNormal"><span lang="EN-CA"><br></span></p>
<table class="MsoNormalTable" style="border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr style="height: 34.5pt;">
<td style="width: 257.8pt; border: 1.5pt double windowtext; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in 5.4pt; height: 34.5pt;" valign="top" width="344">
<p class="MsoNormal"><span style="font-size: 22pt; font-family: 'Candara','sans-serif'; color: white; text-transform: uppercase;">Xin<b> Tong</b></span></p>
<p class="MsoNormal"><b><span style="font-size: 18pt; font-family: 'Candara','sans-serif'; color: white; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
</td>
<td style="width: 252.35pt; border-width: 1.5pt 1.5pt 1.5pt medium; border-style: double double double none; border-color: windowtext windowtext windowtext -moz-use-text-color; padding: 0in 5.4pt; height: 34.5pt;" valign="top" width="336">
<p class="MsoNormal" style="text-align: right;" align="right"><b><span style="font-family: 'Candara','sans-serif';">Email:</span></b><b><span style="font-family: 'Candara','sans-serif';"><a href="mailto:x.tong@utoronto.ca">x.tong@utoronto.ca</a></span></b></p>
<p class="MsoNormal" style="text-align: right;" align="right"><span style="font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span style="font-size: 5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-size: 5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Creative,
quality-focused Computer Engineering student brings a strong blend of
programming, design and analysis skills. Offers solid understanding of
best practices at each stage of the software development lifecycle.
Skilled at recognizing and resolving design flaws that have the
potential to create downstream maintenance, scalability and
functionality issues. Adept at optimizing complex system processes and
dataflows, taking the initiative to identify and recommend design and
coding modifications to improve overall system performance. Excels in
dynamic, deadline-sensitive environments that demand resourcefulness,
astute judgement, and self-motivated quick study talents.Utilizes
excellent time management skills to balance a demanding academic course
of studies with employment and volunteer pursuits, achieving excellent
results in all endeavours.</span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">STRENGTHS & EXPERTISE</span></h1>
</div>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Compiler Construction • Compiler Optimization • Computer Architecture • Bottleneck Analysis & Solutions</span></b></p>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Coding & Debugging • Workload Prioritization •<span> </span>Team Collaboration & Leadership<span> </span><span> </span></span></b></p>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Software Testing & Integration<span> </span>• Test-Driven Development </span></b></p>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">EDUCATION & CREDENTIALS</span></h1>
</div>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 6pt; font-family: 'Candara','sans-serif';"> </span></b></p>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">BACHELOR OF COMPUTER ENGINEERING</span></b></p>
<p class="MsoNormal" style="text-align: center;" align="center"><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">University</span></i><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> of Toronto, Toronto, ON, Expected Completion 2011</span></i></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Compiler</span><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">· </span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Operation Systems </span><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">·</span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> Computer Architecture </span><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"><span> </span></span></b></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Cisco Certified Networking Associate</span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">, July 2009</span></p>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">PROFESSIONAL EXPERIENCE</span></h1>
</div>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Java VIRTUAL MACHINE JIT Developer<span> </span><span> </span></span></b><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Aug 2010-May 2011</span></b></p>
<p class="MsoNormal"><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">IBM, Toronto</span></i><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">, Canada</span></i></p>
<p class="MsoNormal"><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></i></p>
<ul style="margin-top: 0in;" type="square"><li class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Working on the PowerPC code generator of<span> </span>IBM Just-in-Time compiler for Java Virtual Machine.</span></li>
<li class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Benchmarking Just-in-Time compiler performance, analyzing and fixing possible regressions.</span></li>
<li class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Triaging and fixing defects in the Just-in-Time compiler</span></li><li class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Acquiring hand-on experience with powerpc assembly and powerpc binary debugging with gdb and other related tools </span></li>
</ul>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Java VirTual Mahine Developer , Extreme Blue<span> </span><span> </span><span> </span></span></b><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">May 2010-Aug 2010</span></b><i></i></p>
<p class="MsoNormal"><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">IBM, Ottawa</span></i><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">, Canada</span></i><b></b></p>
<ul style="margin-top: 0in;" type="square"><li class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Architected
a multi-tenancy solution for IBM J9 Java Virtual Machine for hosting
multiple applications within one Java Virtual Machine. Designed
solutions to provide good tenant isolation and resource control for all
tenants running in the same Java Virtual Machine. </span></li><li class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Worked
on Java class libraries and different components of J9 Java Virtual
Machine, including threading library, garbage collector, interpreter,
etc. </span></li></ul>
<p class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal" style="text-align: right;" align="right"><b><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Continued…</span></i></b></p>
<p class="MsoNormal"><b><span style="font-size: 18pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;">Xin Tong <span> </span><span> </span><span> </span><span> </span></span></b><b><span style="font-size: 18pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;"><span> </span><span> </span><span> </span></span></b><b><span style="font-size: 18pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;">page 2</span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Graphics Compiler Developer<span> </span></span></b><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"><span> </span><span> </span><span> </span><span> </span>May 2009-May 2010</span></b></p>
<p class="MsoNormal"><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Qualcomm,</span></i><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">San Diego</span></i><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">, USA</span></i><i></i></p>
<ul style="margin-top: 0in;" type="square"><li class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Recruited for an internship position with this multinational telecommunications company to work on their</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> C++ compiler</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> project</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">.</span></li>
<li class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Developed a static verifier program which automatically generates and adds</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">intermediate language code to test programs to make them self-verifying.</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> Then the test programs are used to test the C++ compiler, ensuring that it can compile code correctly.</span></li>
<li class="MsoNormal" style="margin-top: 6pt;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Utilizes in-depth knowledge of </span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">LLVM</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> systems and algorithms to generate </span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">elegant and </span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">robust code. <span> </span></span></li>
</ul>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal"><b><i><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></i></b></p>
<p class="MsoNormal"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;"> </span></b></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">ACADEMIC PROJECTS</span></h1>
</div>
<p class="MsoNormal"><b><span style="font-size: 6pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></b></p>
<p class="MsoNormal" style="text-align: justify;"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">COMPILER OPTIMIZER IMPLEMENTATION (Dec. 2010 – Apr 2011) :</span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">
Implemented a compiler optimizer on the SUIF framework. Implemented
control flow analysis, data flow analysis, loop invariant code motion,
global value numbering, loop unrolling and various other local
optimizations.</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">GPU COMPILER IMPLEMENTATION (Sept. – Dec. 2010) :</span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">
Implemented a GPU compiler that compiles a subset of the GLSL language
to ARB language which then can be executed on GPU. Wrote the scanner and
parser using Lex and Yacc and a code generator in a OOP fashion</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="text-align: justify;"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Malloc Library Implementation</span></b><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> (Oct.-Nov. 2008) : </span></b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">Leveraged
solid understanding of best fit algorithm and linkedlist data structure
to design a malloc library to perform dynamic memory allocation.
Implemented the library with C programming language to ensure robust and
clear coding for 1000 </span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">line</span><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA">
codes. Optimized library on the code level to obtain a 6% increase of
allocation throughput. Harnessed knowledge of trace files and drivers to
test and evaluate the malloc library’s throughput and memory
utilization.</span></p>
<p class="MsoNormal" style="text-align: justify;"><span style="font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">COMPUTER</span><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white;" lang="EN-CA">SKILLS </span></h1>
</div>
<p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif';"> </span></p>
<table class="MsoNormalTable" style="margin-left: 5.4pt; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td style="width: 148.5pt; border-width: 1pt 1.5pt 1.5pt 1pt; border-style: solid double double solid; border-color: rgb(179, 204, 130) windowtext windowtext rgb(179, 204, 130); background: none repeat scroll 0% 0% rgb(230, 238, 213); padding: 0in 5.4pt;" valign="top" width="198">
<p class="MsoNormal" style="text-align: right; line-height: 125%;" align="right"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Programming Languages</span></b></p>
</td>
<td style="width: 355.5pt; border-width: 1pt 1pt 1.5pt medium; border-style: solid solid double none; border-color: rgb(179, 204, 130) rgb(179, 204, 130) windowtext -moz-use-text-color; background: none repeat scroll 0% 0% rgb(230, 238, 213); padding: 0in 5.4pt;" valign="top" width="474">
<p class="MsoNormal" style="line-height: 125%;"><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">C<b> </b></span><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">·</span></b><b></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">C++<b> </b></span><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">·</span></b><b></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">Java<b> </b></span><b></b></p>
</td>
</tr>
<tr>
<td style="width: 148.5pt; border-width: medium 1.5pt 1.5pt 1pt; border-style: none double double solid; border-color: -moz-use-text-color windowtext windowtext rgb(179, 204, 130); background: none repeat scroll 0% 0% rgb(205, 221, 172); padding: 0in 5.4pt;" valign="top" width="198">
<p class="MsoNormal" style="text-align: right; line-height: 125%;" align="right"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Operating Systems</span></b></p>
</td>
<td style="width: 355.5pt; border-width: medium 1pt 1.5pt medium; border-style: none solid double none; border-color: -moz-use-text-color rgb(179, 204, 130) windowtext -moz-use-text-color; background: none repeat scroll 0% 0% rgb(205, 221, 172); padding: 0in 5.4pt;" valign="top" width="474">
<p class="MsoNormal" style="line-height: 125%;"><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">Linux<b></b></span></p>
</td>
</tr>
<tr>
<td style="width: 148.5pt; border-width: medium 1.5pt 1pt 1pt; border-style: none double solid solid; border-color: -moz-use-text-color windowtext rgb(179, 204, 130) rgb(179, 204, 130); background: none repeat scroll 0% 0% rgb(230, 238, 213); padding: 0in 5.4pt;" valign="top" width="198">
<p class="MsoNormal" style="text-align: right; line-height: 125%;" align="right"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Software Tools</span></b></p>
</td>
<td style="width: 355.5pt; border-width: medium 1pt 1pt medium; border-style: none solid solid none; border-color: -moz-use-text-color rgb(179, 204, 130) rgb(179, 204, 130) -moz-use-text-color; background: none repeat scroll 0% 0% rgb(230, 238, 213); padding: 0in 5.4pt;" valign="top" width="474">
<p class="MsoNormal" style="line-height: 125%;"><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">GDB </span><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">·</span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> GCC <span> </span><span> </span></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="line-height: 125%;"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal"><span style="font-family: 'Candara','sans-serif';" lang="EN-CA"> </span></p>
<div style="border-width: 1.5pt medium; border-style: double none; border-color: windowtext -moz-use-text-color; padding: 1pt 0in; background: none repeat scroll 0% 0% rgb(79, 98, 40);">
<h1 style="text-align: left; background: none repeat scroll 0% 0% rgb(79, 98, 40); padding: 0in;" align="left"><span style="font-size: 14pt; font-family: 'Candara','sans-serif'; color: white; text-transform: uppercase;" lang="EN-CA">Extracurricular Activities</span></h1>
</div>
<p class="MsoNormal" style="text-align: center;" align="center"><b><span style="font-size: 10.5pt; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA"> </span></b></p>
<p class="MsoNormal" style="text-align: center; line-height: 125%;" align="center"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Elected Officer</span></b><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">, </span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">Institute of Electrical & Electronics Engineers, University of Toronto Branch,<b> Since May 2009</b></span></p>
<p class="MsoNormal" style="text-align: center; line-height: 125%;" align="center"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Member</span></b><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">, </span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">Institute of Electrical & Electronics Engineers,<b> Since </b></span><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">2007</span></b></p>
<p class="MsoNormal" style="text-align: center; line-height: 125%;" align="center"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Member</span></b><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">, </span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">University</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> of Toronto</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> E-Sports Club<b>, 2007</b></span></p>
<p class="MsoNormal" style="text-align: center; line-height: 125%;" align="center"><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Member</span></b><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">, </span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">University</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> of Toronto</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> Engineering Chinese Culture Club<b>, 2007</b></span></p>
<b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif'; text-transform: uppercase;" lang="EN-CA">Member</span></b><b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">, </span></b><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA">University</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> of Toronto</span><span style="font-size: 10.5pt; line-height: 125%; font-family: 'Candara','sans-serif';" lang="EN-CA"> Robotics Club<b>, 2007</b></span><br clear="all">
<br>-- <br>Kind Regards <br><br>Xin Tong <br>