Erik Meijer is a Dutch computer scientist and programming-language designer whose work on LINQ, Reactive Extensions, Haskell, C#, and Visual Basic brought functional-programming ideas into mainstream software. His latest projects, Universalis and Automind, tackle a newer problem: how to give AI agents useful capabilities without allowing them to cause unchecked, irreversible harm.
Meijer worked on functional programming, compilers, and languages including Haskell and Mondrian before moving from an associate professorship at Utrecht University to Microsoft around 2000. There, he helped shape .NET-era programming through LINQ, which integrated queries into mainstream languages, and Reactive Extensions, which applied composable querying techniques to asynchronous event streams.
After leaving Microsoft in 2013, he founded Applied Duality. His subsequent work encompassed Facebook’s Hack language, Google’s Dart, and the RxJava ecosystem; he later served as an engineering director at Facebook. He also taught cloud programming at Delft University of Technology and held an honorary programming-language appointment at the University of Nottingham.
In 2024, Meijer advanced the idea of language models as programmable neural computers. His subsequent work introduced Universalis for end-user-programmable knowledge work, combining machine-generated programs with structures that can be inspected before execution. At the 2026 AI Engineer World’s Fair, he appeared as a research scholar affiliated with Leibniz Labs and connected Universalis to Automind, an agent harness built around checked execution plans.
- Declarative programming for AI. Meijer sees language models as a continuation of the longstanding effort to specify desired outcomes while leaving implementation to computational systems. In a pointed public observation, he challenged programmers who had championed declarative programming but resisted its implications when models began producing implementations.
- Tool calls create real-world risk. An agent with access to private data, untrusted material, and powerful tools can turn prompt injection into deleted files, compromised databases, or unauthorized transactions. As his AI Engineer keynote makes clear, checking whether the final answer sounds safe cannot undo damage already caused during execution.
- Proof-carrying agent execution. Meijer proposes separating planning from execution: a model generates an inspectable program and a machine-checkable safety proof, while an independent component checks both before acting. Representing intended behavior as data enables type checking, data-flow analysis, and taint analysis before external side effects occur. The approach adapts established proof-carrying-code research and draws on tools and concepts including Lean, Dafny, and free monads.
- Programs designed for machine generation. Universalis and Automind reflect a shift in language design: programs can be generated by models, verified by software, and reviewed where necessary by humans. What matters is that an agent’s intended actions become legible and constrained before they touch the outside world.