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
CEO

Before founding Synthetic Minds, Saurabh built a computational synthetic biology company (20n, YC W15, YC's hard tech companies) and before that got a postdoc from UC Berkeley and a PhD from UMD. 20n used program synthesis to design cells, and built a yeast that can brew acetaminophen. The company was backed by YC, DARPA, and Khosla Ventures. His PhD was on synthesizing provably correct algorithms. At Berkeley he was a Computing Innovations Fellow, and his peer-reviewed publications have close to 1000 citations. Across the two companies he has raised $7.8M in venture funding, and gotten $2M+ in contracts from customers. He started building Synthetic Minds in 2018 and it is his 2nd YC company.

Ras Bodik
CTO

Ras is an ACM Fellow (for "Contributions to Program Synthesis") focussing his commercial activities through Synthetic Minds. He maintains a part-time professor position in Computer Science at the University of Washington. Previously, he was a professor at UC Berkeley (2003-15), and University of Wisconsin, Madison (2000-03). His lifelong research work has focussed on program synthesis, with applications in data analytics, web browsers, systems biology, computer architecture, and end-user programming. He has spent time building domain-specific languages, static and dynamic program analysis, hardware support for program analysis and compilation. He has supervised 40 students, many of whom are program synthesis experts in their own right across industry and academia. He has worked on the committees of 30+ technical conferences, given 58 invited talks, been the PI or co-PI on 42 grants ($48M in funding), and has been awarded 15+ awards for his technical work including NSF Career, Doctoral Dissertation, Best and Influential paper awards. He has over 100 publications and 11,000+ citations to his work.

Henele Adams
VP Engineering

Henele joined Synthetic Minds after ten years at Google. His first five years were spent working on core search ranking (impacting most search results), while the last five were in research (working on NLP projects and adding extra smarts to Gboard). In between tours, he was the first engineering hire at Parse (acquired by Facebook, YC S11). Prior to moving out west, he worked at the Carnegie Mellon Robotics Institute working on projects ranging from landmine clearance training systems to localization systems (non-GPS) for autonomous vehicles. He developed his initial appreciation for good software development practices while working on large autonomous unmanned air vehicles. He remains rather disappointed that code is still mostly made by meat. When not trying to remedy that, he likes taking long walks in the backcountry.

Arthur Tilley
Research Engineer

Arthur comes to Synthetic Minds after spending two years as a Machine Learning Software Engineer at Google where, among other roles, he was part of a small group of engineers who built Gmail's Nudging feature. Before Google, he worked briefly at a university (The Center for New Music and Audio Technology at UC Berkeley), a nonprofit (a group of researchers at the Wikimedia Foundation developing ML tools for Wikipedia editors), and a startup (LeanTaaS, Inc, focusing on hospital resource optimization). Arthur received his Ph.D from the Logic Group at the University of California at Berkeley. He enjoys interesting mathematical problems of all forms but has a soft spot for mathematical logic. When he is not thinking about how to make programs write programs, he practices Jiu Jitsu and dabbles with making music on his computer.

Corianna Jacoby
Software Engineer

Corianna joined Synthetic Minds after spending about two years at working as a Software Engineer on document analytics software at IBM. IBM was her first full-time position after receiving a BS in Computer Science from Tufts University. Corianna is excited to work on creating programs that will one day do her job for her, but while not doing that she enjoys attempting to climb small rocks and spending time on top of mountains away from technology.

Rama Tadepalli
Software Engineer

Rama graduated with a BS in Computer Engineering from the University of Maryland and is interested in algorithmic problem solving. He was an ACM ICPC World Finalist in 2018 and enjoys reading about operating systems and programming languages. While at UMD, he worked with Prof. Yasser Shoukry on leveraging Z3 to solve mixed integer programming problems. In his free time, he likes to play video games and learning about new technologies.

Sankha Guria
Research Intern

Sankha is a 2nd year PhD student at the University of Maryland, College Park. He is interested in helping people write bug free software. Before joining grad school he used to work at BrowserStack making products to help developers ship code faster. Outside work, he enjoys biking and cooking in his free time.

Helgi Sigurbjarnarson
Research Intern

Helgi is a 4th year Ph.D. student in the UNSAT group and the Systems Lab at the University of Washington. His research focus is on applying formal methods to build provably correct systems, specifically, designing and building systems for automatic verification. His past projects include Yggdrasil, a framework for automatic verification of file systems; Hyperkernel, a verified OS kernel; and Nickel, a framework for designing and verifying information flow control systems. He spends his free time hiking, cooking, brewing beer, tinkering with electronics and playing the guitar.



Come work with us!