David Crandall · Senior video & device engineer · Founder, doitmachina

Not #OpenToWork
#Working.

24 years of software, about 20 of them getting video onto TVs, set-top boxes and streaming apps, and finding out why it breaks. Since July 2026, building AI products at my own company, doitmachina.

In plain terms: when a show stutters or won’t play on a TV or streaming box, I find out why.

Available for contract: senior video & device engineer (streaming, playback, Widevine/PlayReady DRM). Also applied-AI builds.

Typical start: send a few affected sessions or logs, and I’ll report back in writing. davecrandall@gmail.com

Dearest sir or madam:
Dave done been workin'.

On LinkedIn, a green ring around your photo means “I’m looking for a job.” Dave’s says “busy.” Tap the circle to see both. (No shade to anyone wearing one.)

24
years shipping software
~20
years in TV & video
9+
TV & streaming platforms shipped on, career-wide
0
days idle since leaving Charter in June 2026 (yes, that’s the joke)

Keywords for engineers and recruiters. Everyone else can skip these.

Video
  • Streaming / OTT
  • HLS
  • DASH (incl. CMAF)
  • DRM
  • Widevine
  • PlayReady
  • Shaka
  • Bitmovin
  • AAMP
Devices
  • smart TV & set-top
  • Roku
  • Tizen
  • webOS
  • Xbox
  • Chromecast
  • RDK
Code
  • React
  • TypeScript
  • C/C++
  • Python
  • applied AI
Work
  • contract
  • consulting
Previously on…

Two decades of making video work on stubborn hardware

Almost every job I've had repeats the same pattern. It turns out that's a specialty. That’s the device stack, from the silicon up to the person watching, and I’ve worked at every level.

hardware→drivers→OS→player / app→viewer
Featured case study

Inspector Gadget …or, David clones himself, hallucinations and all

A helper program that explains why a video stream went wrong, so the whole team could ask it instead of waiting for me. Under the hood, it could replay one viewer’s bad evening, test a live video feed, read the team’s code, and remember every case it had solved. Handed off with a how-to guide and a startup checklist.

Read the case file →
~4months from first helper to team handoff

Problems I’ve run to ground

  • Errors that hit some viewers far more than others. On paused live TV, the warning signs turned out to be a burst of bitrate switches and falling memory well before the error. The recommendation (not a confirmed fix): double the minimum time between bitrate switches, so the player switches less often (in principle, up to about half as often).
  • Stalls right before the ads. A viewer described “three dots before every ad.” Averages showed nothing. Full session timelines showed sub-second stalls right before each ad break.
  • Delivery problems that might not be yours. A late-night issue we believed was upstream. Segment probing and an origin-vs-edge comparison proved it in about two hours.

How I work

  • Start from real sessions, logs and telemetry, and make the sources check each other.
  • If the data doesn’t show the bug, stop guessing and go get better data.
  • Leave the team with tools and write-ups it can keep using without me.
  1. Jul 2026 → now

    doitmachina · Founder & Principal Engineer

    My company. Three products in development: slideinto.house (narrated listing films for real-estate brokers), Spot-Canon & Slop-Canon (tap-to-ask video companions), and White-Cold Stonks (a research scanner for stocks the news forgot).

  2. 2016 – Jun 2026

    Charter / Spectrum · Software Engineer VI (from 2017)

    Kept live TV and on-demand video playing in Spectrum’s apps on TVs, game consoles and streaming sticks. Built Inspector Gadget, an AI investigation agent that let the whole team ask the questions I used to answer. Led technical planning and mentored engineers.

    Shipped on Samsung, LG, Vizio, Xbox, Chromecast, Xumo and RDK-based devices, for live TV and on-demand. Players: Shaka and Bitmovin (web and TV apps), AAMP (RDK). Streaming: HLS and DASH (CMAF segments). DRM rollouts: Widevine, PlayReady.

    Contractor from 2016 · employee April 2017 – June 2026

  3. 2014 – 2016

    Delivery Agent / Connekt

    ShopTV: shoppable video on Roku (BrightScript), Samsung Smart TV, Comcast X1 and RDK. Early React/Redux, build and release automation.

