Software Engineer (Rust) at Bolt Labs (Remote, USA)
**At [Bolt Labs](https://boltlabs.tech), our mission is to empower everyone with the tools they need to realize financial privacy**. To achieve this, we're building zkChannels: a scalable and usable privacy-preserving payment infrastructure that integrates with existing payment networks, including but not limited to public blockchains. We believe zkChannels will set a new standard for secure payments in online services, giving merchants a seamless way to comply with emerging privacy regulations and moreover, delight their customers with cryptographically rigorous respect for their privacy.
[You can learn more about our work on zkChannels here.](https://github.com/boltlabs-inc/zeekoe)
Why work at [Bolt Labs](https://boltlabs.tech)?
* **Values**: We care about building technology that makes a positive difference for the privacy of people everywhere. Our goal is to create an inclusive and supportive work environment, where we all have the resources to learn, grow, and work collaboratively to improve the state of privacy today.
* **Mentorship**: We believe in investing in your growth as an engineer. Especially as you begin, you will be collaborating closely with several members of our small team, and we'll work together to help you gain the domain knowledge you need to grow into increasing independence in the role.
* **Open source**: You'll have an opportunity to contribute significantly to the open-source Rust ecosystem, from which we both substantially benefit and to which we give back.
* **Flexibility**: We are a small, fully remote, focused team, offering maximum flexibility and minimum bureaucracy. If you're able to attend meetings, collaborate effectively, and do your work, when and where you work are up to you. Want to take a walk in the middle of the day? Want to turn your phone off after work and not respond to messages until after breakfast? We encourage you to value your life’s balance.
* **Research**: You will be working to solve meaningful, never-before-solved challenges with a world-class team of scientists and engineers in the fields of applied cryptography, distributed systems, programming languages, and more... and we're excited to learn from the unique insights that you will bring.
Compensation & Benefits
* **Salary Range**: $140,000 – $150,000 USD
* **Benefits**: Fully subsidized health, dental, and vision insurance for you (and 50% subsidized for your partner and family), equity in the company, a funded bring-your-own-device (BYOD) policy, and 4 weeks of paid vacation time per year, not including sick days and holidays.
You might be a great fit for the role of Software Engineer (Rust) if…
### You have solid Rust experience (or its equivalent)
You will be working within projects involving a Rust codebase from day one. You don't need to arrive as a Rust wizard (though you might become one while you're working here!), but you have experience with the following: (1) assembling and/or contributing substantially to projects implemented using Rust; or (2) using languages that share Rust's paradigms and design goals (concurrency, strong typing, memory safety) such as Golang, Haskell, C++, and OCaml. You will be expected to either possess or quickly acquire an understanding of Rust best practices and apply them as you contribute to a medium-sized project within the first month or two of joining us.
### You’re confident balancing independent and collaborative learning
Implementing a production-ready cryptographic protocol is difficult interdisciplinary work. We’re seeking someone who’s not afraid to ask a lot of questions: you should know how to notice when you're confused and say so when you are. At the same time, you should have the drive and the organizational skills to take charge of your own learning. We'll work together to help you strike a healthy balance between collaboration and independence.
### You have strong skills for asynchronous communication and remote work
Work at Bolt Labs has always been asynchronous and fully remote, and will continue to be so after the COVID-19 pandemic's travel restrictions are over. We're looking for an empathetic person who doesn't mind collaborating asynchronously, with the excellent verbal and written communication skills necessary to thrive in that environment. After it is safe to travel, we plan to bring the team together in person approximately once per quarter (but we won’t be doing that until it *really* is safe).
### You have any of many different professional or academic backgrounds
Please consider applying even if you *don’t* have:
* a college degree in computer science or engineering,
* `X` years of professional experience in Rust, or `Y` years of work experience as a programmer, or
* experience with cryptography, cryptocurrencies, distributed systems, privacy-preserving computation, anonymity-preserving network protocols, or any of the other specific domain details of our work: none of us came in knowing everything, either.
### You have current work authorization in the United States
For this role, we are looking for someone with current authorization to work in the United States.
How to apply
[Submit an application here!](https://airtable.com/shrcPH7PiD4doXBSl)
We will request the following information:
* your **name** and **pronouns**,
* your **resume** or **CV** (no page limit),
* a **brief cover letter** describing your interest in the role, and
* a **sample or description of your technical work**. Your work sample can be one or more public links to code you’ve written, or if your best work has happened behind closed doors, it can be a description of the work you did in enough detail for us to understand it. If the best example of your skill as an engineer is in a language other than Rust, please show it to us or tell us about it—but in this case, please also include at least one sample or description of something you’ve done in Rust as well.
What to expect in the interview process
1. **Initial interview**: We’ll chat with you about your background, prior experience with Rust, motivation for working at Bolt Labs, and other introductory things. We’ll also ask you to tell us more about the work sample(s) or description(s) you submitted with your application. There won’t be any surprise pop-quizzes during this interview; this is about getting to know you on your terms.
2. **Short take-home preparation for technical interview**: If we want to move forward to a more focused technical interview, we’ll specify in advance an open-source Rust crate and ask you to familiarize yourself with it before your second interview so we can discuss it together. You can do this by reading through its documentation, source code, or other materials, and/or by playing around with it by writing some code. We don’t expect you to spend more than a few hours preparing, just enough to have a meaningful conversation and show us your insights.
3. **Zero-whiteboard technical interview**: In this technical interview, we’ll have an open-ended discussion about how the crate is designed, why you think it works the way it does, and how it might be improved. We’ll also ask more detailed questions about your knowledge of Rust and of software development in general, with the intent of filling in our understanding of your technical background. We don’t expect you to know the answer to every question we might ask—an impressive technical interview might just as much mean that you asked insightful questions as that you had insightful answers.
4. **Final team interview**: After the technical interview, we'll let you know whether we're interested in moving forward to a final interview where you'll get an opportunity to talk to the entire team at Bolt. You'll be able to ask any questions you still have about our culture, our future plans, our upcoming technical challenges, and whatever else comes to your mind.
5. **Offer**: After the final interview, we'll let you know whether we're interested in extending an offer. If we extend an offer, our team members will continue to be available for you to ask anyone any questions that might have come up for you since the last interview.
We recognize that the interview process is also an opportunity for you to evaluate us as an organization. At any point in this process, we may realize that we're not a great fit for each other. If it’s the case on our end, we'll try to let you know as soon as possible.
All of our interviews will be conducted over video chat.
We want you to be comfortably able to show yourself off in the best possible light. If there are any accommodations we can make during the interview process to make things easier for you, please let us know. At any point, please feel free to email any questions to firstname.lastname@example.org.
We look forward to meeting you!
Bolt Labs is an equal opportunity employer and we value diversity at our company. We do not discriminate on the basis of race, religion, color, national origin, gender, sexual orientation, age, marital status, veteran status, or disability status.