Jason Wong


Data analyst, full stack web developer, and object oriented programmer. Additional experience in computer systems assembly and machine language, networking systems and server administration, multimedia production, and technical documentation.

Undergraduate Projects


Application Development

Lead a team of two back-end and front-end developers to deliver a fully functioning Java based diet tracking application at University of Alberta. The software emphasized on usability, exception handling, persistent data, and performance. Unit test cases were prominent in the development process to ensure program correctness. The software was created in Java with standards such as model-view-controller (MVC) based designs. Individual responsibilities included project management, front-end programming and development, asset management and development (icons, themes, frameworks), creation of the user manual and technical documents, coordinating development between front-end and back-end programmers.

Created with: Java / JUnit / db4o / Photoshop


OLAP and Data Warehousing

Created a web-based application for viewing sales information from fictional bookstore databases used in the University of Alberta undegraduate computing science program. Queries were made to an Oracle database where information would be returned along different dimensions such as time and location in various scales (the day, month or year in a given city, province or country). An administrator site was created to manage user accounts that were stored in the Oracle database. Development required building and optimizing SQL queries, database management (concurrent access, lock requests, performance), encryption and managing web based access control.

Created with: Oracle / Java / JSP / HTML / CSS


Machine Simulators

Created a suite of simulators to better understand the workings of computer systems such as processors, cache organizations and branch predictors. The sofware based processors used techniques such as pipelining, superscale pipelining and register renaming to help improve performance when compared to novel approaches. The cache simulations allowed the experimentation of different memory organizations including fully associative memory, 2-way and 4-way memory, split instruction and data caches using L1 as well as L2 memory. The different organizations, as specified by user input, were then compared against each other using a standard program trace. By allowing the branch predictor simulator to change particular parameters, one can see how different predicting structures will affect the system performance. Comparisons with 1-bit, 2-bit and related 2-bit predictors were made with other parameters such as initialization states and address spaces.

Created with: SPIM / xSPIM / SpimView / Java