About
I’m Marcelo Lazaroni, a Portugal-based software developer who plays mainly with Haskell.
Haskell Exchange 2019
I’m into programming languages, databases, and systems software. Much of my work has been in Haskell, particularly around compilers, query languages, and developer infrastructure.
At Meta, I worked on Glean, a system for storing and querying facts about source code. My work included the Haskell query-language compiler, query evaluation, and performance work. I recently came back to it, aiming to get recursive query evaluation fully implemented in Glean.
I’ve also worked on developer tooling and distributed systems, and maintain several open-source projects and experiments. More on my CV.
I’m @lazamar_ on Threads.
I write mostly about easy things like programming and algorithms. For the days when I feel like writing about the hard stuff like life and people I have It’s all about focus.
Here are a couple of projects I am working on; contributions are very welcome.
Projects
Glean: recursive query evaluation
Glean is the graph database that powers static analysis and navigation across all of Meta’s code.
I originally designed the architecture for recursive query evaluation in Glean while working with Simon Marlow on the Code Search and Indexing team at Meta. In 2026, now as an open-source contributor, I am implementing that design.
The implementation adds demand-driven, bottom-up recursive query evaluation using semi-naive evaluation, suspension/resumption, streaming results, caching, and query-local predicate declarations. It supports mutually recursive predicates and derives only the facts relevant to a query.
It is being merged as a sequence of upstreamable changes, with the complete working implementation and performance tests available on my fork. The design and implementation are documented in Glean issue #736.
Ambar Emulator
The whole Ambar platform in a single statically linked binary that runs on a laptop. It has Kafka-like high performance partitioned, durable, ordered queues, database consumers, advanced flow control, and replicates an infra setup from a config file.
Ambar Tasks
Durable, distributed, resumable, and fail-safe workflows embedded in TypeScript applications, with nothing but Postgres behind them. Like Temporal, but with no extra service to run and no separate compilation needed. Workflows are monadic and can be resumed by replaying cached results, so they can run for days across restarts and crashes. They compose sequentially and in parallel, cancellation is immediate with guaranteed cleanup, and zombie workers fenced off.
The design was inspired by the paper Composable Memory Transactions.
Haskell Docs CLI
Navigate Hackage documentation from the command line.
Nix Package Versions
Find all versions of a package that were available in a Nix channel and the revision you can download it from.
Silver Magpie
A clean multi-account Twitter client for Google Chrome.

Dict Parser
Create a fast parser to match dictionary keys in Elm.

