Experience
I have worked in web development since 2008: in web, creative and digital agencies, then a healthcare communications agency and an immersive technology studio. I hold a 2:1 BSc in Computing.
-
Owning a product from concept to maintenance
As development lead at a healthcare communications agency I created a complete multi-tenant eLearning platform, from concept to completed product.
I was fully responsible for its software development lifecycle and its development direction, and it operated as a software-as-a-service product within an agency environment.
- Concept
- Design
- Build
- Launch
- Maintain
Platform core
One codebase
- Courses
- Learners
- Reports
-
Tenant A
-
Tenant B
-
Tenant C
One platform core, built up stage by stage, runs a site for each tenant. Every tenant has its own branding and data, and shares the codebase and its modules. Select a tenant to trace what it shares. -
Leading the technical side of a team
I have led web development in my last three roles: as lead senior developer at a digital agency, as development lead at a healthcare communications agency, and now as technical lead at an immersive technology studio.
Alongside the engineering I work within the wider team as a digital expert, advising senior management and account managers on all things web and digital.
My background in agency work gives me a strong understanding of how to balance budgets, time and quality, and the skills to work with colleagues and key stakeholders towards the best outcome and the long-term sustainability of a system.
Account manager In business terms
Me
Developers In technical terms
- Account manager asks: “Can we launch before the conference?”
- I brief the developers: Release 1: sign-up and agenda pages. Release 2: live chat.
- The developers reply: Release 1 fits the date. Live chat does not.
- I answer: “Yes, with sign-up and the agenda. Live chat follows after.”
- Senior management asks: “Can this be done for less?”
- I brief the developers: Reuse the sign-in and page templates we have. Drop the custom reports.
- The developers reply: Reuse saves most of the build. The reports are the costly part.
- I answer: “Yes, if the custom reports wait for a later phase.”
- Account manager asks: “Why not patch it again?”
- I brief the developers: Third fix to the same module. Replace it and cover it with tests.
- The developers reply: Slower than a patch now. Quicker for every change after.
- I answer: “It takes longer this time, and every later change gets quicker.”
A question arrives in business terms and goes to the developers as a technical brief. Their reply comes back the same way, as an answer in plain words. The exchanges are invented examples. A question about -
Modernising how software gets built
I joined a digital agency to help modernise its digital production: educating the team on version control, implementing best practices and standardising workflows.
I replaced a central office server and FTP uploads with Git repositories, staging and live branches, and deployment scripts for more than 80 live websites. I also implemented frontend preprocessing workflows and introduced object-oriented techniques to make the custom WordPress themes modular and scalable.
I have since made the same kind of change to my own practice, moving from traditional development methods to working primarily with AI code agents.
Before: files went by FTP from one office server straight onto the live sites, with no version history. After: commits go through a staging branch to the live branch, and a deploy script puts them on more than 80 live sites. -
Platforms and APIs
Across two spells at an immersive technology studio I have designed and built Laravel-powered APIs and administration systems for augmented and virtual reality apps, working with the Unity developers to deliver globally available, secure APIs.
My primary role today is building and maintaining the systems that manage VR and AR experiences and their data, alongside internal and client-facing tools that support the business.
I have delivered this work for large organisations such as universities, government departments and international pharmaceutical companies.
- VR headset
- AR on a phone
- API
- Secure connection
VR headsets and phones running AR, anywhere in the world, send requests to one API and get responses back over a secure connection. The positions are for illustration, not real places. Drag the globe to turn it. -
Integrations and data
I have built complex Salesforce integrations for international charities and membership organisations, and I am used to normalising and sanitising data and consuming third-party APIs.
I am comfortable handling large datasets and love squeezing every millisecond of performance out of a query. I understand the importance of thinking ahead when designing user-facing systems, APIs and data structures.
- Trim
- Standardise case
- Parse dates
- Match duplicates
- Validate
- Sync
Member records Sample data, made up for this page
NameEmailJoined ResultRobin Demo missing 2022-02-28 Held back: no emailSam Example sam@example.org 2024-03-07 SyncedPriya Sample priya@example.org 2023-11-02 SyncedPriya Sample priya@example.org 2023-11-02 Duplicate of record 3, mergedJo Testcase jo@example.org 2021-06-15 SyncedCRM 3 records synced, 1 duplicate merged, 1 held back.Five made-up records arrive untidy, are cleaned one step at a time and are synced to a CRM. Each step is a real function run on this sample in your browser. The records have mixed capitals, stray spaces and dates in several formats; one person is entered twice and one record has no email address. The good records are synced, the repeat is merged and the incomplete record is held back. -
Accessible interfaces
My final year degree project was designing and building an online message board to integrate with an existing online community, using good human-computer interaction practice.
I have built accessible, responsive websites and systems for a wide range of clients since, from small business websites to complete platforms.
Thursday meeting
Robin
Is the hall open before seven on Thursday?Sam
Yes. I will open up at half past six.A screen reader announces
- Name
- Post reply
- Role
- button
- State
- none
Text contrast in this palette
- Text
- Secondary text
- Links
WCAG AA asks for 4.5:1.
A small message board built from real controls. The numbers show the order the Tab key visits them, and the panel shows what a screen reader is told about the one in focus. Tab through the board, or tap a control, and the panel follows.