Loading...

We are hiring!

Company Overview

Synthetic Minds is building program synthesizers, i.e., automation that can write code. We have a system in production that reads/writes smart contracts in Ethereum's Solidity language, and we use it to secure our customer's contracts and ensure they are correct. Our eventual objective is to enable access to code for as many people as possible, ideally even non-programmers.

We are funded by Y Combinator, Khosla Ventures and Pantera Capital. We have paying customers, and a backlog waiting to be on-boarded. More on our story is on our blog.

We are hiring full-time engineers in San Francisco and Seattle. We like simple solutions to hard problems, and will side with the robots in the uprising. Come build with us.

Open positions:

  1. Software engineer: Smart contracts engineer
  2. Software engineer: Systems engineer
  3. Software engineer: Program synthesis
  4. Software engineer: Theorem proving
  5. Software engineer: Verification
  6. Software engineer: Scalability and infrastructure
  7. Researcher: Smart contract security
  8. Researcher: Program synthesis (Formal methods)

For comments/questions, email jobs@synthetic-minds.com.





Software engineer: Smart contracts engineer

Role:

  • Take customer specifications to identify and develop features to build on top of the core product.
  • Maintain and develop core product features that analyzes and writes smart contract code.
  • Analyze customer codebases using Synthetic Minds' proprietary tools.
  • Define specifications and roadmap for unmet customer needs.
  • Work with team to develop features needed.
Qualifications:
Minimum:
  • 2+ years experience in a software engineering role.
  • Interest in smart contracts, and program synthesis.
  • Desire to learn about smart contract languages and compilers, automated theorem provers, code analysis and generation.
  • Extensive experience with smart contracts -or- bachelors (or equivalent) in CS with some experience in smart contracts and strong desire to learn more.
Preferred:
  • Bachelors or masters in computer science.
  • Interest in smart contract languages, e.g., Solidity.
  • Experience with large projects in a performant language (e.g., C++).
  • Experience with tools for code analysis: fuzzers, static analysis, etc.

Apply to this position




Software engineer: Systems engineer

Role:

  • Plan and deliver large-scale performance and capability improvements to core product.
  • Identify potential high impact improvements based on broad customer needs.
Qualifications:
Minimum:
  • Bachelors and/or masters in computer science.
  • 3+ years experience in a software engineering role.
  • 2+ years hands-on experience with large projects in a performant language (e.g., C++).
  • 2+ years hands-on experience with developing solutions that utilize distributed computing.
  • Desire to learn about smart contracts, program verification, and program synthesis.
  • Desire to learn about smart contract languages and compilers, automated theorem provers, code analysis, and generation.
Preferred:
  • History of success while working on hard open problems.
  • Experience with tools for code analysis: fuzzers, static analysis, etc.
  • Experience with running jobs on cloud platforms (e.g., Azure, GCP, AWS)

Apply to this position




Software engineer: Program synthesis

Role:

  • Work on the core program synthesis product and improve it.
  • Work on scaling synthesizer: algorithmic and through distributing work over clusters.
  • Develop features for synthesis of program fixes, leveraging the core product.
Qualifications:
Minimum:
  • Bachelors or masters in Computer Science.
  • Experience building code analysis techniques.
  • Basic understanding of the state-of-the-art in program synthesis.
Preferred:
  • Masters or PhD in Computer Science.
  • Academic or commercial projects in program synthesis.

Apply to this position




Software engineer: Theorem proving

Role:

  • Work on the core theorem prover encoding utilized by Synthetic Minds for program verification and analysis.
  • Interface with some of the world's best external theorem proving efforts to collaboratively solve real world problems.
  • Find and build the most scalable SMT encodings for our application.
Qualifications:
Minimum:
  • Bachelors or masters in Computer Science
  • Experience with automated theorem provers: Z3, CVC4, etc
Preferred:
  • Previous work experience applying Z3 to commercial applications
  • Masters or PhD in topic utilizing theorem provers
  • Experience solving program analysis problems with automated provers

Apply to this position




Software engineer: Verification

Role:

  • Work on the core formal verification product and improve its performance on large systems.
  • Work on scaling the verifier: algorithmic and systems approaches.
Qualifications:
Minimum:
  • Bachelors or masters in Computer Science.
  • Experience building program analysis tools.
  • Basic understanding of state-of-the-art in automated formal verification.
Preferred:
  • Masters or PhD in Computer Science.
  • Commercial experience building products for code: static analysis, formal verification.

Apply to this position




Software engineer: Scalability and infrastructure

Role:

  • Develop infrastructure and operational procedures to scale to computational needs for problem sizes (10s-1000s of VMs).
  • Emphasize reproducible and maintainable cloud deployments.
  • Setup and maintain testing infrastructure.
  • Deploy Synthetic Minds' cloud agnostic systems on cloud VMs (AWS (primarily) / Azure / GCP).
Qualifications:
Minimum:
  • Experience building and deploying large distributed infrastructure on cloud platforms (Azure, GCP, AWS).
  • Bachelors or masters in computer science.
  • Experience building and maintaining backend infrastructure.
Preferred:
  • Experience handling very long running (days/weeks) tasks and distributing them.
  • Experience developing recovery solutions to ensure infrastructure robustness under VM failures.
  • Experience managing an infrastructure team.

Apply to this position




Researcher: Smart contract security

Role:

  • Keep up to date, and discover new, security vulnerabilities in smart contract languages.
  • Collaborate with program synthesis developers to ensure our system can identify known and new security issues.
  • Aggregate customer security needs in synthesis product specifications.
Qualifications:
Minimum:
  • Knowledge of Solidity language design and its security considerations.
Preferred:
  • Experience finding security vulnerabilities in Solidity smart contracts.
  • Experience using open source security tools.

Apply to this position




Researcher: Program synthesis (Formal methods)

Role:

  • Work on Synthetic Minds' core program synthesis product.
  • Develop next generation of scalable program synthesizers.
  • Connect the core product to customer requirements.
Qualifications:
Minimum:
  • Experience or training in design and development of programming languages/compilers.
  • Interest in smart contracts and their evolution.
Preferred:
  • Masters or PhD in formal methods, program synthesis, programming languages, or compilers.
  • Interest in automated theorem provers, smart contract languages (e.g., Solidity), security.

Apply to this position


About the team

Saurabh Srivastava

Saurabh is CEO and Founder of Synthetic Minds. He has been building program synthesizers for over a decade. First in his PhD, then postdoc at UC Berkeley, and then using it to design new bio-organisms at his first company 20n.

He has over 900 citations to his publications; most of which are in program synthesis, including the 4th most cited for the topic. Program synthesis is a hard problem, but solvable for specific domains such as Excel macros, or super-optimizations, and with Synthetic Minds: smart contracts.

His previous YC W'15 company brought synthesis to biology, building an open-source platform for genetic engineering. An amazing team of 12 engineers helped realize the technology, and we engineered 40 different organisms in collaboration with DARPA, YC, Khosla Ventures, many Fortune 500 companies. The company was named in TechCrunch and YC's hard tech companies.

In 2016, Saurabh got interested in perpetually running applications, aka smart contracts on the blockchain. He started building Synthetic Minds in 2017 and made the first version available to users in summer 2018.