Andrew Joji
← Back to home

Programmer Analyst (UBC Co-op)

UBC Student Housing & Community Services / UBC Bookstore · Vancouver, BC · Jan 2023 – Aug 2023
0:00 / 0:00

Where I started

This was my first co-op, split across UBC Student Housing & Community Services and the UBC Bookstore. My first real project was a housing work order system still running on JNLP — a Java desktop app launched through the browser, the kind of thing that quietly keeps working for a decade until it can't. I spent the first stretch just reading it: how housekeeping staff actually used it, where requests got stuck, what the data model assumed that wasn't true anymore.

From there I led the migration to a web-based platform built on PHP (Yii2), JavaScript, jQuery, SSRS, and SQL — gathering requirements from staff across departments and aligning on what "better" actually meant for the people using it day to day, not just for the migration checklist. Accessibility and functionality metrics moved by about 30% once it shipped.

Making it real-time

The old system's data was static and hard to trust. I connected the new platform to live MySQL tables and added pagination so housing and work order records reflected what was actually happening, not a stale export.

On the Bookstore side, I designed and built a RESTful API integrating student information with bookstore systems, keeping backward compatibility with what already depended on the old data and passing full acceptance testing in Postman before anything touched production.

Two departments, one point of contact

Shipping the system was only half the job — people had to actually be able to use it. I led onboarding and training for frontline housekeeping staff moving onto the new browser-based work order tool, including getting it working smoothly on the iPads they carried on-shift.

At the same time, the Bookstore was migrating to new enterprise software and to Workday Student, and I ended up as first point of contact for technical support there too — mostly non-technical staff hitting friction on a system that had just changed under them. Running both at once meant a lot of context-switching, but it's also where I got comfortable translating something technical into whatever a specific person actually needed to hear.

Programmer Analyst Co-Op "Day in my Life"

Cleaning up the last mile

Toward the end of the term I managed a VDI migration across 20+ desktops. The technical part was straightforward; what actually moved the needle was documentation — writing things down properly on Confluence and communicating changes before they landed instead of after. High-level support requests dropped about 40% off the back of that alone, which taught me early that a lot of "technical" problems are really communication problems wearing a technical costume.