SOFTWARE ENGINEERING & CONSULTING


Across ecosystems.

I build compiler integrations, typed bindings and build tools for F# and .NET. My work connects these ecosystems through reactive interfaces, generated APIs and repeatable workflows.

Independent work. Shared openly.Compilers / Integrations / Reactive systems

01 — SELECTED WORK

Tools, from source to use.

Compiler integration, typed interop
and workspace automation.

InteropTypeScript and F# are connected through a shared binding layer.

Xantham

Generate typed Fable bindings from TypeScript libraries through the compiler's own API.

F#TypeScriptCode generation
Technical details

I built an F# generator around the TypeScript 7 compiler API, with generated protocol bindings and batched requests. It also produces the DOM and Node bindings published alongside the tool.

CompilersF# components pass through a compiler and branch into Solid JSX output.

Partas.Solid

F# components compiled to Solid JSX, with typed props and reactive control flow.

F#FableSolid
Technical details

Building on Oxpecker.Solid, I developed the DSL and Fable AST transforms for typed components and JSX output. This site's interactive project explorer is compiled from an F# script.

Reactive SystemsA signal fans out through dependent computations and converges on an effect.

Ranvier

Fine-grained reactive computation for .NET, built around explicit dependencies.

F#.NETReactive graphs
Technical details

I built a reactive graph engine for .NET and Fable with dynamic dependency tracking, deterministic ownership and explicit pending/error boundaries. Its trace log powers the live signal maps in this site's walkthrough.

AutomationBuild stages form a pipeline with branches for checks and reports.

Partas.Build

Keep build stages and CLI options in sync by deriving each command's flags from its pipeline.

F#.NETCI/CD
Technical details

Building on Fun.Build and FSharp.SystemCommandLine, I designed a typed DSL where stages declare the options they use. This site's build, checks and GitHub workflows run through the same CLI.

ConcurrencyMultiple producers pass work through a FIFO queue to multiple consumers.

loony

A lock-free queue for passing reference objects between concurrent producers and consumers.

NimLock-freeMPMC queues
Technical details

A pure Nim implementation of the Giersch–Nolte concurrent FIFO algorithm, developed for CPS continuations, with deterministic memory reclamation and cache-aware queue layout.

ConcurrencyWrite, read and free states form a synchronisation cycle with parallel readers.

wrflock

Coordinate writing, concurrent reading and memory reclamation with a compact synchronisation primitive.

NimFutexesSynchronisation
Technical details

A pure Nim implementation of Mariusz Orlikowski's WRFLock: an eight-byte state machine with separate write, read and free capabilities, using futex waits or configurable yielding.

InteropCompiles F# from the same source as electron TypeScript bindings

Fable.Electron

Electron-js bindings for Fable, with F# type safe IPC

F#electron-jsFable
Technical details

Bindings for the Electron-js API, with F# type safe IPC, with cron workflow regenerating the bindings for new Electron versions, and creating PRs on Major releases or errors.

All projects 

02 — APPROACH

From the difficult part
to the useful part.

I work where systems meet: turning technical constraints into tools people can use, extend and understand.

I won't just meet your goals, I'll surpass them.

01

Languages & tooling

Compilers, code generation and developer tools that make expressive ideas practical.

02

Bridging ecosystems

Typed bindings and integrations across .NET, JavaScript and existing systems.

03

Practical automation

Focused applications and workflow tools built around the work they need to support.

03 — WORK TOGETHER

Something worth building?

Two ways to start a conversation.

FOR TEAMS

Hiring an engineer.

Compiler tooling, interoperability, reactive systems and practical software engineering.

FOR PROJECTS

Solving a specific problem.

Integrations, automation and specialised tools, from a defined problem to a working solution.

shayan.habibi01@gmail.com