Reserve - Software Verification Engineer

Software Verification Engineer

Reserve Oakland, California, United States of America

Description

Reserve’s mission

We believe that everyone’s money should be secure. Billions of people around the world don't have a safe place to store their money. Their banks can't be trusted. Their governments inflate their currency to pay off debts, hurting citizens. Our mission at Reserve is to change that. Reserve is a stable, decentralized currency that can’t be abused by a government. It’s globally distributed and outside of anyone’s control, so bad governments can’t shut it down.


Your role

Without formal verification, any nontrivial contract deployed on the blockchain will eventually fail, but the tools for carrying out verification on these contracts are still in their infancy. You will take on the critical challenge of formally verifying that our smart contract is correct and secure. Here are some responsibilities you’ll take on for that goal:

  • Informing our contract architecture, to make it an easier target for verification.
  • Guiding and verifying our contract specification effort.
  • Developing tools for increased quality assurance of Ethereum smart contracts.
  • Educating other engineers in the use of your tools.
  • Seeking out, and insisting upon, further ways to make our software more reliable.
  • Lucidly communicating your technical reasoning and development plans.
  • Writing technical documentation.


Your day at Reserve

Show up at 10am for our full-team meeting. Chat with the CTO at 11am to discuss next directions for the verification toolchain. Have lunch with the engineering team, where you give an impromptu exhortation on the Right Way™ to think about software specifications. In the afternoon, hack on a symbolic execution engine to add counterexample-guided refinement. Spend a while giving and receiving feedback on a small set of pull requests. Go climbing at 7pm with half of the engineering team.


Requirements

  • You have demonstrable knowledge and engineering experience with building tools for formal software verification or program analysis.
  • You have worked in a tightly coordinated team, and know how to sync closely with team-members.
  • You are adept at learning new technical concepts.
  • You're a fit for our eccentric culture (read more about it here).


In your application please link to some code that you wrote that reflects your abilities (e.g. github). 


Nice to haves

  • Familiarity with the blockchain industry.
  • Familiarity with Go.
  • You can think in the security mindset.

Contacts

Social links: