
This is a list of companies I have been officially working for. For a list of websites I have done through contract work, click here.
CTVglobemedia | PC Party of Ontario | CADlink | eatsleepmusic
After reading about my experience at the above companies, I encourage you to read my reference letters from these companies in order to understand both perspectives of my employment history.
CTVglobemedia - http://www.ctv.ca
I was the sole person on the development team responsible for implementing new features onto the SPACE website, built around Kentico CMS, and fixing any bugs that were reported. This involved routine meetings with the SPACE team to identify priorities and set expectations. The Comedy Network's ULY was a very similar experience to this.
The largest undertaking of our development team was the redesigning of the main website, http://www.ctv.ca. The forthcoming iteration of the website is being developed with ASP.NET MVC 1.0 using NHibernate 2.1 as an object relational mapping solution. Mapping files were created to demonstrate the relationships between the domain entities, and UML diagrams were drafted and submitted for approval, with development being based off of these images.
In January 2009 I presented a concept to management to overhaul the Video Wall on the CTV webpage. After receiving a positive response, I set out to develop the Video Wall using XML feeds provided by different channels, many of which had different specifications, and all of which required numerous checking and accounting for discrepancies. Later, I developed an MRSS feed for each channel based on the Yahoo Media RSS Specifications Version 1.1.2. I have since maintained this page, performing various edits as required. (top)
PC Party of Ontario - http://www.ontariopc.com
The first large coding project I worked on was an ASP.NET application to track orders from each MPP's constituency and Queen's Park offices throughout their lifecycle. The application ensured that orders had the required information present, were approved and were billed to the appropriate budgets, and that the fingerprint of each user account that touched the order was recorded to ensure maximum accountability. I was the sole designer of the tiered architecture, relational database and data model, and oversaw the project until completion. The technologies used on this project were MS SQL Server 2005 and C#.net 3.5. This was my first large project for an employer using the LINQ technology in .NET 3.5.
The second major coding project I worked on was the overhaul of the PC Party website. The party purchased a CMS called Sitecore that was built upon the .NET architecture. I used Photoshop CS2 to cut up the template image and placed it into the Sitecore CMS. The codebehind was written in C# and made heavy use of CSS for positioning content. The MSSQL2005 database from the previous site was rebuilt relationally and with efficiency in mind, making use of stored procedures in particular. This new database was then implemented into Sitecore CMS to finalize the implementation of the new site. Sitecore also had custom ASP tags that took advantage of some of the CMS's features. (top)
CADlink - http://www.cadlink.com
My one project in C# at CADlink was a utility to be used in house
and among one of their OEM partners. I will keep the explanation of
the program to the minimum required to explain the technical aspect
of what I did - it allowed the user to input several fields of data,
one for each "colour channel". This project required an
indeterminate amount of colour channels, so a linked list was used.
As well, each channel has several options such as check- and radio
boxes as well as the main textbox. I placed all of these controls
combined into a custom control I created, and used a linked list
containing objects of this custom control. Depending on the
resolution being printed, different calculations were made to the
input data. The end result was a text file containing several large
matrices of the supplied data arranged in a way that the specified
printer would be able to interpret the data. The data essentially
told the printer to lay down a certain sized dot of ink - small,
medium, large, or some combination of these. The output data was
commonly called halftone arrays or matrices, so I named this project Halftone
Array Builder.
My work in C++ for CADlink was part of a very large project on one
of the company’s main products. The product is called Virtual Print
Manager (VPM), and it is essentially a glorified print queue. What
I was responsible for was adding printer functionality for several
devices to the software. After receiving various data such as
height, resolution, crop/cut and possible image alterations from VPM
via a postscript driver, this information was used to set up certain
options and properties to supply along with the image data to the
printer (sometimes but not always through a DLL supplied by the
printer manufacturer). Working on this project required me to study
the pre-existing program's dataflow to determine how the data is
accepted and used in order to be able to deliver the data properly
to the new device I was adding functionality to. Adding
functionality to VPM for a certain printer would allow a user to
print via USB, TCP/IP, etc, even print data to a file for manual
inspection and debugging problems with both the postscript driver
and the newly added port in the program, which proved to be a very
handy feature. I also received experience writing postscript
drivers for several devices. (top)
eatsleepmusic - http://www.eatsleepmusic.com
My work for ESM in C++ was entirely in writing code for additional features or changes within an already existing product called Kool Karaoke. This involved preparing technical diagrams to the project manager for him to examine and give the go-ahead to implement the new feature. Other times, I was to implement a new feature based on pre-existing technical diagrams that were given to me. Much of this process was the same as I more recently used at CADlink - the study of preexisting code to learn dataflow, and understanding of the programs core, and finally an implementation of the required feature. This was for various tasks such as applying different types of reverb and other effects to the users voice, altering volume, key and tempo of the song, etc. (top)
The UML Modelling diagrams I have used at various times in ongoing work are as follows (probably an incomplete list):