Summary |
Since GDC is a defense company and I worked in Research & Development, I don't want to write down a lot of particulars about what I worked on, so I'll specify some of the areas I worked in and what technologies were used. One thing I worked on that is "out there" (at least on the GD website) was WOMBATS (PDF file). I implemented the core architecture of the system (but not the GUI or some of the tasks that run in the system). It was written in C++ and uses SQLite, a popular database engine for embedded systems, to store data for processing and transmitting between the different tasks running in the system. It's an MVC architecture, and I made use of design pattern principles when writing it ("Find what varies and encapsulate it" -- Design Patterns Explained by Alan Shalloway and James Trott). My favourite thing I worked on was a cross-platform library written in C++ that is used by several other GD projects (including the company's biggest project, the Marine Helicopter Project). My responsibilities on this R&D project:
I also worked a lot in a demonstration lab, setting up computers, installing software, troubleshooting problems, running software during demos to government, forces, and business personnel, and preparing documentation for the demos so that others could carry them out in my absence. |
Summary |
At Aviya, I tested aerospace systems software to safety-critical DO-178B Level A compliance using Rational Test Real Time. This involved writing test scripts for every file/function of C code in the system to ensure they worked correctly and fulfilled the associated requirements. I didn't work there very long (GD suddenly offered me an interview and then a job, and I had been aiming to work there for a long time so took it, which also let me move back to Ottawa), but in that short time I ended up being the 'go to' guy for asking about tricky C code (such as the odd function pointer necessary to test the main() function), and had developed a simple checkbox system for showing that all necessary code points were tested, and what test cases in the script they were tested in. Other activities I performed at Aviya:
|
MProbe | In
brief, MProbe is a program that aids in maximizing/minimizing a
function. The variables of this function are usually constrained
by a number of constraint functions. E.g., maximize
f(x,y,z)=x*y*z given 10>x>3, x*y=15, z+x<0. Problems often consist of several hundred to even millions of variables and constraints. My first work term with Prof. Chinneck, one of main duties was to fix bugs in MProbe (mostly in the GUI). At that time, it was written in Visual Basic 6. During this work term, I discovered that MProbe was not sampling the variable space evenly. It was over-sampling the middle region heavily, which was making some of the collected statistics incorrect. I investigated the problem and wrote a report suggesting new sampling methods that would sample more evenly. This (very visual) report is available here. During my second summer working on MProbe, I incorporated several new sampling methods into MProbe. I also designed and programmed the "Points Workshop" window , which was the main new feature in MProbe v4.0.. This window is useful for inspecting and locating important points within the variable space of the system of equations. |
MPSFileReader | During my 2002 work term, I completed MPSFileReader (a DLL). It is "a windows object for creating, editing, reading and writing
MPS files (The MPS file format is an old but durable format for saving linear
and mixed-integer programming models). [It] displays constraints and objective
functions in a natural human-readable form. [It] can evaluate functions directly and return the values to the calling
routine. [It] exposes convenient
properties and methods." MProbe uses MPSFileReader to read MPS files to input a system of equations to be inspected. I also wrote documentation and a demonstration program to help developers use the object. |
GAMSFileReader | "A windows object for reading optimization models specified
in the GAMS language, and then exposing a convenient set of properties and
methods." Started and completed during my 2003 work term. Also used by MProbe. I also wrote documentation (zipped .chm HTML help file) and a demonstration program (available on the GAMSFR web page) to help developers use the object. |
Downloads Page |
This is a page a person who
wishes to download any of the above programs can use to download the
software if they wish to be informed of updates. It uses a couple
perl scripts that write the info to plain text files (nothing too fancy). |
CCS Website |
I made many changes to the CCS website during my work term there.
In addition to generating many new ideas for improving the site, I concentrated on increasing accessibility/usability and levels of standards compliance (though some things were out of my hands -- e.g., fixed-size fonts (can't be resized in Internet Explorer)). Also, the download size of many pages were reduced dramatically to help modem users and save a few pennies on bandwidth. This was done by replacing many instances of client-side Javascript with server-side ASP/VBScript and by compressing graphics to appropriate file formats. If I recall correctly, 27kb+ were cut out of every page. Some pages with many graphics had download times reduced by minutes. |
Web Team Meetings |
I organized and ran these
meetings every week or
two, during which about 10 CCS employees met to propose, discuss, display, and review site changes. |
Outages Page |
Originally, whenever a system went down,
someone had to manually edit the HTML of the outages page.
I created a system status database in MS Access that could be printed to
the page using ASP and SQL. I also quickly created a Visual Basic
program that made updating the database very straightforward and fast. Important system notices are also displayed on the front page of the site. |
News Page |
Same deal as the Outages page! News is displayed, and employees have a VB application for adding news items to the site. |
Site Statistics |
I'm a big numbers person, so I also made it easy for CCS to view detailed
statistics about how the site was being used. What pages were
most popular, what sites were forwarding users to pages that no longer
existed (the site had been redesigned and reorganized just before I
started working there), what browsers and operating systems were being
used... |
404 Tracking |
I wrote a script to capture information about 404 requests (requests for pages that didn't exist). This helped locate broken links within the CCS site and allowed us to contact other sites that had out-of-date links on their pages. The 404 page also presents the user with a feedback form allowing CCS to email them the information they needed. Update: My amazing 404 page no longer exists! You just get a search box now. A step backwards! |
Sigma Psi Alpha Sorority
|
HTML and CSS by me. Graphics by Humera Ali. |
X-Canada Quest |
In grade 12, I was part of a teacher-selected team that made a section of the National Capital Commission's website. I was the lead HTML designer.
(No longer online) I was originally asked (out of the blue) to take part in the research and writing of the project, but asked to do the website design instead, since that was a little more exciting to me ;) |
NDDHS |
I made a website for my high school when I was in grade 11. (It has since been replaced) |