Full Stack Software Engineer, Payments
Seattle, United States
Payments Engineering at Airbnb:
The goal of the Payments Team is to allow any two people in the world to frictionlessly exchange money on our platform. Each day we collect and remit payments to 190+ countries in over 70 currencies and counting. Currently, no solution exists with the global reach we require, so we build and maintain our own global payments infrastructure.
We operate at all levels of the stack: we’re responsible for the UIs that allow people all over the world to pay and get paid in their locally preferred methods, the APIs and processor integrations to send payment instructions to our wide network of partners, the offline reporting and reconciliation pipelines that ensure financial data integrity and allow the business to operate, and more.
From high-throughput Java services, to Ruby user-facing applications, to data pipelines utilizing Scala/Spark, to mobile (iOS/Android) payment flows, to rich client-side applications using ReactJS, we emphasize reliability, testability, quality, and solid engineering design.
Meet the people, learn about the challenges, and read more about what we do at Payments here.
What are examples of work that Payment engineers have done at Airbnb?
- Our payments platform transmits billions of dollars per year in dozens of different currencies across almost every country in the world. By integrating new partners, we can both optimize our costs and grow our business by better supporting different countries. Our recent integrations have opened up payments in Brazil and Cuba.
- We take security very seriously and work on a variety of security initiatives including data encryption and building and maintaining PCI compliant systems.
- Handling taxes in our booking application is a big part of supporting guests, hosts and our communities. We build tools to make the experience as magical as possible, which poses many challenges due to its inherent complexity and global scope in our two sided marketplace.
- Scaling our systems is becoming increasingly challenging given the sheer volume of transactions, currencies, and payment methods we support. Recently we migrated from batch processing to a real-time, streaming model using asynchronous queues and horizontally scalable workers, and many more projects like this are in the pipeline.
- We’ve built our own data warehouse to facilitate reliable, time series based GAAP compliant reporting for finance and accounting. Moreover, we efficiently reconcile every transaction we process to make sure our system is in sync with banks all over the world.
Blog posts from our team:
- Tech Talk: Payments at Airbnb
- Testing at Airbnb
- Anomaly Detection for Airbnb's Payment Platform
- Maintaining Quality at Scale
- Secret Ingredients to building Airbnb's Payments Platform
- Open Air Tech Talk: Payments on a Global Scale
- Large Scale Payment Systems and Ruby on Rails
- Interning with the Airbnb Payments Team
The following experience is relevant to us:
- 5+ years of industry experience
- Comfort working in different parts of the stack
- Experience with relational databases and schema design
- Interest in innovations within the global payments industry
- Rigor in automated testing, code quality, and engineering best practices
- Bonus: Experience with financial, accounting or payments systems
- Bonus: Experience scaling architecture
- Bonus: Experience working with large and complex datasets
- Bonus: Proficiency with Ruby, Java, and/or Scala
- Bonus: Experience with Spark and/or other distributed data processing systems
- Competitive salaries
- Quarterly employee travel coupon
- Paid time off
- Medical, dental, & vision insurance
- Life insurance and disability benefits
- Fitness Discounts
- Flexible Spending Accounts
- Apple equipment
- Commuter Subsidies
- Community Involvement (4 hours per month to give back to the community)
- Company sponsored tech talks and happy hours
- Much more...