Avoid boring people - First Plaid, then the world
TakeawaysPlaid is a financial technology company that helps other companies connect with bank data. By doing the boring stuff others don't want to do, Plaid makes life more convenient for everyone else and becomes a highly sticky product. Audio narration provided by Ad Auris 1. Abstracting away layers of workI'll be discussing the financial technology company Plaid today. Before that, it would help to get some intuition on abstraction and Application Programming Interfaces (APIs). I'll spend section 1 on abstraction and section 2 on APIs; skip ahead to section 3 if you're already familiar with those concepts. As usual, I'll err on the side of being less technically accurate for easier understanding. We'll first discuss abstraction: Suppose you have a groundbreaking app idea to make lots of money. You code your app such that every time a person presses their keyboard's F2 key, stuff happens and they make a profit: You test this on your laptop, all works well, and you start raking in cash. It works so well that you tell all your friends about it, who want in on it too. You send them the code and tell them to go forth and prosper. One of your friends (the annoying hipster one) tells you that the code doesn't work on his Mac, and he's sad he can't make money for his next single origin single barrel single plant cup of coffee. You wonder why, and go troubleshoot the code. Turns out Macs have this weird Touch Bar thing for function keys, whose sole purpose as far as you can tell seems to be to make life miserable. You add in special code for Mac users: It works for him now, and he moves on to suing magazines for saying all hipsters look alike. Another friend asks if you can also support mobile phones, to make money on the go. Someone else asks if you can add Blackberry support. And yet another wants to know when the app will be available for the KFC gaming console. As you stare at these tasks of adding more code for all the different computing devices out there, you start to despair. Why can't making money be as easy as pushing a button? You just want to write your code once, and then be able to use it across multiple devices. The idea above is actually a common problem in computing (multiple device support, not the money making one). If you write software that is meant to do everything, you'll need to account for all possible end user devices. After your code is translated to binary (1s and 0s), it needs to still do the same thing. Devices all have their own quirks, and you'll spend more time dealing with exceptions than writing the main functionality. In the late 90s people realised a solution to this - add an additional layer in between, aka make it someone else's problem. As Shimon Schocken explains, having a "middleman" now simplifies your task. Instead of writing code for every possible device, you "write once, run anywhere", and let that middleman deal with making your code compatible [1]: Splitting one big task into smaller tasks makes it easier for everyone. You've abstracted away part of the problem, since you want to write "high level" code and not worry about specific implementation bugs. Others may actually like the "low level" implementation details, but don't want to code the apps on top of it. From each according to his ability, to each according to his needs and all that jazz. We'll come back to this idea of abstraction, which lets people focus on just specific portions of a task. Now, suppose you and your friends want to put all of that money into banks around the world. The banks all have different procedures, and will kick you out if you don't follow their rules:
Most of the group hates memorising all these rules, but April is an exception. She delights in handling esoteric options, volunteering to deal with all the banks on behalf of the group. Not caring about how transactions happen, but only that they do happen, the group lets her deal with everything. Some acquaintances from a psychedelic retreat you took part in hear about your arrangement. They also dislike dealing directly with their banks, and want to know if April can help them too. She's happy to do so, as long as they pay her a small fee. Word spreads, and pretty soon everyone is calling on April as an intermediary. We see again that people cared most about one part of a larger task - the deposits and withdrawals. People don't care why April likes this or how she remembers everything, just that she gets it done. Having an April makes life more convenient. Lastly, suppose you wanted to check your account balance, just to confirm April isn't embezzling the money to pay for hidden service fees in her rental AirBNB. You start typing in recent deposits in a spreadsheet: Being a programmer, you disdain excel and aren't familiar with its features. You do know about the "+" sign to add things though, and start manually calculating your balance that way: A hundred cells and an hour later, you're close to being done, when a friend asks you what you're doing. They then explain the sum() function does what you want: They also tell you about the whole "library" of functions that excel has to help make math easier, such as avg(), count(), etc. The cool thing is that you can expect the same behaviour for that function, regardless of whatever device you're using - your Windows laptop, your friend's Mac, your dad's mobile phone. Once you know what the function does and how to call on it, you can save time. You don't care how excel does it, just that it works everywhere, all the time. Abstracting away different layers of work increases possibilities and opportunities at each layer. The person who programmed sum() doesn't want to spend her time adding up your deposits for you. Neither do you want to program the sum() function. People focus on the part they want to work on. Not doing everything lets people create lots of things. The concept of abstraction applies outside of programming too. We all work on a "layer" of a problem, trusting that everything below it is reliable. You're reading this in your email, not caring how email services work, just that they behave in predictable ways. 2. Application Programming Interfaces as contractsWe're now ready to think about Application Programming Interfaces (APIs). Imagine you had programmed a library of math functions, like sum() in the above. Wouldn't it be convenient if you could use those functions in other programs? And if you can make that library accessible to everyone, others could use it to build their own interesting things. You can focus on making your math functions, and others can focus on making apps that call on the functionality of your library as needed. As Joshua Bloch points out, as early as 1952 people like David Wheeler [2] were already proposing this idea of having libraries of functions (sub-routines): We'll call that library of functions an API [3]. Joshua believes the term was first used in a 1968 paper by Ira Cotton and Frank Greatorex: That usage touches on the concepts we discussed in our examples:
Our API is a well defined contract, telling us the inputs required and the outputs expected. For example, we want the sum() function to always return the total of the inputs, and not the total in some cases and the average in others. We also can't expect our APIs to do anything outside of the contract. For example, sum() works in excel, but make_me_money() does not, unless the creator of excel codes that function. And we trust that the API was programmed correctly, having undergone rigourous testing. For example, the sum() function should give us the same result on the same dataset each time. Imagine life without any APIs. You would have to start from scratch every time you programmed anything, and would also have to account for every possible end user scenario. It'd be like making a sandwich from scratch. 3. Plaid as an APIWe've established what APIs are and why they're important. Now, what does Plaid do? For those unaware, Plaid is a financial technology company that was supposed to be bought by Visa for $5bn, before abandoning the acquisition due to antitrust issues. Unlike my dating life, getting rejected actually made them more valuable, and they're now rumoured to be raising money at $15bn. Remember how April was running in between you and banks? Think of April as an API. Plaid is the API between banks and whatever else wants to use banking data. They enable their customers to build apps on top of their APIs, without worrying about the behind the scenes integration work required. And it's a ton of work. Suppose you're building a budget app, which needs access to user's spending history. If you used your own code for connecting with banks, you would need to write entire new sections whenever a new bank was added. You'd probably spend more time on that than the main functions of your app, given the new standards changing all the time. Plaid can provide you with APIs that will always work, and also a user interface that the user will see when connecting to a bank (Plaid Link). Your problem has become their problem. We'll take a peek at what this looks like, by following Plaid's Quickstart guide here. It gives you some files to set up a demo app on your own computer. After a day of troubleshooting, multiple computer restarts, and blindly installing what seemed like every possible program out there [4]: I finally got some of it to work, connecting with a test bank account: This allowed me to look at dummy data such as my bank account balance: Or recent transaction data: If I w̶a̶n̶t̶e̶d̶ ̶t̶o̶ knew how to, I could continue building out a financial app this way. The app would use the Plaid API to pull balance data, log a transaction, and update the balance. At this point though I encountered more bugs and g̶a̶v̶e̶ ̶u̶p̶ left it for another time. If I was building a company, you can imagine the time saved by letting Plaid do all the foundational finance work for me. I don't want to be working on the bank integration problem that's a layer below; that's not exciting for me. I'd rather work on making the shiny stock trading roulette wheel on top of that to fleece people of their money; that's doing god's work. If you think about most companies these days as "technology" companies, and then also think about how many of them require "financial" data, you start to get a sense of how large Plaid's opportunity is. The more companies created that want to integrate directly with customer bank accounts, the more relevant Plaid becomes. Plaid charges companies, not consumers, for usage of the API [5]. It seems to take a transaction based fee for smaller companies, and a subscription fee for larger companies. By doing the "boring" stuff they've created a win-win situation for themselves and other innovators who are happy to pay them for the convenience. Once you're using Plaid, it's unlikely you'll switch, since that would involve re-writing a lot of the code that uses Plaid's APIs [6]. Think about what that means for Plaid's ability to raise prices. How often do you change your plumbing? If that sounds unrealistic, consider Fortran, an early programming language. Its library of functions was defined in 1958, and is still being used today. Once implemented, APIs last a long time: We covered a lot today - intuition behind abstraction, APIs, and what Plaid does. The main takeaway is that there's a lot of stuff that people don't want to do, and a lot of money to be made doing all that stuff. The newsletter tells you to avoid boring people, but in this case building the boring stuff is a multibillion business. Further resources:
Thanks to Brian Rubinton, Justin Gage, Ben Morsillo, Denis Papathanasiou, Mai Schwartz, Aditya Athalye, Jeremy Presser, Ian Kar for advice on this article. Shoutouts
Other
Footnotes
You’re on the free list for Avoid Boring People. For the full experience, become a paying subscriber. |
Older messages
Avoid Boring People in 2020
Thursday, December 31, 2020
Favourite articles, reflecting on the year, and a reader competition
Remembering faces
Wednesday, December 16, 2020
Memories and the morning after
Having faith in the Kelly Criterion for angel investing
Friday, December 4, 2020
Using math to estimate optimal portfolio sizing
Tips From 15 Newsletter Writers On How To Build Your Own
Wednesday, November 25, 2020
How to think about writing, promotion, and community
Who gatekeeps the gatekeepers
Wednesday, October 28, 2020
Does the gatekeeper of gatekeepers gatekeep himself?
You Might Also Like
Missed Out? Here’s Your Final Opportunity to Join F.A.S.T Profits!
Tuesday, December 3, 2024
Last call ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Dirt-cheap toys imported into U.S. can be dangerous
Tuesday, December 3, 2024
If you're tempted to buy kids' toys at rock-bottom prices online this holiday season, consumer advocates want you to think twice — and maybe three times. View this email online Planet Money I
Adaptation is to mitigation what Robin is to Batman
Tuesday, December 3, 2024
Jenny Clark and Theresa Löber The UK's climate continues to change, getting wetter and warmer, with extremes becoming ever more pronounced. Even if we limit global warming to 1.5°C above pre-
🦾 OpenAI's big target
Monday, December 2, 2024
OpenAI is aiming for one billion users, China's manufacturing activity was up, and one intrepid cat | Finimize TOGETHER WITH Hi Reader, here's what you need to know for December 3rd in 3:14
Identity theft is more common than you might think
Monday, December 2, 2024
Three in 10 Americans were affected in 2023 ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
The One-Big-Side-Bet Model of Wealth Creation
Monday, December 2, 2024
Plus! Diff Jobs; Building Japan's Financial Ecosystem; The New Balance of Trade; Where Return on Investment Goes; Broken ETFs; Swipe Fees and Accounting The One-Big-Side-Bet Model of Wealth
This is not a Cyber Monday deal
Monday, December 2, 2024
But you have one month free of Ellevest. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Spring semester is approaching — are you ready?
Sunday, December 1, 2024
Invest in your career with a private student loan for grad school Your future starts today — apply for a private student loan Postgraduate studies can propel your career forward, helping unlock higher
Your Last Chance to Turn Market Chaos Into Opportunity
Sunday, December 1, 2024
You don't want to miss this ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
Longreads + Open Thread
Saturday, November 30, 2024
Shanghai, Wrong, Returns, Nuclear, Employee Performance, Feedback Loops, Buffett Longreads + Open Thread By Byrne Hobart • 30 Nov 2024 View in browser View in browser Longreads The FT has a piece on