Work

Selected projects from seven years of in-house communications at SAITSA, a students’ association at SAIT in Calgary, plus recent independent work and design.

Design

Album covers, posters, menus and print, from seven years at SAITSA, my band, and a few outside clients. Click any image to see it larger.

Album covers

Don't Be Sad album cover: a photographed collage of a childhood photo, a locket, a unicorn tray, a nine of hearts, sunflowers and dried flowers, with the words don't be sad cut from handwriting

Don’t Be Sad, Little Super Dangerous

A tribute to my mom. It’s a real collage I put together and photographed; the band’s name and the cutouts of her handwriting were added digitally.

The main photo is her as a child, and the small one in the bottom right is me, in a locket she had. The unicorn tray was hers, the flower pattern behind it is a vintage stool I own, and the nine of hearts is from a deck she bought me for Christmas before she passed away. The sunflowers were her favourite flower. The words “don’t be sad” are her handwriting, and the sticker in the top right is the band’s logo, Zippy Flickerino.

Wake-Up Call album cover: cutouts of the band members over a yellow, green and red gradient with a rotary phone and sunflowers

Wake-Up Call, Little Super Dangerous

Another collage, made from cutouts of the band. We have a hard time getting one photo where all four of us look like cool musicians, so early on I started cutting out the best shot of each person instead.

The sunflowers from the first album come back to tie the two records together, and the old rotary phone is at our drummer Julian’s house, shot during the photo shoot for our single “FLE”.

Gig posters

Posters for shows, my band’s and other people’s. The Hazy Sunday posters were for a show at Cabin Brewing, and take inspiration from Cabin’s popular Super Saturation can. The three versions show how a poster changes between drafts. High Kicks and The Dudes were two of the better-known bands to play the Gateway, the campus bar.

Campus campaigns and events

Most of my design work at SAITSA was event and campaign promotion. One idea usually shipped in several formats the same week: a tabloid poster for the walls, a square for Instagram, a wide crop for the campus TV screens, and sometimes a rack card for the resource centre. Each piece had to fit the brand and still stand out on a crowded corkboard.

The first three are holiday posters I illustrated myself, from before SAITSA changed its logo.

In print: BeatRoute

I designed the Gateway’s full-page ads in BeatRoute magazine for October and November 2019, listing each month’s shows. The last three images are from the magazine’s online archive, showing the ads as they ran.

Food and drink

I designed the menus and drink features for SAITSA’s food and drink venues: the Odyssey, the coffee shop every SAIT student of the last decade knows by name, and the Station. One drink feature went out on social media, the website, posters, table talkers in the café and flyers. The Odyssey’s drink and food menus were printed large and hung on the walls as the real menus.

Side projects and outside clients

Two pieces from outside my SAITSA work. King Creatus is a zine I self-published that teaches the principles and elements of graphic design through a hand-drawn wizard king of creativity. The annual report for Enactus Mount Royal, the university’s student social-enterprise team, was made for their 2017 national competition and laid out on one 11×17 sheet that folds down.

Communications

Tedi the Yeti in a Calgary Flames jersey pointing at a smiling student holding a Flames Student Nights ticket
Result 1,000+ Opt-in SMS subscribers
Scope BrandCharacterSMS marketingPartnership
Tools RAANGETextMagic

Tedi the Yeti

The problem

Students mixed up SAITSA and SAIT all the time, and SAIT already had a mascot, the Trojan. SAITSA had no character of its own, just a yeti on a winter orientation poster and volunteers who had once been called YETIs.

The constraints

A mascot needed board approval and buy-in from across the organization.

What I did

Named the mascot (Theodore Yettison), wrote his origin story (took a nap between classes in the ’80s, vanished inside the old campus centre, rediscovered decades later when they tore it down), and was the first person to don the suit.

I also researched, launched, and trained staff to run the Tedi Hotline, an opt-in SMS channel.

What changed

Tedi became a beloved mascot and a naming device for programming, like Tedi Market and Tedi’s Friendship Circle. The Tedi Hotline was the one I came up with myself, as a marketing channel, and a sponsored partnership with Calgary Sports and Entertainment Corporation turned a Flames ticket giveaway into 1,000+ opt-in subscribers. He’s still in use after I left. Students still light up when they see him. Staff too.

