| University of Toronto | Nov. 2008 - Sep. 2009 |
|
Technologies: PHP 5, Cold Fusion 6/MX, mySQL, Adobe Creative Suite I was hired on a ten month contract by ITS in Robarts Library to work on two unique projects, an existing project called Iter, and a new project for the Jackman Humanities Institute. My responsibilities for both projects included gathering requirements from the groups involved in each project, creating specifications, application design, and development. Iter is a not-for-profit research project dedicated to the development of online resources for learning and teaching subjects related to the Middle Ages and Renaissance. The project contains several customized databases of bibliographic information, and also provides online publication services to several academic journals. One of the most complicated parts of the project is managing subscriptions and invoicing for the hundreds of institutions and individual subscribers who have paid for access to Iter. The Jackman Humanities Institute is a new organization at UofT mandated with creating programs and opportunities for increasing scholarly communication and collaboration between the various humanities departments at UofT. In addition to a new website with content management, the website also provides a space for JHI members to collaborate online, sharing files, links and participating in discussions. The website also accepts applications for scholarships and fellowships and allows review committees to view and rank the applications. |
|
| Ganz Webkinz World Multiuse Server | Aug. 2008 - Nov. 2008 |
Technologies: PHP 5, TCP Sockets, System V Shared Memory, Gentoo Linux Ganz' most popular product is Webkinz, a series of cute plush doll pets that come with a unique code and web url around their neck. The code allows you to enter Webkinz World and adopt an online version of your pet. Once you're online you can earn KinzCash by playing games, which allows you to buy furniture for your room, clothes for your pet and several other items.Webkinz had grown so much in recent years that the system in place for multi-use (eg multiplayer games & chat) was quickly becoming unmanageable and even unstable. I was contracted to create a new solution which would scale better and perform better. My role on the team was to design and program the core socket handling functionality to receive requests from users, generate resulting events and deliver these back to the relevent users. I was also responsible for creating a system which could manage and store information about users, chat rooms and other multiuse-related functionality in shared memory, allowing it to be accessed by multiple processes. The new network architecture and completely rewritten code base provided a significant performance boost over the previous java solution. The new system handles the same user capacity with only a fraction of the number of servers, and provides a noticeably faster ping time for requests. |
|
| Hurley ePatrol (for Commercial Design) | Jan. 2007 - Nov. 2007 |
Technologies: Visual Studio 2005, C#, .NET Compact Framework, PHP 5, MySQL, LDAP, Microsoft Exchange Server, Prototype AJAX framework, GNU Barcode, Linux and Apache 2 Hurley Corporation is a cleaning company with large contracts such as the Eaton Centre and the Toronto International Airport. To ensure customer satisfaction, they needed a way to track employee activities in real time. The requirements were clearly split into two main parts. A handheld application and an online reporting & management tool.First, I wrote a Windows Mobile application using the .NET Compact Framework for the Symbol MC70, which allows employees to report when work is completed over the cell network. For example, when a washroom is cleaned, the employee uses the ePatrol application to scan a barcode on the wall and check off what work was completed (eg. spill cleanup). The application also requires the staff member to scan their staff id badge when they start their shift, allowing the building manager to track employee shifts including when they take their lunch. Every few minutes the application uploads the latest activity to the main database via the cell network (assuming a connection is available). The second part of the project was an online reporting & management tool allowing building managers and clients to view the data collected in a meaningful way. For example, a building manager might want to see what a specific employee has been working on, or a client may wish to see when a specific hallway was last vacuumed. This part of the application was written using PHP & mySQL and included LDAP integration with Hurley's main Microsoft Exchange Server user database. The online tool also made use of GNU barcode to allow building managers to create new staff barcodes and new location barcodes. At the time of my departure from Commercial Design, this project had succussfully completed a pilot test at a few of Hurley's more high profile locations, and a budget was in the process of being improved to roll out the application to all of Hurley's thousands of employees. Another programmer was hired and brought up-to-speed on the project to deal with any ongoing maintenance issues or additional requests from the client. |
|
| Jessam Web-To-Print eCommerce Ordering Tool (for Commercial Design) | Jun. 2007 - Jan. 2008 |
Technologies: InDesign Server, PHP 5, Microsoft SQL Server, Microsoft Server 2003, CSS 2.0, Prototype AJAX Library Jessam is a creative marketing company with a few major clients such as McDonalds and Nissan. Jessam came to us with a vision of an interactive tool which would allow customers to easily customize and order their creative pieces online. The purpose of the project was two-fold: First, to attract new customers. Second, to allow franchise owners of existing clients more customization options and a faster/smoother approval process. The software I created used Adobe InDesign Server to render images for previewing and print. Using InDesign Server's scripting language (based on javascript) and its SOAP communication ability, I created a PHP class to allow easy interaction with InDesign server. Creative designers upload a collected InDesign template they've designed and then, from within a web browser, select which elements customers will be able to customize (eg. price, location map, main image). Outside of the InDesign Server aspect, the project used PHP and MSSQL for the ordering process and reporting. Aside from typical ecommerce capablities, the project had several unique requirements for different types of users. Regional managers were able to easily approve new orders. Administrators were able to view reports, recent orders and manage users/customers. Designers were able to manage creative assets. Warehouse staff were able to view approved jobs and mark them as fulfilled. |
|