Yazan Daba

Compiler Engineer

Yazan Daba

Compiler engineer building language tooling across compiler frontends and backends, code generation, debugging, static analysis, and formal verification.

  • Dubai, United Arab Emirates
  • Compilers
  • Formal methods
  • AI tooling
Yazan Daba — avatar

About

What I work on

I am a compiler engineer at Raincode Labs. Compilers are the whole of the craft for me — frontends and backends, code generation, and the tooling that grows around them.

Lately that work has widened into formal methods and AI tooling: proving what a program does rather than testing for it, and holding machine-generated code to the same standard.

Focus

Four things, closely related

Compilers & code generation

Compiler frontends, backends, and runtimes, with work across LLVM, Roslyn, SSA-based optimisation, CIL and JIT code generation, and language design.

Language tooling

Language servers, debuggers, debug adapters, and IDE integrations—the infrastructure that turns a compiler into a productive developer experience.

Static analysis

Static analysis over source code and binaries, including abstract interpretation, call-graph reconstruction, dependency analysis, taint tracking, and optimisation.

Formal methods & AI tooling

SMT solving, model checking, and program verification, applied to code transformations and machine-generated code.

Open source

Selected projects

All projects

WideLips

A high-performance, SIMD-accelerated Lisp parser and parsing framework designed to run at multi-GB/s.

  • SIMD
  • Parsing
  • Compiler design

Dante

A formal model checker for C# code transformation. The work involved building a compiler down to a functional, basic-block-form SSA — a way around the regional shape of Roslyn control-flow graphs — so that the code under validation could be modelled as an optimised SMT representation.

  • Model checking
  • Formal verification

Roslyn — consteval

consteval is a strict compile-time evaluation feature for C#, in the spirit of the C++ keyword: a function marked consteval must be evaluated by the compiler and can never run at runtime. Its arguments have to be known at compile time, and what reaches the emitted code is the computed result rather than the call.

  • Roslyn
  • Compile-time
  • Language feature

Writing

Latest from the blog

All posts

Contact

Get in touch

Open to conversations about compiler engineering, language tooling, formal verification, and technically demanding systems work. Based in Dubai and available to collaborate with teams worldwide.