Software Engineer, Storage

Backend Engineer · Senior · Full Time

San FranciscoUSD 180k – 280k1mo ago
Apply for this role

Opens Cursor's application page

Role

What you'll do.

As a Software Engineer on the Storage team at Cursor, you'll own the data layer infrastructure supporting millions of developers using an AI-powered coding platform. This role focuses on designing scalable multi-database architectures, implementing query attribution systems, and managing cache infrastructure for a rapidly growing developer tool. You'll need deep experience with relational databases like PostgreSQL and MySQL at scale, plus proven expertise in database sharding, migration, and operational excellence.

Responsibilities

  • Design Next-Generation Data Architecture: Architect and evolve the storage layer into a partitioned, resilient topology supporting millions of concurrent users. Design multi-database strategies that enable rapid scaling while maintaining system reliability and performance across all product surfaces.
  • Implement Query Attribution and Guardrails: Build comprehensive query monitoring systems that instrument database queries by service and detect problematic patterns before they reach production. Create review workflows and automated safeguards that prevent performance-degrading queries from being deployed.
  • Define Data Store Selection Strategy: Establish clear guidance and golden pathways for engineering teams to select appropriate database engines for their specific workloads. Document tradeoffs between storage solutions and build decision frameworks that eliminate guesswork and standardize infrastructure choices across teams.
  • Own Cache Infrastructure End-to-End: Design, deploy, and maintain reliable cache systems including capacity planning, performance optimization, and correctness guarantees. Build patterns and abstractions that allow product teams to leverage caching without managing complexity or worrying about cache invalidation issues.
  • Collaborate on Database Operations and Scaling: Partner with infrastructure and product teams to implement database sharding strategies, handle migrations, and manage service decomposition. Handle backups, disaster recovery, monitoring, and capacity planning with proactive operational excellence.
  • Drive Infrastructure Standards and Best Practices: Establish monitoring frameworks, alerting systems, and performance baselines for the storage infrastructure. Create documentation, runbooks, and training materials that enable other engineers to work effectively with storage systems and troubleshoot issues independently.

Qualifications

What we look for.

Technical

  • Relational Database Expertise

    Deep production experience with PostgreSQL, MySQL, or similar OLTP systems at scale. Proven track record optimizing complex queries, managing indexes, and tuning database performance for high-throughput environments supporting millions of operations.

  • Database Sharding and Scaling

    Hands-on experience designing and implementing database sharding strategies, horizontal scaling patterns, and data decomposition approaches. Demonstrated ability to handle migration challenges and maintain consistency during infrastructure evolution.

  • Cache and Storage Systems

    Practical expertise with caching layers (Redis, Memcached, or similar), understanding cache invalidation strategies, and implementing reliable cache infrastructure. Knowledge of tradeoffs between different storage engines and caching approaches for various workload patterns.

  • Systems Design and Architecture

    Strong systems design fundamentals with ability to architect resilient, scalable distributed systems. Experience designing for fault tolerance, consistency, availability, and operational simplicity in production environments.

  • Monitoring and Observability

    Proficiency building and implementing comprehensive monitoring, alerting, and observability systems for databases and infrastructure. Experience using APM tools, query profilers, and performance analysis to identify and resolve bottlenecks.

Education

  • Bachelor's Degree in Computer Science or Related Field

    Formal education in Computer Science, Computer Engineering, or equivalent practical experience demonstrating strong foundational knowledge in algorithms, data structures, and system design principles.

Experience

  • 5+ Years Backend/Infrastructure Engineering

    Minimum five years of professional software engineering experience with significant focus on backend systems, database architecture, or infrastructure engineering at scale.

  • Production Database Operations

    Proven experience tackling real production challenges including database troubleshooting, performance optimization, incident response, and capacity management in high-traffic environments.

  • Cross-Team Infrastructure Collaboration

    Track record of working effectively with multiple engineering teams to design and implement shared infrastructure. Demonstrated ability to communicate complex technical concepts and build consensus around architectural decisions.

Skills

Required

  • PostgreSQL

    Advanced proficiency with PostgreSQL including query optimization, indexing strategies, configuration tuning, and operational management at scale.

  • MySQL/MariaDB

    Deep experience with MySQL or MariaDB including understanding of storage engines, replication, high availability configurations, and performance tuning.

  • Database Sharding and Horizontal Scaling

    Hands-on experience implementing partitioning strategies, managing shard keys, and handling distributed query execution across sharded datasets.

  • Redis or Memcached

    Practical expertise deploying and operating distributed cache systems, implementing cache strategies, and debugging cache-related issues in production.

  • SQL Performance Tuning

    Expert-level ability to analyze query execution plans, identify bottlenecks, and optimize slow queries. Proficiency with database profiling tools and query optimization techniques.

  • Backend Programming Languages

    Proficiency in one or more backend languages such as Python, Go, Java, Rust, or Node.js for building infrastructure tooling and systems.

  • Distributed Systems Design

    Strong understanding of distributed system principles including consistency models, fault tolerance, replication, and consensus mechanisms.

