Research Engineer

Informal Systems is a full-suite Research & Development institution. We work on bold research problems at the intersection of formal verification and distributed systems and develop high-value distributed systems infrastructure in Rust.

As a Research Engineer at Informal, you will have the opportunity to design and implement formal verification and testing methods and tools that will be applied for correctness assurance of critical infrastructure in the blockchain ecosystem. You will also be involved in the design, specification, and verification of blockchain protocols, as well as in transferring your knowledge of verification and testing approaches to support development of correct and reliable systems.

What your primary responsibilities will be:

  • Formally specify, check, find bugs, and prove properties of critical blockchain infrastructure.
  • Research and develop strategies and algorithms to verify and test real software.
  • Develop verification and testing tools and infrastructure.
  • Collaborate with researchers on techniques for specifying and verifying blockchain protocols.
  • Collaborate with engineers on techniques for verifying and testing their software.
  • Disseminate knowledge on methods and tools for software verification and testing within the blockchain ecosystem.
  • Mentor other engineers and support the growth and health of the team.
  • Nurture a safe and enjoyable open source experience for contributors.

What we look for in a successful Research Engineer:

  • Enthusiasm for advancing and implementing verification and testing techniques, and making them accessible to software developers.
  • Graduate work and/or academic quality publications in a relevant field, eg. distributed systems, algorithmic game theory, formal verification, mathematical logic, etc.
  • A deep understanding of computer science and formal logic fundamentals (software design, first-order logic, Satisfiability Modulo Theories, etc.).
  • Experience with verification and testing tools ( e.g., TLA+, Dafny, Ivy, CBMC, Spin, Coq, Isabelle, SAT/SMT solvers, Jepsen, QuickCheck, etc.).
  • A track record of translating academic papers into performant software.
  • Experience in developing, releasing, and maintaining production software.
  • The ability to take ownership and see initiatives through.
  • Excellent interpersonal skills, experience working with distributed teams.
  • Experience with the Rust programming language and ecosystem is a plus.

About Informal:

Informal is a remote-first company with offices in Toronto, Lausanne, Vienna and Berlin. We are structured like a worker’s cooperative, where important corporate actions are subject to one-person-one-vote democratic control by the member-employees. We provide 5-weeks of paid vacation, lifestyle benefits, and annual retreats with the whole team. We envision a sustainable future of cooperatively owned and governed, open-source, distributed organizations running on reliable distributed systems and are excited to grow the team with amazing individuals who believe in making this future a reality.


  • Location: Berlin, Toronto, Vienna, Lausanne, Remote
  • Job Type: Full-time

To Apply:

Please apply via this this Google form where you’ll be prompted to upload a cover letter, CV, and other information that will help the review process go smoothly.

We are an equal opportunity employer and value diversity in our organization. We are committed to equal employment opportunities and encourage applications from people of all race, religion, colour, national origin, gender identity, sexual orientation, age, marital status, veteran status, or disability status.