The OPAL language/compiler developer fills the important hole between "users wanting to accomplish things" and "the system knowing what to do." This is a crucial position, responsible for the success of the API/compiler team within a dynamic start-up.
Observe is building a new machine data platform based on temporal relational algebra, and implements this on top of the Snowflake cloud data warehouse. The glue used for data modeling and query definition is our language, OPAL, which captures the domain of modeling, extracting, querying, and updating temporal data. Any data operation executed by our front-end / GUI is expressed as OPAL, as is any ETL operation performed by the back end. The job involves taking our current implementation and capabilities, and extending them to support our platform for the next ten years -- needs from lambda expressions to native support for tuples to an extensible module system are on the docket.
Sitting at the center of our platform, OPAL serves many masters, and has to do so without adding a new language feature for each new system feature. It looks more like a functional language like ML and a declarative language like SQL, than like an imperative language like C or an object-oriented language like Smalltalk, so a background in functional or query languages is helpful. Our compiler is written in go, and generate an intermediate temporal relational representation, which is taken on by our compiler back-end team to generate execution instructions for the Snowflake data warehouse, so experience with higher level targets and language-to-language translation may be helpful.
Desired candidate properties
Demonstrated academic or practical background in language design, especially focused on functional or query languages
Ability to work independently to extend a language design to support business needs into the future
Works with many stakeholders in front-end, back-end, product design and customers to find elegant solutions to wide-ranging language design problems
Ability to efficiently implement compiler front-end internals in go (or another similar language)
Desire to work in an environment that proves correctness through unit tests, and ships features to customers every day
Able to communicate in written and spoken English with technical and customer level stakeholders
This position offers an opportunity to have a lasting impact on a system that will run operations and machine data dependent analytics across enterprises across the world, and start doing so in a small company that still has the start-up bias for shipping working code, and removing friction from the development process.