Skip to content
Dallan
HomeAboutWorkResumeContact
HomeAboutWorkResumeContact Me
  • GitHubGitHub
  • LinkedInLinkedIn
  • Amity ResultsAmity Results
  • Email Dallan JonesEmail Dallan Jones
Dallan Jones /about

Places

Portrait of Dallan Jones

Dallan Jones

workflow automation · long-running pipelines · AI service integration

I help turn complicated business processes into automatic systems. Most of my work has been on big platforms that help teams work together in real-time, automate payments, and manage data. Since 2024, I've also built my own products under Amity Results, including a software platform I own and built completely. I care about what happens behind the scenes as much as what it shows you, because that's where the real time savings come from.

Read the case studies

Where I've worked

Founder & Full-Stack Developer — Amity Results

Jul 2024 – Current

Founded and built a SaaS media platform that transcribes, translates and subtitles instructional video — my own product, owned outright from architecture through deployment.

Full-Stack Developer — Fabled Solutions

Sep 2022 – Mar 2025

Extended a legacy F&I platform used by 2,000+ dealerships — real-time collaborative editing, a role-based claims dashboard, and an automated XML/SOAP sync pipeline.

Junior Full-Stack Developer — Fabled Solutions

Mar 2022 – Sep 2022

Built a U.S. Bank Virtual Card payment integration, external REST APIs for insurance partner onboarding, and a multi-dealership vehicle purchasing workflow.

Coding Bootcamp Mentor — Juno College

Oct 2021 – Apr 2022

Mentored students one-on-one through coursework, debugging and refactoring, and reviewed their projects for code quality and maintainability.

What I do, and what it changed

Four capabilities I bring to product teams, each tied to work that shipped and a problem it changed for someone.

Workflow automation

Turn repeated, manual processes into dependable workflows. A safety instructor no longer has to translate aloud over the same training video in every class.

Read how

AI service integration

Connect transcription, translation and language models to real product workflows — with source-grounded timestamps, reviewable outputs and recovery when an external service fails.

Read how

Resilient background processing

Design long-running pipelines that can retry, resume and clean up after themselves. Upload, transcode, transcribe, translate and encode can each fail without losing the whole job.

Read how

Modernizing live systems

Add new capabilities without interrupting the people already using the system. A platform serving 2,000+ dealerships gained recording, AI transcription and searchable compliance records.

Read how

Why this work matters

The point is not another dashboard or an AI badge. It is software that removes repeated effort, behaves predictably when something fails and gives people an output they can actually use.

Less work gets repeated

Automation should remove a recurring task, not move it into a different screen. The result is time returned to the people doing the actual work.

Failures stay manageable

Retries, audit trails and explicit recovery paths keep a failed service or abandoned browser session from becoming an operational emergency.

AI produces usable output

AI matters when it is grounded in source material, placed inside an existing workflow and designed so a person can verify what it produced.

Proof in practice · Amity Results

A reusable lesson instead of a repeated translation

A safety instructor was translating aloud while her English training videos played for Vietnamese-speaking students. Amity Results turns the same source video into transcribed, translated and permanently subtitled material. She can teach the class instead of performing the same translation again, and the finished lesson can be reused.

See it liveHow it was built
Contact /contact
Contact

Let's talk.

Whether it's a role, a contract, or just a technical problem you'd like a second opinion on — send a message and I'll get back to you directly.

Direct

dallanjones@pm.me

Elsewhere

Based in Edmonton, AB. Typically replies within a day or two.

Résumé resume.pdf

Your browser won't display PDFs inline.

Download the résumé
Terminal ~

Desktop ready. Terminal available.

Screen Recording Audit Solution /work
Jump to section
  • Overview
  • Problem
  • Solution
  • Impact
  • Technical Challenges
  • Engineering Deep Dive
  • Migrating Live Recordings to Azure Blob Storage
  • Purpose-Built Logging for the Recording Pipeline
  • Project Scope
  • Backend
  • Frontend
  • Infrastructure
Project Details

Technologies

LaravelPHPVue 2VuexFFmpegAzure Blob StorageAssemblyAIQueuesLaravel PipelinesMonologREST APIs

