Senior Software Engineer (Rust) at Bolt Labs (Remote, USA)
**At [Bolt Labs](https://boltlabs.tech), our mission is to build usable, secure, and scalable infrastructure to enable everyone to securely store their assets while preserving the privacy of their transactions**. We have been working on two core initiatives to achieve this mission:
(1) **A secure digital asset manager**: a specialized key management system that helps people store, retrieve, and use the private keys associated with their digital assets. We're building a security-first system with layers of cryptography, hardware protection, and a misuse-resistant design.
(2) **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 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.
* **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
* **Flexible Salary Range**: $180,000 – $200,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 Senior Software Engineer (Rust) if…
### You have solid Rust experience (or its equivalent)
You will be working within and managing projects involving a Rust codebase from day one. Rust does not necessarily need to be the language with which you have the most experience, but you have extensive experience with the following: (1) assembling, managing, and 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 have experience managing multiple software development projects
At Bolt, you will be planning and managing the full software development lifecycle for multiple ongoing projects, including architectural design, identifying appropriate tools and frameworks, setting project timelines, and reviewing contributions from team members and external contributors. You are meticulous about identifying and implementing software development best practices and standards with respect to security, testing, documentation, and so on. Additionally, you are excited about mentoring and collaborating with other team members.
### 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 can be successful while collaborating asynchronously, with the excellent verbal and written communication skills necessary to thrive in that environment. You should be comfortable working with minimal day-to-day structure and be able to self-motivate throughout the work week. 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 if you have the skills and experience to succeed in this role, 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 can only consider candidates 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. **Zero-whiteboard technical interview**: In this technical interview, we’ll have an open-ended discussion about a few near-term and long-term projects. We’ll share our research and product goals and challenges that we’re facing. We’ll ask you to share how you would approach some of these problems and how you would collaborate with other team members, external collaborators, and the broader community. We’re also excited to hear (and answer) your questions about our work, technical directions, and overall vision. You may prepare for this interview by reading through our documentation, source code, or other materials. 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. **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.
4. **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.