Create
Publish text, images, galleries, videos, polls and campaign content from a phone.
Case study
McDonald’s · Crew engagement platform
I led the full-stack development of an authenticated engagement platform connecting McDonald’s crew across the UK and Republic of Ireland through campaigns, mobile publishing, conversations, polls and prizes.
OurLounge was McDonald’s online destination for crew training, health and safety information and company news. The engagement challenge was encouraging employees to return regularly enough to see important updates alongside the formal material.
Working with Blue Goose, we began by creating light, enjoyable campaigns and competitions connected to OurLounge. These evolved into a much broader, Instagram-inspired social platform through which crew could share restaurant events, community work and promotions from their phones.
Blue Goose established the visual direction through mobile designs. I translated that work into responsive application behaviour across phone and desktop, then led the technical delivery across authentication, data modelling, the social feed, media processing, campaigns, moderation, notifications, reporting and the SimpleCog administration system.
I carried out most of the development directly, using junior developers for bounded tasks where appropriate. I initially collaborated with an experienced developer on SAML integration, then assumed ownership and later implemented a separate identity connection for the Republic of Ireland service.
The early campaigns used quizzes, polls, animation and prize draws to make internal updates more engaging and encourage repeat visits to OurLounge.
One recurring example was an advent calendar. Crew unlocked a new animated door each day, earning an additional competition entry for every door opened on the correct date and a further ten entries for completing the full calendar. Blue Goose created the artwork and After Effects animations; I worked with their designer on the format I needed, then integrated and controlled the exported Bodymovin animation in code.
More than 30 campaigns ran across the life of the platform. Early prize draws were exported and processed through an independent randomisation service. Later campaigns incorporated winner selection directly into the administration workflow, always after the current leaver list had been reconciled so eligibility remained accurate.
Polls offered a lighter form of participation. Each person could respond once, view the results after voting and return to them later. Marketing teams could compare response levels and activity across restaurants through the CMS.
The platform used OurLounge’s SAML single sign-on so crew could participate with their existing identity rather than creating and verifying another account.
On first authentication, the system created a limited local record from the supplied employee identifier, name, email address, restaurant and role information. Public identity remained deliberately lightweight, showing a crew member’s name, initials and restaurant rather than encouraging extensive personal profiles. Administrative posts could carry clearer role information where it was useful.
Crew could arrive from OurLounge or use a direct platform address. Anyone without an active session was sent through the OurLounge login and returned automatically to their original destination after successful authentication.
OurLounge did not provide a live deprovisioning event, so account lifecycle management was designed around weekly leaver exports. Administrators uploaded the latest file through the CMS, triggering cleanup of local personal data and preventing departed crew from appearing in competition draws. Once their central access ended, they could not authenticate again. Existing contributions remained part of the community record but were anonymised.
Crew could publish directly from their phones using interactions familiar from consumer social products, while the platform retained controls appropriate to an employee community.
Posts supported text, seasonal text backgrounds, single images, galleries, video, polls and campaigns. Links were restricted to administrators. The feed was chronological and remembered where each person had stopped during their previous visit, allowing them to return directly to posts they had not yet seen. Important administrator updates could be pinned.
Content was visible across the community but could also be filtered to restaurant level. Mentions of a person or restaurant could create an in-platform notification and, where enabled, a mobile push notification through OneSignal.
Publish text, images, galleries, videos, polls and campaign content from a phone.
Return to the chronological feed at the point reached during the previous session.
Comment, react and receive notifications when a person or restaurant was mentioned.
Pin important updates and filter the wider conversation down to restaurant level.
Images and videos arrived from a wide range of phones, formats and connection speeds. The publishing interface needed to remain understandable while the server performed the heavier work.
Uploaded photographs were corrected for orientation, resized, compressed and converted into the responsive variants required by the feed. User limits protected the platform from unsuitable files, while administrators retained greater flexibility for official content.
Video files were sent through an API to a specialist encoding service, converted into a consistent MP4 format and saved back to the platform. Smaller uploads displayed progress during processing. For longer jobs, the person could leave and receive a notification when the video was ready and the post had appeared.
Media was served from a cookieless asset subdomain, keeping requests lighter and separating delivery of high-volume public assets from application interactions.
Crew posts appeared immediately when they passed automated language and sentiment checks. Potential problems failed safely into review rather than disappearing or being published unchecked.
If content triggered a rule, it was accepted but withheld from the feed. The author received a clear message that it had been sent for review, and administrators were alerted through a dedicated CMS queue. Crew could also report content themselves, while administrators could remove posts or suspend an account.
Human review was important because automated rules inevitably produced false positives—including harmless expressions of excitement. The CMS preserved the underlying moderation data and activity history so administrators could understand why something had been flagged rather than making decisions without context.
The SimpleCog CMS gave the marketing team control over the platform without requiring developer involvement in everyday publishing, campaigns or moderation.
Administrators could create and schedule multiple content types, target or pin important posts, run campaigns and polls, review reported content, suspend accounts and manage competition draws.
Reporting covered active users, sessions, campaign participation, post and video engagement, reactions, comments, polls, restaurant activity, prize distribution and return visits. Teams could filter results by dates, campaigns and locations before exporting them for further analysis.
The reporting definition behind the headline engagement figure was deliberately concrete: an engaged crew member was a unique person who loaded the feed and viewed at least one post they had not previously seen.
Campaign launches created predictable surges far beyond everyday feed activity, particularly during the advent calendar when crew across both territories returned each day.
I combined load testing with careful application optimisation, caching and controlled background media processing. The challenge was not social-network scale in the abstract; it was ensuring that authentication, entry recording, winner eligibility and content delivery remained dependable when a campaign concentrated a large audience into a short period.
Security mattered for the same reason. The platform combined workforce identity, user-generated content and prizes of material value, so access, eligibility, administrative actions and data removal needed clear controls and traceability.
The platform operated in evolving forms from 2016 until 2022, when McDonald’s replaced OurLounge with Workplace as part of a wider global strategy.
The change was a corporate platform decision rather than a response to this product’s performance. Before closure, final reports were produced, required information was archived and the remaining platform data was removed in a controlled way.
For a global exhibition in Las Vegas, I built an installed web application that helped McDonald’s gather structured insight from event delegates and prospective restaurant managers.
Rather than presenting a conventional form, the application led people through an animated story about attracting and motivating restaurant teams, placing short questions at relevant points and ending with a film. Blue Goose supplied the visual assets; I created the application, transitions and data-capture experience across several staff-guided iPads.
The venue provided reliable connectivity, so responses could be submitted directly. Staff introduced the experience and the application explained how names, email addresses and answers would be used for follow-up.
The platform succeeded by making participation feel familiar while quietly handling the less visible requirements of an employee community: authentication, lifecycle management, media processing, moderation, eligibility, reporting and reliable campaign delivery.
It demonstrates the kind of full-stack work I most enjoy—taking a clear creative direction, understanding the operational realities behind it and building the complete system required to make the experience dependable at scale.