Engineering Highlights

  • Legacy enterprise application
  • Used by 2,000+ dealerships
  • AI-powered transcription
  • Browser screen recording
  • Word-level transcript synchronization
  • Application event tracking
  • Background media processing
  • Zero-downtime migration to Azure Blob Storage
  • Self-healing recording pipeline for abandoned/crashed sessions

Screen Recording Audit Solution

Role Full Stack DeveloperIndustry Automotive FinanceUsers 2,000+ Dealerships

Overview

I designed and developed an integrated screen recording and AI transcription platform for FC Drive, an enterprise automotive F&I platform used by over 2,000 dealerships across Canada. The platform transformed customer finance presentations into searchable compliance records.

The platform automatically recorded each presentation, synchronized AI-generated transcripts with video at the word level, tracked presentation events in real time, and generated searchable PDF audit reports. By integrating directly into the existing dealership workflow, it enabled compliance reviews, dispute resolution, and employee coaching without disrupting the sales process.


Problem

Finance & Insurance (F&I) Managers conduct customer presentations involving optional protection products, financing, warranties, and contractual disclosures. These interactions directly influence purchasing decisions and must comply with dealership policies and regulatory requirements.

When customer disputes arose or compliance reviews were required, dealerships often had little more than completed paperwork and employee recollections to rely on. There was no reliable way to verify which products were presented, what was discussed, whether required disclosures were made, or how the presentation unfolded.

Reviewing lengthy screen recordings was also time-consuming, making compliance audits and employee coaching inefficient.

Without visibility into the presentation process, dealerships faced several challenges:

  • Customer disputes over whether products or pricing were disclosed.
  • Required disclosures could be unintentionally skipped.
  • Sales presentations varied significantly between Finance Managers.
  • Limited visibility into customer interactions for dealership leadership.
  • Compliance audits relied primarily on paperwork instead of the actual presentation.

As adoption grew across dealerships, the platform also surfaced a second, more operational problem: recordings and their supporting media (signatures, disclosure PDFs) were being written to local application disk, and with 2,000+ dealerships recording live in production, local storage capacity became a real constraint that had to be solved without interrupting recordings already in progress.


Solution

I designed and developed an integrated screen auditing platform that automatically recorded each Finance Manager’s digital sales presentation from start to finish.

Each recording captured the complete presentation workflow, including:

  • Customer information
  • Vehicle details
  • Product bundle selections
  • Pricing updates
  • Presentation changes as they occurred

To make recordings searchable and significantly easier to review, the platform integrated with AssemblyAI to automatically generate speaker-separated transcripts after each session.

Completed transcripts powered several advanced audit and playback features:

  • Synchronized subtitles during video playback
  • Word-level transcript highlighting synchronized with the video timeline
  • Full-text transcript search
  • Speaker identification (diarization)
  • Automatically generated PDF audit reports
  • Presentation event tracking embedded directly within the transcript timeline

Beyond recording conversations, the platform captured Finance Manager interactions throughout the presentation. Actions such as adding products, removing products, and toggling product visibility were recorded as timestamped events and inserted into the transcript timeline, allowing reviewers to understand not only what was said, but also what actions occurred during the presentation.

Managers could replay presentations while following synchronized subtitles, watching each spoken word highlight in real time, searching conversations instantly, and reviewing the exact sequence of product changes throughout the customer interaction.

Since recordings run unattended for the duration of a live customer presentation, the platform also had to account for how presentations actually end in practice — not just the clean case of a Finance Manager clicking “stop.” That requirement shaped a large part of the underlying engineering, covered below.


Impact

The platform transformed traditional screen recordings into searchable compliance records, enabling dealerships to:

  • Resolve customer disputes using synchronized recordings and transcripts.
  • Verify compliance with dealership sales procedures.
  • Search conversations instead of manually reviewing lengthy recordings.
  • Generate standardized audit documentation.
  • Coach Finance Managers using real customer presentations.
  • Reduce the time required for internal compliance reviews.

The solution integrated seamlessly into the existing FC Drive workflow, providing dealerships with a complete digital audit trail for every F&I presentation. The migration to Azure Blob Storage was completed against a live, in-production system with zero data loss and no disruption to recordings already underway, and the self-healing recovery jobs eliminated the class of recordings that would otherwise have been silently lost to browser crashes or abandoned sessions.


