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
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 projectsWideLips
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 postsContact
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.