Preferred

  • Experience with Database Migration and Decomposition

    Nice to have

    Hands-on experience managing database migrations, service-oriented architecture transformations, or moving data between systems with minimal downtime.

  • Kubernetes and Container Orchestration

    Nice to have

    Familiarity with Kubernetes or similar container orchestration platforms for managing database workloads and infrastructure automation.

  • Infrastructure as Code (Terraform, CloudFormation)

    Nice to have

    Experience using Infrastructure as Code tools to define, version, and manage database infrastructure and configuration changes.

  • Time-Series or Specialized Databases

    Nice to have

    Experience with specialized database systems such as ClickHouse, TimescaleDB, Elasticsearch, or other purpose-built data stores for specific workload patterns.

  • Incident Response and On-Call Experience

    Nice to have

    Track record of effectively responding to production database incidents, performing root cause analysis, and implementing preventive measures to avoid recurrence.

  • AI/ML Infrastructure or Developer Tools

    Nice to have

    Experience building infrastructure for AI/ML systems, developer tools, or platforms serving large developer communities. Familiarity with challenges unique to AI-powered applications.

Tech stack

Languages

PythonGoSQL

Frameworks

SQLAlchemy or ORM FrameworksAlembic or Database Migration Tools

Databases

PostgreSQLMySQLRedisMemcached

Tools

Prometheus and GrafanaPgBouncer or Database Connection PoolingEXPLAIN ANALYZE and Query ProfilersTerraform or Infrastructure as CodeDocker and Container Orchestration

Other

Distributed Systems ConceptsHigh Availability and Disaster RecoveryCapacity Planning and Load Testing

Compensation

Pay and benefits.

Base·USD 180,000 – 280,000

Equity·Stock options

Benefits

  • High-Impact Infrastructure Role

    Own the storage layer serving millions of developers using Cursor's AI-powered coding platform. Your work directly enables faster shipping, improved reliability, and explosive platform growth across all product surfaces.

  • Flat Organization and Autonomy

    Work in a talent-dense, small team with minimal hierarchy. Enjoy significant autonomy to design solutions, make architectural decisions, and execute on high-leverage problems with direct input on company direction.

  • Cutting-Edge AI Developer Tools

    Build infrastructure for next-generation AI-powered developer tools. Work on systems that are transforming how millions of programmers write code and collaborate with the latest AI and automation technologies.

  • Growth and Learning Opportunities

    Join a rapidly growing company where you'll tackle increasingly complex scaling challenges. Continuous opportunity to expand expertise in distributed systems, database architecture, and infrastructure at scale.

  • Collaborative Engineering Culture

    Work with passionate, creative engineers who value truth-seeking debate and shipping code. Participate in a culture that encourages spirited discussion, welcomes crazy ideas, and celebrates rapid iteration.

Process

Interview steps.

  1. 01

    Technical Screening

    Two to three short technical interviews focused on systems design, database architecture, and practical problem-solving. Expect discussions around your experience with database sharding, scaling challenges, and infrastructure decisions you've made in production environments.

  2. 02

    Onsite Interview

    Full-day onsite visit to Cursor's San Francisco office. Participate in a hands-on small project demonstrating your storage architecture and systems design thinking. Engage in technical discussions about infrastructure design philosophy, scalability approaches, and the future of Cursor's data layer.

  3. 03

    Team Meeting

    Meet with members of the Storage team and cross-functional engineering partners. Discuss how you approach collaboration on shared infrastructure, handling competing priorities, and driving consensus around architectural decisions across multiple teams.

Full posting

Original listing.

Our mission is to automate coding. The first step in our journey is to build the best tool for professional programmers, using a combination of inventive research, design, and engineering. Our organization is very flat, and our team is small and talent dense. We particularly like people who are truth-seeking, passionate, and creative. We enjoy spirited debate, crazy ideas, and shipping code.

About the Role

As a Software Engineer on the Storage team at Cursor, you'll own the data layer that underpins every product surface: the databases, caches, and the strategy for how teams provision, query, and scale their data stores.

Millions of developers depend on Cursor every day, and the future of our storage architecture is one of the highest-leverage problems at the company: get it right, and every team ships faster, every product surface gets more reliable, and Cursor can scale to meet explosive demand. You'll design and execute the path to a robust, multi-database topology built for that growth.

Example projects include...

  • Designing the next-generation data architecture: evolving our storage layer into a partitioned, resilient topology that keeps pace with Cursor's rapid growth.

  • Building query attribution and guardrails: instrumenting every database query by service, catching bad patterns before they hit production, and making it impossible to ship problematic queries without review.

  • Defining the "when to use what" strategy for data stores: creating clear guidance and golden pathways so every team picks the right engine for their workload without second-guessing.

  • Owning cache infrastructure end-to-end: reliability, capacity planning, and patterns that let product teams move fast without worrying about cache correctness.

You may be a fit if

  • You have deep experience with relational databases at scale, especially Postgres, MySQL, or similar OLTP systems.

  • You've tackled database sharding, migration, or decomposition problems in production environments.

  • You understand the tradeoffs between different storage engines and can help teams make the right choices for their workloads.

  • You care about operational excellence: backups, monitoring, query performance, and capacity planning are things you think about proactively.

  • You have strong software engineering fundamentals and enjoy building systems that other engineers depend on.

Applying

If there appears to be a fit, we'll reach out to schedule 2-3 short technicals. After, we'll schedule an onsite in our office, where you'll work on a small project, discuss ideas, and meet the team.

#LI-DNI

Redirects to Cursor's application page.

Other roles

More at Cursor.

View all 37 roles