So, who has Sam worked with?
(Swipe left to find out)
WHO?
JOBS
(Swipe left to find out)
An 8-month project to create 5 new features for Apple's Marketing, Social Media and Business Affairs teams, using Third Light Chorus as the platform. Closely working with Apple managers, I led a team that designed, prototyped, user-tested, planned, developed, tested, documented, and produced tutorial videos for them. We shipped all features on time, meeting Apple’s high standards of user-friendliness and UI polish.
Concepts and prototypes for various unreleased Microsoft hardware: apps for Windows Phone, Kinect motion sensor, and Surface 2. Working for Microsoft Services in New York designing the UI for the Domain Awareness System. As a long-time Apple user, my friends and family were amused to see me with a Microsoft lanyard.
This was my most recent position. Product vision, discovery, and planning for Photoshelter’s ambitious roadmap. Design and UX management for ongoing projects. Photoshelter didn't need two leaders in the product team, and the current SVP already had the top job, so I volunteered for 'gardening leave'. We parted amicably and I took a mini-sabbatical.
Product vision, discovery, design, planning, UX, team leadership, and project management for Chorus, a state-of-the-art media asset management and workflow system. I led Chorus from inception, through 35 releases and 4 major versions, to an 8-year-old mature product serving the marketing and creative teams of many big brands, including Apple, Sony Interactive, ITV, BAFTA, and Virgin. We were bought by Photoshelter in late 2021.
A joint project with the New York Mayor’s office, Microsoft and IBM. Design and UX for the Domain Awareness System anti-terror control room. It’s not often you get to design for a 50ft screen, or design icons for biological and nuclear attack. Living out of boutique hotels in Manhatten was fun too. I had to sign the British Official Secrets Act and use an encrypted laptop.
Design, web development, and interactive games and puzzles for BBC Online, including a somewhat memorable flash game where you hit a famous footballer with a rolled-up newspaper. The BBC canteen was always a fun, you never knew who would be next to you in the lunch queue.
UX and development work for an upgraded, rebranded website for the Business School, including site management UI, and article search. A beautiful design by BAFTA-award-winning Jason Arber.
Design and build for a very foxy new website for Greene King, with the design and development of crossword solving tools for the discerning, no doubt pipe-smoking, OSH drinker.
Branded trading dashboard with lots of graphs in red, black, and purple. The most memorable part of this job was the HSBC building itself, resplendent in black and purple. It had glass meeting rooms that would turn black at the flick of a switch and a boardroom straight out of James Bond.
A branded trading platform in green and black with Bloomberg Terminal integration. My first design was sent back with a note that I hadn’t provided room for enough zeros. I naïvely though $10,000,000 would be enough for a buy button.
Design concepts for the EasyJet board of fun ways to celebrate the company’s anniversary with customers.
Design & UX for a sub-site of the Aviva website and the integration of a new branding. The view from the Aviva building right down onto The Gherkin was what I most remember about the job.
Design and development of a unisex clothing range for one of Scotland’s biggest football clubs. I also designed their best-selling item: a “Mols Means Goals” t-shirt. Beleive it or not, I worked on merchandise for Glasgow Celtic too at the time. Shhh!…
WORK
I worked on Chorus from 2012 until 2022, though the real development didn't get going until 2014.
We shipped 35 releases and 4 major versions.
It's a large chunk of my working life, of which I'm very proud—Chorus is a great product, used by many of the world's top creative teams.
Rather than give you a deep dive into all its features, I thought I would go over some of the nice little bits of polish I added, and why I'm still pleased I did.
I guess it seems old-hat now, but Chorus was right at the forefront of drag & drop uploads. Eight years on, we still do it better than most.
We really went all-out to try to get our web app to feel like a desktop app.
You can drop hundreds of images and folders at once. Then navigate around and keep working as they upload, so anyone viewing the same folder from another browser will see the progress. We even use chunked uploads, so we can resume if anything goes wrong.
It's a little thing, I know, but it always annoys me when you have to find some special UI to upload an avatar, so I made all avatars drop-on-able.
That little popup has a pin on it, so you can keep it open and find an image in your site. The Images in Chorus are all drag-&-droppable.
To add a user to a space, you pick up their avatar and drop it into a role. More than that, you can pick as many avatars as you want and add them all together — we added multi-select to every list.
Chorus had many little features that people used without realising it—working cursor keys, shift-select and command-select to select multiple things at once.
In a time when most DAMs had static, stripy, lists of files, I wanted something properly visual like the Finder on a Mac, but with giant image thumbnails. Making it work like a Mac was a no-brainer — why teach everyone some other way of doing things when you could simply drag things in and out of folders and double-click to open them?
We did have stripy lists of files, too. But they also worked just like a Mac.
I really wanted smooth zoom & pan, and standard keyboard shortcuts, in Chorus. Whenever a UI was managing files we made it work like a Mac, whenever we were previewing files, we made it behave like AdobeCC, in particular Bridge and Photoshop. That way, if a creative user uses their muscle-memory, the right thing will happen before they realised what they've done.
Another interesting choice I made was to make pan and zoom carry over from one image to the next. This meant that you could zoom into a detail in one image, and then use the cursor keys to flick back and forward between similar images in a photoshoot. Great for checking small details.
When we created this cropper, croppers were dashed regions you drew on an image. I always hated those, they were fiddly and inaccurate. I wanted something properly WYSIWYG. Again, the world agreed and now this kind of cropper is standard. Ours is still one of the best, I think.
It was a surprisingly controversial decision (at the time), but when we came to add overlays to the cropper, it was clear that it had been the right way to go.
Wherever possible, I wanted Chorus to visually describe what is going on rather than list it. Desktop stacks were an idea that had been floating about the HCI/UI world for a long time. CSS could now do rotations and shadows, so I went all-in on them.
Under the hood, our file-sharing system and our 'spaces' system were conceptually the same thing. So, it was natural to use similar drag & drop UIs for them. This UI made it straightforward to share files with multiple users, each with different permissions.
Square Polaroid-style images look great in screenshots. But for photographers, it's important to be able to see photos in landscape and portrait. I'd been playing around with ways to zoom large numbers of images in real-time and, after multiple tries, we made it work reliably in all browsers. It may have been a mistake to hide such a cool little feature away in a menu like this, but I didn't want those kinds of controls cluttering up the main interface.
In a UI with an editor and previous/next buttons, it's vital to be able to see when you have unsaved changes. This UI makes it very hard to miss them, without them becoming too dominant.
We tried whatever we could to make it less painful to edit large numbers of images in one session. This UI is completely usable without the mouse. It also has several keyboard shortcuts, including ones for save-and-next.
I didn't like the way most PDF viewers worked. I wanted something simple that made it easy to scroll and zoom far in, as many of our users would be checking fine details rather than reading long documents. Plus, I wanted smooth mouse-scrolling, drag-to-pan, and a key modifier for zoom-on-scroll.
Other DAMs had difficulty showing multipage PDFs, let alone multipage PDFs where every page could be a different shape or size. But this is important to creative work, so I made the team do it (sorry, James).
Being that I laid out the first CSS for Chorus, I made sure that the view zoom keys worked to change the size of the UI. I only used SVGs for the UI (again, very unusual at the time) so we could zoom right in without the UI breaking. This was great for people with long-sightedness, people with small laptops, and people like me who had to check all the SVG artwork. It’s only a coincidence that I have all three.
It became apparent that many of our customers used folder-names to organise their files, rather than metadata. Chorus's metadata was best-in-class, but it was unreasonable to expect large media organisations to tag their giant libraries when we could simply search their folder-names.
Getting this to work was straightforward. Getting this to work fast wasn't. Chris persevered and, after many stabs at it, we had real-time drop-downs on sites with thousands of folders. Which delighted ITV.
Here are some of the advanced features we added to Chorus in V3 & V4 to help creative teams bring their review and approval cycles down from days to minutes.
Comments, annotations, tasks, derivatives, revisions, desktop-syncing allow teams to share, review, check, leave notes, approve and ultimately—use—each other's work. A detailed activity log helps everyone keep track of the project’s progress.
Hopefully, you will be able to see the level of thought, detail, and polish we applied to the UI.
We chose to build annotations on top of the chat feature rather than have two separate systems. Annotations are a conversation, after all. It turned out to be an inspired design choice as, once we added Slack integration to chat, we also had Slack integration with annotations. We had already built the activity log into chat too so that you could see a combined history of changes and comments together. One timeline for each file and each project worked well.
We also added multipage annotations to PDF files (and other multipage documents).
Chorus stores every revision of a file, so we had to consider what would happen when you revise a file that has been annotated. We decided to give each revision a new annotation 'board'. This way you keep a full history of annotations and changes. If you click on an annotation in the chat, it will automatically open the right board and highlight the annotation.
Video annotations took annotations into the 4th dimension. We added the ability to leave an annotation on any timestamp of a video. While you could click on one and be taken to the still frame, we also added the ability to watch them live. To make sure they weren't just a blip, we had to display each annotation for several frames before and after the annotated timestamp.
We added the ability to save cropped, resized and reformatted assets back into the DAM. Rather than render them as new files and store the data, we chose to save them as a derivative — a recipe for how to make the files on-the-fly when needed. This meant that derivates wouldn't use any quota. As derivatives were made as-and-when needed, it also meant that you could make a change to the original file and all its derivatives would update too. It also made it effortless to create and distribute low res versions of your files—If you would rather not share the hi-res version of the file, make a low-res derivative and share that instead.
Revisions give a team the confidence to work fast and break things, knowing that there is always a backup. Once we introduced Project Sync, revisions meant that we could keep every edit and a way to go back if a change wasn't approved. Once we introduced annotations, revisions meant that every note could be attached to the correct revision and no notes needed to be deleted to sync the annotations with the latest edit.
One of my early mantras was that the DAM industry had to become like Dropbox faster than Dropbox became a DAM.
Chorus was always envisioned as having a desktop syncer, and many early decisions were made assuming that a syncer was coming. As a product leader, I was acutely aware that any small design decision could make a syncer impossible to add without breaking things. I still have no idea why we ever allowed two files in the same folder with the same name—madness!
The real magic of Project Sync is in syncing shared folders and working together—live. Here I'm editing a file in Sketch and saving it into a synced folder.
Mégane and I gave a phenomenal demo showing how you can link files into an Adobe Indesign document and sync them all in one project folder. Seeing everything update in realtime is magical!
I, personally, built the original UI prototype of Project Sync using Electron, while on a caravanning holiday in Scotland (it's wonderful how productive you can be without working internet or phone)
Chorus's license expiry management system is a complex feature that I designed, primarily, for one important customer with millions of images to manage.
It solves the problem of how to keep track of licensed things within images and videos — like music, models, logos, tattoos, animals, locations, as well as the rights of the photographers and videographers.
Building on top of existing systems allowed us to offer richer experiences and complete the work faster than if we had built it from scratch.
Note: I'm deliberately using the American spelling of license. 😊
A social media manager needs to use an image as the thumbnail of a YouTube video. They only have access to a watermarked version, which they've used to make a mockup.
Once the video is approved for publishing, they will need to request permission to use the un-watermarked image.
The social media manager selects the files they require and fills out a usage approval form. Every approval team within the company can customise the form. So, a music licensing team can have different fields to a brand licensing team.
We built the forms on top of the custom metadata system, so each field is just a metadata field. The checkboxes are simply controlled keywords with an alternative display mode.
The licensing team receive a request in their workflow inbox. Any member of the team can process the request.
By reusing file collections and the file-browsing system, we were able to offer chat between the teams for each request negotiation, 'for free'.
By showing the files in a full browser component, rather than a list, the managers can browse, preview, and even edit the collection to remove files they don't want included—
—and, of course, check the licenses here.
The form is summarised to make it easier for the licensing team to check the details. They have to check each box for the agree button to work.
But before they can do that, they will need to check the licenses for each file requested…
Licenses are displayed in the licensing tab of the file viewer. These two licenses have been set up but have not started to count down yet.
Each license displays what it is licensing, how long it is licensed for, and a link to the document in the system where the licenses are granted.
As we built the licensing system into the normal browsing system, we can check many licenses at the same time, and any metadata we need to make an informed decision.
Lets click through to view the license agreement document…
License agreement documents are stored in the system as normal PDF files. Their licensing tab is set to 'provide' rather than 'use' licenses.
This agreement contains a single license granted by the model (in this case a mountaineer) for the use of their likeness. They have chosen not to time-limit it, so this license term is 'In Perpetuity'.
This license is for the use of a single photo for a 3-year term. The time will start ticking down the moment the file is published.
A whole photoshoot can also be licensed from a single license in a single agreement, vital when there can be thousands of photos in it. The license for all the photos in the shoot will start ticking down the moment the first file is published.
An agreement can also grant multiple individual licenses. For instance, a voice-over artist could make multiple recordings in a session and license them, individually, in one document. These licenses will expire on their own terms.
Having checked the terms of the licenses, the licensing manager can approve the use of the file.
They click the approve button and mention the 3-year term in the chat.
A note is automatically added to the activity log explaining exactly what has happened.
In Chorus, watermarking is permission-based, meaning that the system only has to change a single permission for the watermarks to disappear for the social media manager.
Magically, the watermarks disappear. Chorus live-updates, so you don't even have to refresh the page.
They download the file and apply it as the thumbnail on the video…
Awesome.
They publish the video and, while waiting for the likes and subscribes, they let the licensing team know that the video is now live.
The licensing team now add a 'first published' date to the file and all the licenses it uses become live.
If this was the first file published from a large photoshoot, every file in the photoshoot would become live too.
The licenses go green and the terms start.
In this case, only the photography license is counting down. The mountaineer licenced their image in perpetuity.
Three years later, the license is about to end.
The system will have already sent several automated emails to the licensing team. Usually, they require weeks, if not months, of warning if they are to negotiate an extended license.
If they do, the system can 'addend' the licences by appending the new PDF onto the front of the old document. Then the licenses can be edited, or new licenses generated against it.
There are loads more to this feature than I’ve been able to show here. For instance—
• Licenses can be applied using drag & drop to hundreds of files at once. Every license can show an editable collection of every file it is applied to.
• If a video is made up of video clips, music and images, you can apply the licenses to those files and then apply those files—and their licenses—onto the final asset. The system will work it all out.
• You can use a ‘proxy’ file to represent the final published asset and manage the published date from there. Our customer takes a screenshot of the social media post for this purpose.
• Licenses can have custom metadata and share it with the files they are applied to.
• There are expiry reports that show whch licenses are about to expire. We even email out PDFs every Monday morning.
To find out more, here's the documentation I wrote for the module —
CV
He / him, or they
10+ yrs product & design leadership • Hired & managed diverse agile teams • Hands-on in all areas • Led 8-month project with Apple Inc. • Shipped 35 releases; 4 major versions
Product, design, UX, icon design, • games, prototyping • Microsoft, NYPD, Lloyds Bank, HSBC, • Aviva, EasyJet. • Prototyping for Kinect, Windows • Phone, Surface 2, for Microsoft
Working with GTA / Lemmings team • Product strategy, world design, game design, • UX design, prototyping, casual games. • 3D platform development, UX technology. • Team leadership, hiring, team building, • mentoring.
Previously: Zeus Technology • Green Cathedral • BBC Online • Brand • Glasgow University.
Very Experienced • Broad skillset • Creative thinker • Customer-focused • Data-driven • Team-builder • Self-motivated • Always learning
SAAS & mobile Apps • Joined-up vision • Discovery, product roadmaps • Measuring KPIs; watching MRRs • User-centric, systems design • User profiles, metrics, testing • UX, UI, prototypes, iteration
Agile, Scrum & Kanban • Certified Scrum Master • Estimation, tracking, projection • Good communicator • Strict chair of meetings • Experienced at hiring • Supportive team leader • Builds diverse teams • Not a micromanager • Loves a good graph
Sketch, Figma, Adobe CC, Miro • HTML, CSS, SVG, Javascript • React, Node.js, NEXT.js, Remix • SQL, Postgres, Supabase, Go, Git, GitHub • Electron, React Native, SwiftUI • JIRA, Heap, Amplitude, Productboard • Basecamp, Trello, etc.
Writing Children's novels • Designing Games • Creating a replacement for Facebook • Drawing rude cartoons and trying to get them into Private Eye (one so far)…
Playing music • Songwriting • Cooking • Gigs • Swimming • Drawing cartoons (mostly rude) • Cycling • I own a banjo • Sorry
THANKS!