The rebuilt SAITSA student bulletin displayed in a phone frame
Result 120,000+ opens
Scope Email marketingBrand management
Tools Constant ContactClaude CodeHTML/CSSClickUp

The Student Bulletin

The problem

The student bulletin was stuck in Constant Contact’s drag-and-drop builder, which was slow and awkward to use. It had no hierarchy and no relationship to the visual identity the design team was building. Every issue meant tracking down graphics sized for the bulletin, or asking for new ones, custom headers included.

The constraints

Every email client renders HTML and CSS differently, Outlook worst of all. The template had to work everywhere, and the social media coordinator had to be able to send it as easily as I could.

What I did

I rebuilt the template in table-based HTML/CSS with Claude Code, read and edited the code by hand, and tested it across email clients until it matched the student handbook. The graphics were a holdover from an older way of working, so I replaced them with HTML and CSS styled after the handbook. I often wrote the copy or served as final editor, and I moved the bulletin from monthly to every two weeks. Bulletin requests and tasks ran through ClickUp.

What changed

Input the event list and the copy, get the HTML, send. That took the job off a busy designer’s desk. Because the organization owned the code, it could switch email providers without a rebuild, including a planned move to Canadian-hosted infrastructure. The advertising page I built for sponsors listed the bulletin at 120,000+ opens and 9,000+ unique clicks.

The association’s advertising page in a browser frame: audience figures above a carousel of ad channels, starting with the home page banner
Result ~$50K sponsor activations, 2024–25
Scope SponsorshipSalesMedia kitIntake
Tools ClickUpWordPress

Advertising and sponsorship

The problem

Ads and sponsorships were booked over email or phone, with no set process and no shared record of what had been sold or to whom. Other departments also reached out to sponsors on their own, sometimes to partners we already had a relationship with.

The constraints

Nobody’s job was sales or sponsorship. It sat inside other people’s duties, mine included.

What I did

I built the sponsor CRM and the intake forms in ClickUp, so every activation went through one place. I wrote and built the advertising page, which sold five channels together: the campus screens, the home page banner, the student bulletin, the Tedi Hotline and the handbook, each with its own specs. I pitched sponsors directly, prepared and filed the contracts, and often designed and placed the ad creative as well. Moving the bulletin from monthly to every two weeks doubled the placements there were to sell.

What changed

Roughly $50K in sponsor activations went through that intake across 2024 and 2025, from partners including Specsavers, Scotiabank and Calgary Sports and Entertainment Corporation. Some of those accounts stayed with me as long-standing clients.

Saitsa homepage in a browser frame
Result 100+ pages managed
Scope CMSWebsite administrationVisual identityWeb security
Tools WordPressDiviBrizyBlocksyThe Events CalendarRankMathGravity FormsTallyCloudflareClickUpGoogle WorkspaceBitwarden

saitsa.com

The problem

The site ran on a custom WordPress theme edited with Divi, a heavy, slow page builder. The layout was too restrictive for the number of pages the association had and the things it needed. Students applied for the Wellness Bank, Emergency Food Fund and Good Food Box on paper, by email or in person.

The constraints

The design team set the direction in print and social; my job was carrying those assets onto the web, page by page. Tedi Market, Elections, the Odyssey, Gateway Events: each sub-brand had its own look, and the site had to hold them together as one organization.

What I did

I led the move from Divi to the Brizy page builder and ran the site as webmaster: 100+ pages across every program, service, and event. I built templates and global sections wherever I could, to cut editing time, and built intake forms for the Wellness Bank, Emergency Food Fund and Good Food Box. The forms started in Gravity Forms and later moved to Tally. I also built the website update form staff used to request page changes and new forms, and those requests ran through ClickUp. On the IT side, I administered the organization’s Bitwarden password manager and the Google Workspace for Non-Profits account, which I researched and applied for.

After an attack injected malware into the site, likely through a WordPress plugin vulnerability, I cleaned it up with the host, moved the default login page, and put the site behind Cloudflare’s security.

What changed

The forms asked students for everything the team needed at first contact, instead of an email that could say anything. The site drew 15,000+ visitors and up to 49,000 page views a month.

SAITSA Survival Guide covers
Result 120 pages designed
Scope Publication designPrint productionAdvertising sales
Tools InDesignIllustratorPhotoshop

