Jobs at Evervault
Lead Engineer, Infrastructure
Build encryption infrastructure & 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, Infrastructure to focus on Evervault’s infrastructure. You'll be working with Rust, Node.js, and AWS Nitro Enclaves.
The core challenge for this position is simple: How do you design and implement globally distributed cryptosystems with availability, efficiency, reliability, durability, scalability, predictability, consistency, composability, observability, and, above all, security?
This person will
- Be directly responsible for leading the design & implementation of Evervault’s (multi-)cloud infrastructure and distributed cryptosystems architecture
- Ensure that all of Evervault’s technology is secure, reliable, available, and efficient
- Build services to deliver capacity planning, provisioning, configuration management, monitoring, request routing, and performance compliance while demand grows
- Own Evervault’s availability and uptime program — ensuring a minimum of five nines (99.999%) uptime
- Work closely with our Lead Engineer, Security to develop the common observability instrumentation, monitoring, and service-level dependency discovery & alarming systems
- Get the Evervault engineering team comfortable with the roadmap and investment needed to become best-in-class encryption infrastructure, while championing cost optimization & operational efficiency
You may be the right person if
- You are an expert in, and have a deep understanding of, the fundamental concepts of distributed system design
- You want to design, engineer, implement, and document multi-cloud distributed systems
- You want to be heavily involved in building Evervault’s dedicated infrastructure team, and mentoring engineers who may not be trained in designing & implementing distributed systems
- You have a network of quality (infrastructure) engineers who would instantly want to join Evervault if you did
- You love Terraforming
You are the ideal person if you have
- 8+ years of relevant experience, including leading engineering organizations & managing teams that shipped and maintained critical cloud infrastructure — or you’ve had equivalent experience in a more condensed period
- Expert knowledge of designing and implementing multi-cloud & edge distributed systems
- Exceptional engineering skills in a common development language (e.g. Rust, C, C++), and with Terraform
Here’s what our hiring process looks like for lead 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.
- System Design interview: A call where you'll build a scalable, fault tolerant, highly available system. This helps us see what it’s like working with each other.
- Take-home task: A coding task that helps us understand if you can write clean, maintainable, and well-documented code.
- Call with Design: Meet with one of our designers, a key engineering partner.
- 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.