PayPal has been undergoing a makeover for about two years now, and the company's senior director of user interface design, Bill Scott, says Node.js has become one of the top tools in its transformation. Scott, a former head of Netflix e-commerce user interface design, says Node is a sign of the deeper changes underway at PayPal.
One of Scott's assignments at Netflix was designing an effective way for Sony PlayStation 3 owners to download movies. Instead of creating one user interface to test, his team came up with four and tested all of them with PlayStation users. He said in an interview with InformationWeek that the one that won was not the one the developers would have chosen. The story shows how he prefers to choose technologies that allow him to experiment and test different options quickly.
Scott described how PayPal has used Node.js, as well as his experience moving from Netflix to PayPal, last May at the O'Reilly Fluent Conference. He provided an update on how far PayPal has progressed with its Node.js makeover on Feb. 28 at Node Day, held at PayPal's headquarters in San Jose, Calif., where 400 Node.js programmers showed up from Groupon, Wal-mart, Netflix, LinkedIn, Adobe, and GoDaddy, among others.
He also moved his personal blog to Node.js late last year, and said in his personal blog, "In case you didn't know, I love NodeJS. It has helped us start a revolution at PayPal for our engineers, and soon our customers, as experiences will start rolling out faster."
[Want to learn more about PayPal's mobile modernization effort? See How PayPal Got Its Swagger Back.]
In early 2012, Scott was still getting acquainted with Node.js when David Marcus, former CEO of Zong, a startup acquired by PayPal, was named president of PayPal. Marcus immediately realigned priorities, telling current CTO James Barrese and other key developers, "Let's redo PayPal Checkout."
That was music to Scott's ears. In his eyes, Marcus changed PayPal's risk-averse and stodgy technology culture into one that would modernize and revise applications fast. The PayPal Checkout function was the bane of merchants because it took shoppers off their e-commerce site and onto PayPal's to complete a transaction. Merchants wanted visitors-turned-buyers to stay on their sites, where they'd have another chance to interact with them after that transaction.
PayPal collects $3.5 billion in revenue through interactions with customers set by the user-interface front end. Scott was brought in to re-engineer the user interface that controlled those interactions.
When he arrived at PayPal in 2011, Scott told InformationWeek, he found the company had built its foundation code in C++ and Java. It used the Spring Framework, a way of lightening up Enterprise Java's complexities, but that wasn't enough for Scott. "It was a very unfriendly environment for front-end engineers," Scott told the Fluent Conference in May. Startups were developing almost exclusively in Ruby, PHP, and Node.js, and he wanted to do more of the things they were doing.
When developers work in Node.js, they can change the code they're working on, direct it to run, and see whether it works -- in the blink of an eye. With Java, what was often a 15-second (or even up to two minute) wait when deployed to a staging server was a few thousandths of a second wait in Node.js. "Letting developers see changes almost simultaneously was a huge, huge win," said Scott.
Scott said PayPal had five engineers redoing the PayPal Wallet application using Java when he decided to assign a two-person engineering team to work on the same task using Node.js. Within two months, that team had caught up to the five-person team.
"You can do more work in a shorter amount of time with half the people," Scott concluded. Part of the conversion to Node.js was also a conversion to agile development methods instead of the waterfall approach. Node.js lends itself to agile development because it requires 33-50% fewer lines of code to get a job done, he said.
PayPal still has services written in Java and C++ that the web applications and Node.js applications call on. But PayPal Funding Source, PayPal Account Details, PayPal LogOn, and Wallet now have user experiences set by Node.js, not older technologies.
PayPal has redone 22 of its customer applications, most of them formerly in C++, Java, or Java Server Pages, into the lighter, faster, non-blocking functionality of Node.js. One other Node.js benefit: Because it includes an HTML server in its operations, no separate Apache Web Server is needed.
Before Scott came to PayPal, he developed the Rico library used in Ajax programming and co-authored "Designing Web Interfaces" for O'Reilly. But he's drawn to the challenge of converting a first-generation e-commerce company, which has always done business through PCs interacting with Web applications, into a more modern and mobile organization. "In the beginning, we thought Node.js would scale the same as Java, but we're seeing much improved performance and scaling. I've loved the developers' joy it's created."
What do Uber, Bank of America, and Walgreens have to do with your mobile app strategy? Find out in the new Maximizing Mobility issue of InformationWeek Tech Digest.