Student Handbooks

The problem

The association had a new brand, and the Survival Guide needed a full redesign to match it.

The constraints

Two and a half months to design 120 pages, with paid ads to sell and lay out alongside the editorial pages. Copy had to be approved by several departments, and some of it came from SAIT, outside our organization.

What I did

In my first year on the job, I redesigned the handbook cover to cover: student resources, an events calendar, internal ads for SAITSA services, and paid advertisements I laid out and sold, back cover included. I designed most of it myself, with a part-time designer helping on some of the ads. More recently, I created the student-deals coupon page.

What changed

The most-distributed print piece the association produces: a 5,000+ copy print run plus 10,000+ digital views, handed to every incoming student. The coupon page was a new revenue stream, about $2,000 in ads on top of guaranteed income from CU Advertising, and it gave students real discounts.

Get On Board election recruitment page in a browser frame
Result 4,422 ballots cast, 2025
Scope Forms & workflowGovernanceSystems
Tools WordPressTallyClickUp

The Elections System

The problem

Nominations were mostly on paper until COVID moved them online. Once they were online, candidates kept filling out forms in the wrong order, the Chief Returning Officer’s biggest complaint.

The constraints

The forms had to follow the election bylaws and fixed deadlines, and work for the Governance & Advocacy manager, the Chief Returning Officer, and the CEO.

What I did

I built the submission side of the election. It started as a candidate portal on the website, made with a WordPress membership plugin, and later moved to Tally forms feeding ClickUp. Nominations ran in stages: a nominee had to meet one stage’s eligibility requirements, like the signed declaration and twenty nomination signatures, before the next form opened, and the Candidates’ Meeting was the last step. The CRO reviewed each submission and advanced the nominee.

Complaints, appeals, expense reports, and candidate photos, videos and profiles all came in through the same platform. I posted each candidate’s profile on the election page, and made sure every candidate got the same treatment under the election rules.

What changed

Wrong-order submissions stopped, because the portal made them impossible. The G&A department became our test group for rolling ClickUp out to the wider organization. My team also designed the election materials, helped with candidate videos, and put it all on the website.

2025 Calgary Mayoral Debate stage
Result 4,300+ watched
Scope Live eventsIncident responseWeb
Tools TallyGoogle Docs

The Mayoral Debate

The problem

The 2025 Calgary Mayoral Debate needed a way for the audience to send questions to the host, live.

The constraints

A few weeks from the marketing request to the event, and everything ran live, on camera.

What I did

I built the debate page, a pre-event question form, a live question form, and the workflow behind them: the team reviewed questions and pasted approved ones into a Google Doc for host Rob Brown to read. I chose Tally because its editor is quick to write in and easy to use.

What changed

At the 54-minute mark, the QR code failed on air, candidates at the podium: the graphic linked to the pre-event form instead of the live one. Rob handled it effortlessly, keeping the conversation going while I found the problem and rebuilt the live form inside the old link. With Tally, that was copy-and-paste, not a crisis build. Questions kept coming in, more than we had time to ask.

Little Super Dangerous homepage in a browser frame
Result $180→$0 hosting per year
Scope Web performanceAccessibility
Tools Claude CodeHTML/CSSCloudflare Pages

The Little Super Dangerous Website

The problem

My band’s site ran on WordPress and the Brizy page builder, the same stack I later recommended and ran at SAITSA. Pages weighed 17.4 MB, the mobile load took 18 seconds, and hosting cost $180 a year. WordPress was overkill for a relatively static band site, and for a lot of websites, but it’s what people know.

What I did

In 2026 I rebuilt littlesuperdangerous.com with Claude Code as a static site on Cloudflare Pages, reading and editing the code myself, the same way this portfolio is built. No runtime, no plugins, no page builder shipping its editor to every visitor. I also fixed the structure: untitled iframes, unnamed links, broken skip links, and out-of-order headings.

What changed

Hosting went from $180 a year to $0 on Cloudflare’s free tier. Pages dropped under 1 MB and the mobile load went from 18 seconds to 3.5. That is the difference between losing and keeping the person who scans a QR code at the merch table. Accessibility rose from 86 to 96, and SEO and best practices hit 100.