Senior Software Engineer, Infra/Systems
Convex
Software Engineering
San Francisco, CA, USA
Location
San Francisco
Employment Type
Full time
Department
Engineering
Convex is transforming the way developers build applications.
Our mission is to fundamentally change how software is built on the Internet by empowering developers to create fast, reliable, and dynamic apps without a backend team. We provide a full-stack app platform carefully designed with database, compute and backend abstractions that allow developers and LLMs to move fast but also create products that scale and remain simple over their lifetime.
Convex has assembled a team of engineers who have built and designed some of the largest backends in the world, with exabytes of data, millions of transactions per second, and shipped desktop and mobile software onto billions of devices. We are a group of friendly, collaborative, and passionate people that love working in-person together in our office in San Francisco. We hire primarily in SF but have a few experienced folks working remotely in certain situations.
The Role:
The Convex team has a lot of experience running large systems at scale, and as our customers and infrastructure grow, we’re looking for exceptional staff or principal-level engineers to help build and maintain what comes next. If you’re passionate about distributed systems and have experience designing and operating large-scale infra, we’d love to talk!
This is a hands-on role that moves between architecture and execution. You’ll work across core systems like our database and synchronization layer, and build out newer primitives like branching and analytics as they take shape. A lot of Convex’s platform requires serious design work where we can’t just follow best-practices since we’re the ones defining them. If you like the idea of designing a new storage layer that minimizes B-tree churn, or coming up with an API for managing ephemeral state that might disappear if a node restarts, or setting all that aside for a week and landing something simple and pragmatic because we’re a startup and need to ship, you’re going to like it here.
We value simplicity, leveraged work, and strong ownership. Our team is high-ownership and cares a lot about oncall but this isn’t an ops role - we want people who design and build things the right way… or as close as is possible at a startup.
You’ll work closely with the engineering team and CTO on some of the most important technical decisions at the company.
What You’ll Do:
Design, build, and maintain Convex’s global cloud infrastructure.
Investigate and improve the performance and reliability of our systems.
Be self-directed in prioritizing the right projects to work on, in close collaboration with the engineering team and CTO (hi! this is me, James).
Own architectural decisions that shape the long-term behavior of multiple core systems.
Help establish technical direction and engineering standards as Convex grows.
Work across the stack when needed, rather than being constrained to a single layer of infrastructure.
Write a bunch of cool systems and database code.
Occasionally put up with James asking if there’s a simpler more elegant solution to a problem.
What Excites Us:
~6+ years of experience in backend or systems engineering, though we care far more about depth of ownership and experience operating mission-critical systems than years alone.
Experience building and scaling large systems, including owning systems through major scale transitions or building core infrastructure from scratch.
Strong systems judgment: understanding tradeoffs and knowing when to keep systems simple versus when to invest in complexity.
Experience working in fast-moving environments where requirements shift and many of the hardest problems are not fully specified upfront.
Interest in working in-person at Convex's office in SF.
Ability to write high quality code (knowledge of Rust is a plus, but you’ll figure it out).
An enthusiasm for going deep to understand Convex systems and not be constrained to a certain layer of the stack.
Ideal Characteristics
This is an attempt to outline some characteristics of engineers who tend to thrive at Convex. We have a high demand for conceptual thought and architectural sensibilities, while also having the typical demands of a small startup.
Have they developed taste for excellence?
If someone has a few years of experience, it’s extremely valuable for them to have worked closely with a person, team, or organization that is truly excellent in any domain. Excellence can’t be learned passively since it requires being meaningfully better than the status quo. What we care about most, though, is whether they have developed a sense for what high-quality engineering looks like. This shows up in how they reason about systems, the standards they hold for their own work, and the kinds of tradeoffs they find acceptable. They should recognize that excellence is rare and that developing real engineering judgment requires years of deliberate work.
Are they a deep thinker?
Convex is a rejection of industry norms and a belief there’s a better way of building apps. This requires us to think for ourselves and chart our own course. Engineers here need to think deeply about why they’re solving problems and the long-term implications of their choices. If someone does something just because they were told to or because it’s a “best practice” they will probably not excel here.
Do they understand the demands of a user-facing live-site service?
We generally weigh experience on OLTP databases over OLAP or offline systems. Not just because it’s more relevant domain experience but it also involves a mindset that the system absolutely must work because there’s a critical user-facing application on the other side. Live-site experience brings an appreciation of how hard it is to keep a service running at all times and how important it is to build simple well-abstracted systems that are less likely to fail.
Do they value simplicity and pragmatism?
Simplicity is at the heart of all good systems, especially those that are able to scale and adapt to future needs. In addition to architectural simplicity, we also try to do the simplest thing to solve a given problem at Convex. Don’t come here because you want to write a consensus protocol or storage engine, even though sometimes we need to do these things. Come here because you want to get really good at achieving great things in the simplest possible way.
Do they bring energy to the room?
Startups are hard. Building something from nothing is hard. Driving forward progress despite uncertainty is hard. Shitting on stuff is easy and just brings everyone else down. We have a high bar for quality but also a high bar for being constructive, positive, and excited about making things better. We’re meant to be having fun here.
Do they have tenacity?
Working at Convex is rewarding and the workload isn’t crazy but our users come first and sometimes that means we need to be on-call. We sometimes (rarely), get paged at night and have to respond with dedication, sometimes need to dig deep to debug a tricky issue or solve a problem no one has solved before. There’s a camaraderie that comes from being in a team where everyone has tenacity, will step in to help each other out, and can be trusted to do the right thing.
*The salary range for this full-time position is > $240,000 + equity + benefits