Staff Software Engineer, Payments
San Francisco, United States or
Seattle, United States
Airbnb is a mission-driven company dedicated to helping create a world where anyone can belong anywhere. It takes a unified team committed to our core values to achieve this goal. Airbnb's various functions embody the company's innovative spirit and our fast-moving team is committed to leading as a 21st century company.
What is Airbnb Payments?
Payments is key for any healthy marketplace, and is just as central to our product at Airbnb. The Payments team at Airbnb is responsible for everything related to settling money in Airbnb’s global marketplace. We build technology that powers Airbnb’s massive daily transaction volume to collect payments from guests, distribute payouts to hosts and everything in between. Our goal is to make the Payment experience on Airbnb as delightful, magical, intuitive, and easy as possible.
If you were to join, you’ll have the opportunity to build out our next generation of Payments Platform that powers all lines of Airbnb's businesses and serves the guests/hosts community around the world. We’re responsible for the whole stack from infrastructural work that comes with scaling a global payments company, to core services processing payments, to building out the payments experiences the user sees. You’ll have the opportunity to work on very technically challenging work, as you balance moving fast with the robustness and quality that working on payments demands.
We’re looking for talented engineers who are interested in building our Payments Platform that provides for our existing and future businesses. We’re open to experienced Payments engineers as well as engineers who don’t have experience but are interested in learning more. Come join us if you want to be challenged and learn the business and skills that working on payments offers!
Meet the people, learn about the challenges, and read more about what we do at Payments here.
What is Business Solutions?
Business Solutions is a payments engineering org with the mission to empower Airbnb businesses to deliver end-to-end, mission-critical initiatives to our community through optimized payments solutions that accelerate time-to-market and act as a launchpad for growth. We are a full stack geo-distributed team focusing on building a wide range of scalable payments solutions and systems to enable our businesses and regional markets. We are looking for a self-motivated backend engineer who is interested in working in a highly dynamic environment by collaborating with cross-functional and cross-site teams. As a staff engineer, you are in charge of coming up with payments system architecture and creative solutions using skills including service oriented architecture, distributed system, data processing pipelines, real-time system and payments technologies. The team is transforming how payments serve business as a platform in a multi-year effort, we have the following major technical challenges:
- Business Launchpad: business integration and onboarding to the payments system is complex, causing multiple pain points to both business/platform teams as well as payments teams: 1) complicated integration touchpoints; 2) large efforts with long development periods; 3) business customizations compromise core payments systems quality and maintainability, etc. We’re building this business platform to significantly simplify the business <> payments integrations and provide seamless onboarding experience to all clients including business and regional markets needs. It’s one of the most critical architectures in the payments systems.
- Multi Item Checkout Platform: our current architecture is limited to a single item checkout and payments. Multi-item checkout platform (MICP) is the underlying platform capability that enables multiple offerings on the checkout flow and provides guests with an optimized end-to-end purchase experience. In addition, MICP also provides hosts the ability to upsell value added services and enables Airbnb to offer additional products. MICP fundamentally changes the core paradigm from a single checkout limited architecture to a multi-item checkout platform that offers scalability and flexibility and provides significant value for our communities.
- Payments Unified Data Layer: Payments systems and data are very complex. Payments data are scattered among tens of services. The Payments system lacks an aggregation layer to construct the data ready to be consumed by clients. Each client needs to fetch data from multiple payments services and duplicate the aggregation logic on their own. It is challenging for clients to discover the right source-of-truth. In addition, Payments data models are highly normalized, getting aggregated data would require joining multiple db tables and is very expensive. Payments Unified Data Layer provides a unified architecture for clients to efficiently and performantly access payments data through unified interface and read optimized store.
As a Staff Software Engineer on the Business Solutions team, you will:
- Interface the team with businesses and platforms for solution/architecture design
- Lead the team to design and build our major technology transformation (see challenges above)
- Craft pragmatic solutions and be the bar raiser for quality and extensibility
- Amplify team impact through leadership and mentorship
- 8+ years of industry experience, including backend and full stack development
- Extensive architecture and design experience with large scale distributed system
- Proficient in any of the following programming languages: C/C++, Java, C#, Python/Django, Ruby/Ruby on Rails
- Problem solving: Ability to evaluate technical approaches and tradeoffs
- Communication: Ability to clearly and effectively communicate with stakeholders verbally and in writing
- Breadth of knowledge in payments domain would be a plus
- Strong project scoping and project management skills
- Ability to mentor and develop other engineers
- BS in Computer Science or equivalent work-related experience