Hello, I'm Dan

C# developer focused on developer tools and API design

Student at 42, Paris

Projects

Published on the Unity Asset Store (v1.0.4); 20 users.

A DSL framework for C# that compiles composable logic trees into zero allocation execution pipelines. Built on Unity's runtime, but the engineering is pure C#: closures, expression trees, generics, functional reactive pipelines, and async/await.

ClosureBT visual debugger showing a behavior tree with live node status, variable inspector, and step through playback controls

Architecture & Technical Highlights

  • DSL design: embedded Domain Specific Language compiled via closures and expression trees into composable, type safe node graphs.
  • Zero allocation runtime: object pooling, cached delegates, and precompiled expression trees eliminate GC pressure.
  • Functional Reactive pipeline: ReactiveX style composable transformations with automatic invalidation and propagation.
  • Async/await lifecycle: cooperative cancellation and structured concurrency via UniTask for zero allocation async.
  • Time travel debugger: state snapshot capture and variable inspection across execution history.
  • Static analysis tooling: tree visualization, node validation, and runtime performance profiling.

Impact

  • Identified friction in visual behavior tree editors through developer conversations.
  • Solved missing features from traditional appraoches: return statements, parameterized nodes, recursion.
  • Shipped production ready with full documentation.

Published on GitHub (v0.4.3)

Built tooling that replaces printf debugging with inline variable snapshots, time travel replay, and on save feedback, inspired by Wallaby.js

Core Architecture

  • Designed a reactive TUI with Unicode tree rendering, inline output boxes, and expandable detail screens.
  • Built a dependency aware build orchestrator that regenerates Makefiles, tracks .d files, and reruns only affected tests on change.
  • Architected an async execution engine with configurable concurrency, cancellation support, and result aggregation.
  • Parsed ELF/DWARF debug symbols to annotate source code with live variable values at every execution line.
  • Distributed as a single file executable across Linux, macOS, and Windows with build scripts targeting CPython 3.9.

Developer Tooling

  • Built a debugger harness that captures execution history as a scrubbable timeline, like video playback for code.
  • Shipped a companion VS Code extension that bridges IDE breakpoints to the CLI tool via JSON file exchange.
  • Modular story filter engine with configurable profiles (minimal/balanced/all).

Inspired by Wallaby.js, which pioneered live inline annotations for JavaScript. ctester brings that same developer experience to C and embedded developers: step history scrubbing, inline variable annotations that update on save, and a rich TUI that eliminates context switching.