About the service
I write programs in the Oz language—the multiparadigm language of the Mozart system—and I treat paradigms as tools, not doctrines. Within a single program I freely move between functional computation, relational logic, constraint propagation, and dataflow concurrency, choosing whichever model makes a particular part of the task clear and correct. This is a different way to develop than habitual imperative coding, and it pays off precisely where ordinary approaches struggle: in search problems, scheduling, configuration, symbolic reasoning, and prototypes of language ideas.
Most of my work involves constraint programming and search. I model a problem with finite-domain variables, express rules through propagators, and steer the solver with my own distribution and branching strategies, keeping vast combinatorial spaces manageable. In Oz, concurrency is built into the language via logical variables and dataflow synchronization: that lets me build clean "producer-consumer" pipelines, agents, and light threads without the usual pain of locks. I reason confidently about determinism, encapsulated search, and the subtle interplay of laziness, ports, and cells that gives Oz its expressiveness.
Beyond solving problems, I use Oz for teaching and research support. I've helped students and researchers understand ideas from "Concepts, Techniques, and Models of Computer Programming," turning complex notions of state, concurrency, and declarative computation into runnable examples with detailed commentary. I can port an algorithm from a paper into Oz, compare alternative distribution strategies by performance, or wrap a Mozart component to speak to the outside world. If you have a task that "smells" of search, constraints, or elegant concurrency, I'll tell you honestly whether Oz is a fit.
— Finite-domain and constraint modeling with custom propagators
— Encapsulated and parallel search, distribution and branching strategies
— Dataflow concurrency, logical variables, streams, ports, and agents
— Functional and relational programming in one codebase
— Learning support for multiparadigm ideas in the CTM spirit
— Prototyping language features and symbolic computation in Mozart
Most of my work involves constraint programming and search. I model a problem with finite-domain variables, express rules through propagators, and steer the solver with my own distribution and branching strategies, keeping vast combinatorial spaces manageable. In Oz, concurrency is built into the language via logical variables and dataflow synchronization: that lets me build clean "producer-consumer" pipelines, agents, and light threads without the usual pain of locks. I reason confidently about determinism, encapsulated search, and the subtle interplay of laziness, ports, and cells that gives Oz its expressiveness.
Beyond solving problems, I use Oz for teaching and research support. I've helped students and researchers understand ideas from "Concepts, Techniques, and Models of Computer Programming," turning complex notions of state, concurrency, and declarative computation into runnable examples with detailed commentary. I can port an algorithm from a paper into Oz, compare alternative distribution strategies by performance, or wrap a Mozart component to speak to the outside world. If you have a task that "smells" of search, constraints, or elegant concurrency, I'll tell you honestly whether Oz is a fit.
— Finite-domain and constraint modeling with custom propagators
— Encapsulated and parallel search, distribution and branching strategies
— Dataflow concurrency, logical variables, streams, ports, and agents
— Functional and relational programming in one codebase
— Learning support for multiparadigm ideas in the CTM spirit
— Prototyping language features and symbolic computation in Mozart