Developer Experience Engineer San Francisco
Join us in doubling the productivity of every engineer
Stripe cares deeply about developer productivity, both for engineers internally and for the engineers using the tools that we ship to the world. Our code base continues to grow in both scale and complexity, requiring constant innovation when upgrading our code and toolchain to increase our development velocity. Our product suite also continues to grow in breadth and depth, making the challenge of maintaining a cohesive, simple and powerful public API a top priority.
You’ll work on a team whose focus is enabling other engineers to ship code quickly, reliably, and with the minimum of cognitive overhead. Our goal over time is to more than double the productivity of every engineer.
- Design and create highly stable build systems for code repositories and test harnesses
- Write and drive adoption of new libraries in service of engineering teams throughout the company
- Define the development experience at Stripe by building linters, editor plugins, and development tooling
- Design, implement, and drive adoption of abstractions in many layers of our internal stack, from the customer-facing HTTP API down to the client libraries of our storage backends.
- Optimize the experience of working with the programming languages we use, ensuring that using each language is a great experience.
- Work on Stripe API-wide features such as rate limiting, logging, versioning, authentication and error handling.
- Improve developer-centric Stripe API product areas such as webhooks, API keys, permissions, and test mode.
- Build abstractions that help maintain the quality and correctness of our external API.
You may be fit for this role if you match some of:
- Enjoy designing APIs in an existing code base
- Are a strong communicator, and effective at driving consensus around code quality and architecture by listening to people’s needs
- Enjoy greatly accelerating all engineers around you with innovative tools and processes that make their lives easier and enable them to focus on what they are building
- Have a strong interest in programming languages, and love learning about and optimizing runtimes, data interfaces and full stack performance.
- Understand the value of documenting and gradually enforcing best practices
- Are passionate about building great integration experiences
- Care about API quality, clean interfaces, and empowering developers
- Want to build new tools for people to explore and test APIs
You might work on:
- Building an integrated development environment across local editors and remote services for all Stripe engineers to use as their primary development platform
- Refactoring large codebases to better enable many teams to work independently
- Building consistent, polished SDKs for multiple languages, enabling customers of Stripe to easily integrate with our products both on web and native mobile platforms
- Creating frameworks for loading and packaging code, and defining the dependencies between services, speeding up the development loop of all Stripe engineers
- Extending a programming language with a type system, or creating a highly performant runtime which enables it to significantly reduce its CPU or memory footprint
- Improving our client libraries to provide great integration experiences for Stripe customers
- Refining our webhook system as we continue to scale up in volume
- New APIs that go beyond REST
- Scaling your API with rate limiters https://stripe.com/blog/rate-limiters
- Designing robust and predictable APIs with idempotency https://stripe.com/blog/idempotency
- Running three hours of Ruby tests in under three minutes https://stripe.com/blog/distributed-ruby-testing
We look forward to hearing from you.