Rust Software Engineer
$75k - $150k • 0.50% - 2.00%
At Synth, we're developing a data generation engine to enable developers to easily create an unbounded amount of realistic relational data with complex business logic.
Skills: Rust, Unix
Synth is an open source declarative data generator. Synth is designed with the intention of solving, once and for all, the problem of generating realistic, relational data with complex business logic.
We're backed by YCombinator and are currently based in London - although we are building a remote, asynchronous culture.
While prior remote working experience is not required (though it was probably mandated by the global pandemic), we are looking for people who are independent and autonomous problem solvers.
About the Role
As a part of the Synth team, you will be at the heart of the data generation engine. The nature of startups is that you will be working on a wide variety of technical tasks, and also on some non technical tasks.
Concretely, you can expect to:
- Contribute in building the most advanced data generation engine in the world
- Develop and work on algorithms for constraint based data generation
- Work on building a DSL for a declarative programming language
- Work 90% in Rust
- Deliver high quality open source code
- Work directly with the founding team on building product and traction
- You have strong experience in Rust. (Including async and macro programming)
- You're comfortable with Linux / Unix
- You know your way around a database
- You have experience working on complex projects with a team of engineers. Although not a hard requirement, this role is not suited for recent graduates.
- You have contributed to large OSS projects
- You know your way around Docker / Kubernetes
- You're comfortable with at least one of the major cloud providers (preferably GCP but the transfer learning cost is quite small).
- You have some devops experience (CI/CD, Terraform etc.)
Since we are building a remote company, written communication skills are critical in us being a productive team. A small, written introduction to yourself would go a long way in affirming this. A good place to start would be explaining why you would like to work at Synth and what attracted you to the role.
After that, we try to make the process as painless as possible:
45 minute call (remote). This part is to get to know you, what you want and how this would fit into our team.
Take-home Rust assignment. This is a time-boxed exercise in Rust to assess your technical skills.
1.5 hour interview (remote). You will spend up to 30 minutes with each member of the founding team. Here you can ask any questions you would like about the company and it's more of a conversation than anything else.
We've written our own synthetic data engine from scratch in pure idiomatic Rust. This includes:
- A framework of generators to generate arbitrary amounts of data with user-defined constraints and correlations
- A meta-framework for inferring and then weaking arbitrary data models as a schema (basically a a glorified DAG with some bells and whistles)
- Built in privacy formalisms in our synthetic data generation process like differential privacy.
We also dabble in Python for user-facing clients and integrations with fake data libraries (i.e. faker).