Technical Challenges

This project presented several engineering challenges beyond traditional CRUD application development.

  • Extended a large legacy enterprise platform without disrupting existing dealership workflows.
  • Built a resilient recording pipeline that periodically uploaded recording segments, preventing data loss if the browser crashed or unexpectedly closed.
  • Designed asynchronous recording finalization so completed sessions could continue processing after the browser exited.
  • Controlled recording from the Finance Manager interface while securely capturing the customer’s presentation window.
  • Offloaded FFmpeg media processing to queued background workers to eliminate client-side processing overhead.
  • Migrated recordings and related media from local disk to Azure Blob Storage while the system was live in production, including backfilling existing files via scheduled commands and streaming playback directly from Azure using time-boxed SAS tokens rather than serving from local application servers.
  • Integrated AI transcription with speaker diarization, subtitle synchronization, and full-text search.
  • Developed presentation event tracking that synchronized Finance Manager actions such as adding, removing, and toggling product visibility during customer presentations.
  • Built precise timestamp synchronization between application events, transcripts, and video playback to create a unified timeline of customer conversations and user interactions.
  • Implemented word-level transcript synchronization, allowing every spoken word to highlight in real time during playback.
  • Generated multilingual PDF audit reports with speaker attribution.
  • Implemented cross-browser screen recording despite significant differences in screen capture APIs and browser security restrictions.
  • Refactored partial recording ingestion into a Laravel pipeline (WithinTimeLimit → StoreFileLocally → CreateThumbnails → CreatePartialRecording) so time-limit enforcement, storage, thumbnail generation, and persistence became independently testable, ordered steps instead of a single monolithic controller method.
  • Stood up a dedicated logging system, separate from Laravel’s default application log, specifically for diagnosing recording pipeline failures in production.

Engineering Deep Dive

Migrating Live Recordings to Azure Blob Storage

Recordings — along with related media like signature images and disclosure PDFs — were originally written to local disk on the Laravel application servers. As adoption grew past 2,000 dealerships, local storage began filling up while the system was already live in production, so there was no window to take recording offline for a clean cutover.

The migration had three parts:

  • Completed recordings were converted to blobs and streamed into Azure Blob Storage as part of normal processing.
  • A set of scheduled commands (move:recordings-to-azure) walked existing DealMedia records in chunks and moved historical recordings, signature images, and disclosure PDFs to Azure without any of them becoming unreadable mid-migration.
  • Because Azure Blob Storage is access-controlled, video playback needed a way to stream directly from Azure rather than through the application server. I implemented Shared Access Signature (SAS) tokens scoped to a single blob, read-only, IP-restricted to the requesting client, and time-boxed to the configured recording time limit — generated on demand so playback could be done without interruption.

Purpose-Built Logging for the Recording Pipeline

Recording failures are asynchronous, multi-stage, and easy to lose in general application logs — a bug might originate in the browser, surface during partial storage, and only manifest visibly during the ffmpeg concat step minutes later. Rather than rely on Laravel’s default log channel, I built dedicated logging facades (RecordingLog and FinalRecordingLog) backed by their own Monolog channels, so partial-recording activity and final-merge activity could be traced end-to-end independent of the rest of the application’s logs.

Two details make this more than a renamed Log::info():

  • RecordingLog auto-captures its own call site. __callStatic grabs debug_backtrace()[1] on every call and passes the calling class and function into the log context before writing to the recordings channel, so every entry records where in the pipeline it was written without any caller having to pass that in manually.
  • A custom Monolog formatter (RecordingLogger) taps every handler on the channel to rewrite the line format to [%datetime%] [%context.class%@%context.function%] %channel%.%level_name%: %message%, so a raw log tail reads as [2025-01-01 10:00:00] [EncodePartialRecording@handle] recordings.INFO: ... — the origin of every line is visible at a glance instead of buried in a generic message string.

Combined with the [Deal: X Recording/Partial: Y] prefix passed into each message, this made it possible to grep a single deal’s entire recording lifecycle — partial storage, encoding, merging, cloud migration, thumbnail generation, transcription — out of the logs, and know exactly which class and method emitted each line, when investigating a production issue.


