Daniel Worthington-Bodart

Mobile
+44 (0) 7887 891178
Email
dan@bodar.com
GitHub
danielbodart
Blog
dan.bodar.com
LinkedIn
danielbodart

Profile

Self-taught problem solver. "Impossible" is a challenge word. 30 years of going deep — picking up whatever language or layer of the stack a problem demands, from GPU memory models to compiler bytecode to ML inference runtimes. Learning everything from first principles means I often see things differently and find novel solutions where conventional approaches get stuck. Not afraid to read the spec, fork the library, or reverse-engineer the API.

Recent Technical Work (2025-2026)

Capsper — Push-to-Talk Voice Dictation

Fully local voice dictation daemon for Linux and macOS. Hold CapsLock, speak, release — text appears in any focused window. Zig. 200+ releases.

  • Single Zig binary: keyboard interception (evdev/CGEventTap), audio capture (PipeWire/CoreAudio), mel spectrogram, ONNX/CoreML inference, SentencePiece detokenisation, keystroke injection
  • NVIDIA Nemotron Speech 600M (FastConformer RNNT) — inherently incremental streaming ASR
  • Multi-client TCP server sharing model weights in VRAM/RAM across independent pipelines
  • macOS: Fulcio/Sigstore code signing with TCC permission persistence across binary updates

Spin-off projects:

  • nemotron-speech-600m-onnx — ONNX export with 4 precision variants (FP32/FP16/INT8 dynamic/INT8 static). Static INT8 required warm-cache streaming calibration to avoid blank-token collapse
  • nemotron-speech-600m-coreml — CoreML conversion: 93% Apple Neural Engine utilisation, ~15.5x realtime. 3-level numerical validation
  • ten-vad-ggml — ONNX→GGML converter + complete Zig inference implementation of TEN-VAD. LSTM gate reordering. Verified <0.001 delta vs native
  • fulcio-codesign — Zig binary replacing 362-line bash script for Sigstore code signing via Security.framework SPI
Zerocast — Low-Latency Application Sharing (WIP)

GPU-direct remote application and terminal sharing with hardware encode and P2P WebRTC streaming. Zig, TypeScript 100+ releases.

  • Zero CPU copy pipeline:Embedded wlroots-based headless Wayland compositor to NVENC/VA-API AV1/HEVC encode → WebRTC. Pixels never leave the GPU. ~200μs prepare + 1.6ms encode at 1080p30
  • macOS port: ScreenCaptureKit + VideoToolbox HEVC + CGVirtualDisplay (in-process, zero IPC)
  • Forked libdatachannel adding abs-capture-time RTP extension and playout-delay for zero jitter buffer
  • Cloudflare Worker signalling: Durable Objects with WebSocket Hibernation API
Talebrary — Interactive Fiction Platform with AI

3,000+ text adventures playable in-browser with AI-generated cover art and suggested actions. TypeScript, Cloudflare Workers & Workflow. 300+ releases.

  • AI image pipeline with 3-step fallback chain
  • Durable Workflow abstraction portable across runtimes
  • LLM eval suite built from scratch: scorers for JSON validity, schema match, tree structure, vision-based judging. Multi-model comparison with cached runs

Spin-off:

  • WasiGlk17 interpreters rebuilt x86 → WebAssembly via Zig's wasm32-wasi target, replacing Emscripten. 67-87% smaller binaries (Glulxe: 1.68MB → 222KB). Full Zig Glk I/O, JSPI for native browser async.
Dataflow — Reactive Data Flow for HTML

Reactive framework inspired by Observable, grounded in HTML. 200+ releases:

  • Javascript AST Walker — mutable ESTree walker with enter/leave, skip/remove/replace
  • JSX AST Compiler — transforms JSX to createElement calls, per-spec
  • Scope Analyser — full lexical scope analysis (var hoisting, destructuring, unresolved refs)
  • DuckDB WASM integration with cross-filter 10M-record demo via Mosaic vgplot

Other Notable Work

Masked Diffusion Text
Discrete text diffusion experiment — fine-tuning ModernBERT-large to generate text through iterative unmasking, inspired by MDLM. Cosine/log-linear/Fibonacci unmasking schedules, Gumbel sampling. Python
Claude Code Plugins
Security-focused plugins: URL allowlist (3-level match to prevent data exfiltration), trunk-based dev workflow, code review. Sandbox settings for credential and secret protection. Red-team tested 19 exfiltration vectors

Open Source Libraries

bodar.ts
7 TypeScript packages on JSR: totallylazy (FP), lazyrecords (SQL), yadic (DI), jsx2dom, dataflow, DuckDB adapters
TotallyLazy (318★)
Functional programming for Java — lazy evaluation, persistent data structures, pattern matching. Pre-dates Java 8 Streams
JCompilo (40★)
Java compiler with bytecode post-processing: tail-call optimisation via @tailrec, zero-copy JARs, 20-80% faster builds
UtterlyIdle (95★)
REST framework for Java — ~1ms startup, in-memory testing, uniform client/server API
YatSpec (59★)
BDD from pure JUnit — auto-generated HTML reports with sequence diagram generation
Yadic, LazyRecords, ShavenMaven
DI (12KB, 1M resolves/0.28s), LINQ for Java, dependency resolver. Full org →