Earlier jobs, 2002 – 2014: FortuNet, EchoStar / DISH4 more roles
  1. 2009 – 2014

    EchoStar / DISH

    tru2way / OCAP cable platforms (Java); on-screen diagnostics talking to low-level drivers; C/C++ on embedded Linux.

  2. 2007 – 2009

    FortuNet · contractor

    Embedded development plus C#/.NET front ends, bridging native libraries into application code.

  3. 2004 – 2007

    EchoStar / DISH

    Linux set-top boxes (522, 322, 922) in C at the framebuffer level; OpenTV middleware, debugging down into Broadcom drivers.

  4. 2002 – 2004

    FortuNet

    Embedded Linux 2.4, C, pthreads, framebuffers, and Hauppauge video-capture drivers, back when that was a brave thing to do.

What I actually do

Senior media & platform engineer who also ships the app

Take away the titles and the tech stacks, and this is what's left.

01

Video & media

Getting the show onto your screen, and keeping it there.

For engineers: capture drivers, set-top boxes, adaptive streaming, manifests, MP4 internals, DRM.

02

Cross-layer debugging

Finding out why it broke, however deep the cause is buried.

JavaScript, player libraries, packet traces, native C++, backend telemetry.

03

Consumer devices

Making apps work on TVs, consoles and streaming sticks, each with its own quirks.

Roku, Tizen, webOS, Xbox, Chromecast, RDK.

04

Modern app engineering

Building the apps people actually tap on, and keeping them running.

React, TypeScript, Redux, REST APIs, CI/CD.

05

Technical leadership

Helping a team decide what to build next and getting it over the line.

Capacity planning, risk calls, cross-team coordination, mentoring, operational metrics.

06

AI-assisted engineering

Using AI tools to build and check software faster, with the checking taken seriously.

Local LLMs (AI models that run on your own machine), RAG (AI that looks things up in your own documents), vision + speech, multi-model pipelines with QA gates, agents (AI helpers that take actions).

Not a front-end engineer with some video experience. A media and platform engineer who happens to have built a lot of client apps, and who knows his way around the ugly borderlands between software, hardware, networks and DRM. — my career coach, paraphrased (it was an LLM, naturally)
Now showing

The channel guide

Think of an old TV listings page. Channels 01 to 03 are my company’s products, on doitmachina. After hours is the lab: skill-builders, and things that exist because I wanted to know if I could. Open any lab channel for details.

Here to hire me? The career section above is the track record, and I take on contract work alongside running doitmachina. Skip to contact ↓

After hours · the lab
CH04

Insurance Wrangler

Helps therapists get paid back by insurance, without billing or EHR software.

  • Generates insurance-compliant superbills and CMS-1500 forms (PDF and DOCX) from a simple form.
  • Rules engine validates CPT codes, telehealth modifiers and ICD-10 formatting before anything goes out the door.
  • Zero-dependency local server; nothing leaves the machine.
Pythonrules enginehealthcare forms
Prototype
CH05

Poppy

A deliberately eerie art project: a talking doll that runs entirely on a laptop. She watches through the camera, notices when you talk, and says what she'd like to do with things she sees. (Not for kids, and unrelated to Spot-Canon.)

  • Browser camera + image-change gate → local Gemma via Ollama → Kokoro speech → Three.js porcelain face animated from the audio.
  • No cloud at all. Everything runs on a MacBook.
  • Remembers nouns. Occasionally speaks backwards. Intended endpoint: an actual physical doll.
local LLMOllamaThree.jscharacter design
Lab
CH06

VRM Lip-Sync & Mood

Real-time 3D avatars in the browser that lip-sync to any audio and shift moods smoothly.

  • Web Audio formant analysis mapped to VRM mouth shapes; works with files, live mic and browser TTS.
  • Blendshape mood engine, procedural dance/ROM routines, .vrma retargeting, drag-and-drop avatars.
  • Zero-build ES modules with a Vitest suite.
Web Audiothree-vrmanimation
Lab
CH07

The Arcade & the Sandbox

A 3D toy slot machine, minesweeper, territory games, and a pile of local-model experiments — the reps behind the products.

  • Running Qwen, Gemma and friends locally to find out what small models can and can't do.
  • Data-analysis exercises, MCP experiments, and whatever seemed interesting that week.
Three.jslocal modelslearning in public
Always on
Tune in

Got a hard problem, a strange device, or a product that should exist?

I take on consulting and contract work: streaming and device engineering, playback and DRM troubleshooting, and applied-AI builds. Not sure it’s a fit? Ask anyway.

Email Dave

Helpful to include: what’s breaking (player, device or platform) and a rough timeline.

  1. You send a few affected sessions or logs.
  2. I report back in writing: where the problem is, and where it isn’t.
  3. You get a plan, plus the tools and write-ups your team can keep using without me.

Not technical? Just tell me what’s going wrong in your own words. I’ll figure out the rest.