Project Scope

Backend

  • Recording pipeline
  • Media processing
  • AI transcription
  • Event tracking
  • Timeline synchronization
  • Queue workers
  • Webhook processing
  • Audit reporting
  • Cloud storage migration
  • Self-healing recovery jobs

Frontend

  • Browser screen capture
  • Recording controls
  • Video playback
  • Transcript viewer
  • Word-level transcript highlighting
  • Event timeline visualization
  • Subtitle synchronization

Infrastructure

  • Azure Blob Storage
  • Background queue processing
  • Media streaming
  • Custom logging channels
PreviousModernizing an Insurance PlatformNextTeaching Without Translating

Technologies

LaravelPHPVue 2VuexFFmpegAzure Blob StorageAssemblyAIQueuesLaravel PipelinesMonologREST APIs

Engineering Highlights

  • Legacy enterprise application
  • Used by 2,000+ dealerships
  • AI-powered transcription
  • Browser screen recording
  • Word-level transcript synchronization
  • Application event tracking
  • Background media processing
  • Zero-downtime migration to Azure Blob Storage
  • Self-healing recording pipeline for abandoned/crashed sessions
On this page
  • Overview
  • Problem
  • Solution
  • Impact
  • Technical Challenges
  • Engineering Deep Dive
    • Migrating Live Recordings to Azure Blob Storage
    • Purpose-Built Logging for the Recording Pipeline
  • Project Scope
    • Backend
    • Frontend
    • Infrastructure

All work

Case studies

  • Teaching Without TranslatingA media platform that transcribes, translates, and burns subtitles into instructional video — built so a safety instructor could stop translating aloud over her own lessons, after a thirteen-day emergency script proved the problem was worth solving properly.Laravel 12Laravel OctaneVue 3 Live Source
  • Making a Job Search MeasurableAn open-source job search workspace that turns applications, conversations, interviews, and follow-ups into one traceable workflow — then uses the history of that work to show what is actually producing results.Laravel 13PHP 8.3Vue 3 Source
  • Modernizing an Insurance PlatformAn enterprise claims management platform designed to streamline claim processing, improve collaboration, and automate complex business workflows.LaravelVue.jsMySQL
  • Screen Recording Audit SolutionAn enterprise compliance and AI-powered auditing platform for automotive F&I presentations, featuring browser-based recording, automated transcription, searchable subtitles, and PDF audit reporting.LaravelPHPVue 2

Open source

Focused projects whose code is the case study.

  • Laravel Query FiltersA composable, allowlist-based Eloquent filtering package with explicit value-presence rules, safe wildcard handling, relationship search, and an extension API for application-specific filters.PHPLaravelEloquent GitHub Composer
  • Pinia HydrateA Composer package and npm package sharing one versioned JSON envelope, letting Laravel explicitly hydrate or patch Pinia stores in Vue 3 without inspecting Pinia internals or scanning the filesystem for stores.PHPLaravelVue 3PiniaTypeScriptInertia GitHub Composer npm
  • Vue FormsAccessible Vue 3 form field components with framework-neutral error handling, SSR-stable field IDs, Laravel 13-inspired default styling, and an optional Inertia integration layer.Vue 3TypeScriptInertiaVite GitHub npm

Experiments

Built for their own sake. No write-ups.

  • Kim Painting CMS2022A custom website and lightweight CMS that lets a painting contractor manage pages, navigation, projects, galleries, testimonials, and customer enquiries without developer support.LaravelLivewireAlpine.jsTailwind
  • Desktop Environment Portfolio2023A browser window manager — drag, resize, snap, minimise to dock with a genie animation. Never shipped: I bolted an admin backend onto a portfolio, which is a lesson rather than a feature. Its window logic runs this site.Vue 3PiniaLaravel
  • 2D RPG Engine2023Quest, inventory, dialog and NPC systems built from scratch, because the interesting part of a game is the systems underneath it.GameMaker Studio 2GML
  • Encrypted Chat Platform2021Direct and group chat with Pretty Good Privacy encryption — written before I had any business writing crypto, which was the point.PHPMySQLJavaScriptjQuery

Nothing matches that.