Jobs at Evervault
Lead Engineer, Cryptosystems
Build distributed cryptosystems.
Evervault is a technology company building the encryption engine for the web, so that developers never touch sensitive data in plaintext and can isolate the code that processes it from the rest of their stack.
Our mission is to encrypt the web; our goal is zero data breaches, and our end-state is everything encrypted everywhere.
Because we’re building encryption infrastructure we need to be world-class at encryption, and world-class at infrastructure. We’re hiring a Lead Engineer, Cryptosystems to focus on on the intersection of cryptography and distributed systems. You'll be working with Rust, Node.js, and AWS Nitro Enclaves.
The core challenge for this position is simple: How do you implement globally distributed production cryptosystems with ultra-low latency?
This person will:
- Be directly responsible for defining, owning, and executing Evervault’s production cryptosystems roadmap — from prototyping through maintenance — including the implementation of trustless systems
- Regularly conduct assessments and reviews of Evervault’s ongoing cryptography posture — including key management, safe cryptography framework use, and safe entropy
- Develop and share deep expertise in standardized cryptographic algorithms in use, or proposed for use in production
- Create content so that Evervault becomes the canonical source of truth for production cryptography globally — including the evaluation of proposals for standardization of new cryptographic algorithms
- Work closely with our Lead Engineer, Infrastructure to ensure our distributed cryptosystems are secure, reliable, and available
- Be heavily involved in building Evervault’s dedicated applied cryptography team, and mentoring engineers who may not be trained in cryptography
You may be the right person if:
- You are an excited about designing and implementing globally distributed cryptosystems
- You have expertise in cryptographic services — including enclaves/trusted execution environments & HSMs
- You have a network of cryptographers who would instantly want to join Evervault if you did
- You are a cryptography evangelist, and want to make cryptography as front-of-mind as artificial intelligence and machine learning
You are the ideal person if you have:
- PhD in Mathematics, Computer Science or related field (or equivalent experience)
- Expert knowledge of production distributed cryptosystems
- Exceptional engineering skills in a common development language (e.g. Rust, C, C++)
- Ownership over your work, and in the company
- Open vacation policy
- Flexible work hours
- Build your dream machine & workspace
- Health insurance
- Paid maternity and paternity leave
- Relocation costs
- Free lunch & dinner
Here’s what our hiring process looks like for engineers:
- Application: Submit your application including:
- Links to your profiles (e.g. GitHub, Twitter, Substack)
- A technical project(s) you’re particularly proud of — with some explanation of what it does
- Whatever information you think would be most useful — like a short explanation of your accomplishments & background, what you like to work on, and why you’re excited about joining Evervault
- Introduction call: An opportunity for us to get to know you & for you to learn more about Evervault.
- Take-home task: A coding task that helps us understand if you can write clean, maintainable, and well-documented code.
- Coding call: We’ll do an hour coding call where you’ll extend the take-home task. This helps us see what it’s like working with each other.
- Paid (virtual) on-site: We’ll embed you into our current builds as much as possible to see if you can hit the ground running.
- Offer: We aim to go from introduction call to offer made within two weeks.
Sending a solution to one or more of these programming challenges is an effective way of impressing us:
- Build a distributed system with 3 separate worker nodes which dynamically calculates n digits of Pi (π) over
xcycles in a distributed manner, exposing a single
POST /calculateendpoint which accepts
nas its body.
- Build a Node.js module which exposes a single function that accepts a function as its only parameter. Serialize the code for the parameter function and any external dependencies (e.g. npm modules, required functions). Bundle it into a single
index.jsfile which can be run in isolation while maintaining the same functionality.
- Implement a TLS man-in-the-middle forward proxy using HTTP CONNECT, which replaces all instances of foo with bar in outbound requests. Make it as fast/low-latency as possible.
- Build an implementation of the Raft consensus algorithm across n nodes that demonstrates leader election and log replication.