API Style Guide and Patterns: The Evolutionary Journey Continues

By

APIs as Products Around four years ago, we began the journey at PayPal to transform all of PayPal’s core capabilities into a platform of discoverable, well-encapsulated, reusable API-driven products. We have used a customer-oriented approach to go from a very monolithic and siloed architecture to a much more loosely coupled set of over 150 services with well designed, modern APIs. We framed this transformational exercise as an organizational change initiative, with the goal of bringing a fundamental shift in how we design and build APIs. We made it a priority to identify and serve all key “customer” constituencies – developers… Read more

Autoscaling applications @ PayPal

By , and

PayPal’s infrastructure has grown tremendously over the past few years hosting multitudes of applications serving billions of transactions every year. Our strong belief in decoupling the infrastructure and the app development layer enables us to independently evolve quicker. With more than 2500 internal applications and more than 100k instances across our entire infrastructure, we are committed in ensuring high availability of our applications and optimal resource utilization. In our previous post, we discussed in detail about Nyx, an automated remediation system for our infrastructure. The underlying modular architecture of Nyx is designed to listen to a spectrum of signals from… Read more

Democratizing Experimentation Data for Product Innovations

By

This blog is organized as follows: Introduction to A/B Testing Next Generation PayPal Experimentation Platform Next Generation PayPal Experimentation Analytics Platform Hypothesis Testing Null Hypothesis Z-Test Z-Score Two-Sample Z-Test P-Value P-Value of a Two-Tailed Z-Test Druid Druid Post Aggregators zscore2sample pvalue2tailedztest Implementation of Druid Post Aggregator for Two-Sample Z-test Druid Query Evaluation of Post Aggregators A Druid Query Example using Zscore and Pvalue Post Aggregators Next Step in furthering Druid Performance of Post Aggregators Concluding Remarks Acknowledgements Introduction to A/B Testing A/B Testing (also known as experimentation or bucket testing), enables the product teams to gain more insights and understandings of PayPal users,… Read more

Releasing squbs 0.9.0

By

squbs (pronounced “sqewbs” and rhymes with “cubes”) has already made past headlines (details) for its great performance and scalability. squbs 0.9 is the biggest update to squbs yet. It paves the road towards squbs 1.0. The updates in squbs 0.9 covers the following areas: Full migration from Spray to Akka HTTP Support for HTTP end-to-end streaming and back-pressure with the new low-level FlowDefinition API for service definitions Ultimate resiliency Lowest-possible latency Brand-new streaming HTTP client With integrated client configuration and circuit breaker Java API as first class citizens (besides the solid, powerful Scala API) enabling end-to-end Java use cases Rich set… Read more

Beam Me Up – Profiling a Beam-over-Spark Application

By and

As we move forward with adopting Apache Beam for some of our streaming needs, our Beam applications need to be tested for stability. Such tests are aimed at ensuring performance does not degrade over time, and applications are capable of maintaining desired performance characteristics (e.g., latency) as they run over long periods of time. When we ran a Beam-over-Spark application (Beam 0.7.0-SNAPSHOT ; Spark 1.6.2) for a period of several hours, the batch processing time was increasing unexpectedly (e.g., regardless of traffic seasonality). In this post we share the steps and methods we used to diagnose the performance degradation we witnessed in our application’s (batch) processing time, a diagnosis which ultimately led… Read more

PayPal bttn for Commerce

By

In my first rotation of PayPal’s Technology Leadership Program (TLP), I was fortunate enough to work on our Western Europe region out of our Paris office. The team there wanted to tap into the Internet of Things (IoT) market and with PayPal’s strategic movement from just a button on a website to existing across all contexts – including the offline world — it was clear that a physical button that integrates with our Braintree APIs was something worth investigating. After some investigation, we found bt.tn, a start-up that has an innovative approach to buttons and is based out of Helsinki, Finland.… Read more

Design Thinking: Out of the Classroom, Into the Fire

By

Aishwarya Natarajan and Dana Li, both Stanford University graduates, spent the summer of 2016 training with the PayPal Online Payment Product team as Product Management interns. They are coming back as full-time PayPal employees in Product Management in 2017, having successfully completed their Masters degrees in Management Science and Engineering from Stanford University. Below they discuss their experiences on the PayPal Online Payment Product team. “You’re a Product Manager? Great. So what do you actually do?” One of the great challenges of product management (PM) is explaining the elusive profession to those outside the tech world. Product managers wear a… Read more

How WooCommerce and Developer Agencies Optimize Payments for Small Businesses with PayPal

By

We recently had the opportunity to meet up with Michael Tieso, Developer Advocate at WooCommerce, and Jonathan Martin, President and Founder of Coolblueweb, an ecommerce development agency and gold level Woo Expert Developer. Developer agencies are an important part of our partner ecosystem to provide the best payment experiences for merchants around the globe. WooCommerce is a highly customizable, open source e-commerce plugin for WordPress that is free to use. They work with merchants and business owners providing the flexibility to create online stores with numerous plugins and extensions that adds a variety of features to their store. Merchants choose… Read more

New REST API Feature: Setting a Receiver for Payments

By

Until recently, if you have been using the PayPal REST APIs to process payments, you will have seen that the money transacted is always paid to the app owner, known as the payee or receiver. The ability to change the receiver of funds in a transaction by setting a different payee has been a highly requested feature by our developer community. With that said, we’re happy to share that you can now set the payment receiver when making direct payments in the REST APIs. When setting your payment transaction details, before starting the payment, simply add a payee object and… Read more

Integrate our new JavaScript SDK for Payments

By

PayPal’s Braintree is a core building block for accepting payments on the web, enabling merchants to accept PayPal, credit cards, 3D Secure, Apple Pay, Android Pay, and more. This year, we introduced a new version of our Braintree JavaScript SDK (Software Development Kit). With numerous improvements such as a smaller file size, greater flexibility, and input formatting, this modernized JS SDK is ready for the web of today and tomorrow. We’re pleased to announce General Availability of v3 of the Braintree JS SDK, ready for you to integrate and use right away. This SDK is a great way to accept… Read more