Presentations / Awards

2012 Agile Awards Winner
Most Valuable Agile Innovation (The 10-Second Build) — reduced build times from 45 minutes to 3 minutes at Sky
QCon London
Crazy Fast Build Times, or When 10 Seconds Starts to Make You Nervous (slides and video)

Experience

June 2025 - Present

Technical Advisor, Doris, London

Advising on technical strategy, architecture, security, and modern AI-driven engineering workflows.

June 2022 - Present

Chief Technology Officer, Triptease, London

Hands-on CTO balancing strategic leadership with deep technical contribution. Led cloud cost optimisation, security audits, and compliance while remaining engaged in architectural reviews, squad collaborations, and pairing sessions.

  • AI/ML adoption: drove developer productivity initiatives with Claude Code and Cursor; integrated constrained decoding and GraphRAG into product LLM pipelines
  • Infrastructure: vendor negotiations, cloud cost reduction, security and compliance oversight
  • Hands-on throughout: product and architectural reviews, pairing sessions, code contributions across the stack
January 2018 - June 2022

Principal Software Engineer, Triptease, London

Led transformation of a manual integration process (hundreds of clients, thousands of hotels) into a robust automated system using static analysis, NLP, and ML with human oversight.

  • ML on constrained devices: models trained in Python, inference in TypeScript for real-time page interpretation on mobile
  • Built reliable foundation now supporting all product teams
January 2016 - December 2017

Principal Software Engineer, Springer Nature, London

I worked on a brand new recommendations service for the Springer Nature Group. The service's goal was to help scientists and researchers keep abreast of the 4k new articles published every day in science. The project started as an MVP and continuously experimented both with user features and technology. All features were A/B tested and metrics used to help inform the project direction.

Practices:
A/B testing, Hypothesis Driven Development, Data over opinions, System thinking, Pain Driven Development, Feature toggles / Branch by Abstraction
Technologies:
CloudFoundry, RecSys, TypeScript, Sass/PostCSS, TotallyLazy/UtterlyIdle, CouchDB, Rust
August 2015 - April 2016

Founder, 10second.build, London

I worked on my own startup to try and bring super fast builds to more people for less.

  • Taking an idea and trying to turn it into a small business
  • Integrating with multiple operational APIs (SSL, DNS, bare metal provisioning, containers/virtualisation)
  • Working with bleeding edge technology (the good and the bad!)
Technologies:
Docker, Packet, TotallyLazy, UtterlyIdle, HTTP/JSON
March 2014 - July 2015

Interim Head of Development, Springer Nature, London

Springer Nature are a scientific publisher with subscription and open access content. I reported to the London Director of IT and while a new Head of Development was being looked for, I picked up a lot of the role's responsibilities especially around recruitment, personal development, mentoring and feedback sessions.

  • Worked across 4 development and 2 DevOps teams in London (~40 people)
  • Liaised with multiple global teams (Dordrecht, Berlin and Pune)
  • Created a mentorship/buddy program to help junior developers
  • Help define the global shared services strategy
  • Actively encouraged polyglot programming and experimentation with HackDays
  • Technical lead for a 5 week prototype to disrupt Springer's commercial models
April 2010 - June 2013

Senior Software Engineer, Sky Network Services, London

I was hired to work on the broadband and telephony backend systems powering Sky's ISP backbone. The applications we built provided operational visibility into the status of all orders and integrated with multiple internal and 3rd party services.

  • Lead team of 8 developers, 2 QA and 1 BA
  • Coached developers from imperative programming style to functional programming style
  • Guided Sky away from binary coupled RPC systems to decoupled REST services
  • Incrementally rewrote 3 critical business systems removing legacy technology
  • Reduced build times from 45 minutes to 3 minutes ( Article, QCon Video)
  • Changed Sky corporate policy to actively encourage open source development
Sep 2003 - April 2010

Lead Consultant, ThoughtWorks Ltd, London

I worked on a large number of projects across a wide range of industries including investment banking, retail banking, broadband provisioning and retail chains. I have mentored a large number of developers and also learnt a great deal about design, development, delivery and enablement.

  • Technical Lead for both Java and C# Projects
  • Strong experience in Investment Banking domain (Front + Back Office)
  • Successfully designed and built a number of analytics engines (Basel 1 + 2)
  • Successfully delivered a number of integration services for retail chains

My greatest achievement has been replacing batch processes (6hrs+) with business real time interactive services (10sec)

Apr 2006 - Aug 2006

Adventure Motorcyclist, 2 guys, 2 bikes, 22 countries

4 month sabbatical from ThoughtWorks, travelling to the border of China and back through the former USSR member states and along the Pamir Highway.

Pre Jun 2003

[abbreviated — see LinkedIn for full history]

Education and Qualifications

References

References on request