February 27, 2019
A Language-Oriented System Design
This talk explores the design of Ontology, a permissions management service developed at Jane Street. The design of the system is language-oriented in two different ways:
Internally, the state of the system is represented as a sequence of declarations in a dependently-typed language lifted straight out of type theory. This language is the unifying principle behind a deductive database, its query language, and the representation of requested state changes that together form the core of the system.
Externally, in the user interface for the system, the internal language is hidden everywhere, having been rendered in natural language (English). Because of this rendering strategy, key elements of the user interface are at once structure-editors for the internal language as well as natural language forms that allow even technically unsophisticated users to construct permissions requests and queries.
Nathan has been a developer at Jane Street since 2008, working on a variety of software projects. He holds a PhD in Computer Science from Portland State University.