Skip to main content

Senior developer sought to co-implement the DApp language Glow.

Mutual Knowledge Systems, Inc. (a.k.a. is looking for a senior developer who will take the lead on the implementation of the compiler and runtime for our domain-specific language to build Decentralized Applications (DApps), Glow (see our Roadmap).

DApps are interactions between multiple mutually-distrusting parties seeking to trade digital assets managed via public blockchains, according to algorithmically verifiable rules enforceable by smart contracts. Glow is a domain-specific language for DApps, that extends a typed lambda-calculus with primitives for multi-party computation and asset management. Glow‘s metalanguage is Gerbil Scheme.

We strive toward a Gerbil monoculture, but use other languages where necessary, including JavaScript, Haskell, Rust. We like hygienic macros and multi-pass compilers. Our runtime is our user’s compile-time so we use prototype OO. We adhere to mostly-functional programming, with effects where needed, including dynamic binding as a modular alternative to reader monads. We like (dependent) types, even without compiler enforcement.

Other relevant domains: distributed systems, persistence using databases, cryptographic protocols, information security, economic modelling, game theory, protocol design, theorem proving, game semantics, category theory, graph algorithms, zero-knowledge proofs, user experience, web interfaces (using Quasar/VueJS), interactive programming, blockchain smart-contract VMs, continuous delivery using Nix (or Guix), reading and writing academic papers, etc.

You obviously don’t need to be an expert in all these domains to work at A few of them will be good enough. We work in a team: you need the wisdom to answer questions when you know (hopefully, often), ask questions when you don’t know (expectedly, even more often), and find the answers where none of us knows (most of the time), becoming an expert in more fields as you go.

You must proactively seek clarity about what you and your teammates need to do, when, how, and why. The codebase must be both usable (our users are developers) and maintainable (our developers are implementers).

The position is remote and requires a lot of autonomy. Our team already spreads along many timezones. Management is in US Eastern time. Exceptional candidates would have experience as technical leader and/or manager. Salary depends on your experience and level of seniority, and, of course, weekly hours.

We care about your actual contributions to the team, not about any particular trait in your background that may or may not be a proxy statistically correlated to it. Send resume to [email protected] If possible, we’d love to see some notable public discussion on a mailing-list, github issue, or such, where you changed your or someone else’s mind.

Leave a Reply