Back in 1990 when I was at high school, my father’s business was going through a tough time, so we downsized and moved from the most wonderful city of Mumbai (India) to our infrequent vacation town, Nasik. The thought of being distanced from all my dear friends in Mumbai was devastating, but there was nothing I could do about it! Little did I know then that our move to this obscure town was the foundation that would shape my career! It was at my new high school in Nasik that I was first introduced to computers in grade 9. We started with “logo”, moving the faithful turtle around the screen, and gradually started coding in “Basic”. Some day that year, the director of the computer section was on rounds during a programming competition prep session, and pointed out a potential flaw in my code… and I explained to him why he was wrong. He said he was sorry and I said “you should be!”. I think that event established my “geek” status and I proceeded to win my first ever inter school programming competition.
Till then, unlike my very academically successful sister who was in med school at the time, I had never achieved anything to brag about in sports or academics, or for that matter anything a ninth grader could brag about. Daddy was impressed to see that his son found something to excel in and some how managed to fund additional coaching in computers for me. During one of those coaching classes, we were assigned a Fortran coding exercise and I completed it with some clever use of for and while loops, and enthusiastically announced that I was done. The advantage I had over others was my school programming experience in Basic, while the rest of the class was just being introduced to programming. The instructor awarded me with an opportunity to explain my solution to the class. I went to the board (can’t remember if White boards were a thing then or was it chalkboard) and wrote my code there. My “explanation” of the solution was reading out the code. I felt like I was the smartest of the lot, but the impression I left on others, including the instructor, was that this guy must have copied the solution from somewhere and has no idea how it works! That is when I learned that tech and teach are completely different worlds.
Fast-forward to 2015, when, thanks to my Computer Science foundation, I found myself armed with a US citizenship, a good resume, and a new job with PayPal Here’s SDK team in the Silicon Valley. The SDK team had a “Sample App” that partners could refer to for coding their integrations. Our partner developers could download the single page app, enter their credentials and demo it to their management easily. To my genuinely awesome peers, this app was as self evident and self explanatory as my lines of Fortran code.
My first project was to build and publish our new PayPal Here Windows App and SDK… all completely new code. Our team has one very important value that we encourage- we encourage any fresh set of eyes to share their perspective. When it came time for creating the sample app for the Windows SDK, I discussed my concerns about the existing sample apps with the team and convinced our PM, the new hire with a cool mustache, to assign cycles for coding a sample app that splits each step in the use of our SDK and dedicates a separate screen for each step. The objective of this new sample app was not to showcase the technical and coding expertise and efficiency of our team, but rather to highlight each nuance of using the SDK and walk the “reader” of the app through the steps.
So, for a change, the target of our code became a “reader” rather than a “user” of the app! The app became an extended part of our “documentation”…. a live document that developers could read and also immediately interact with if they chose to execute the code. Our PM went on to showcase the new sample app and had it recorded on Microsoft Channel 9.
In 2018, with the launch of our next generation SDKs, we had the opportunity to revisit our iOS and Android Sample Apps. Over the years, our PM has grown the product team and we now have a new hire go-getter PM for the SDK. With the new SDK, we also took the opportunity to simplify the APIs so that there would be fewer steps to get things done, while still maintaining the power of the old APIs for any partner wanting to code advanced use cases.
Our goal was to have minimum friction for getting started and then have advanced capabilities available to use.The design of the new sample apps is one group of API features per screen (authentication, initialization, connection, payment selection, refund etc.).
This is obviously not how any self respecting developer would design and publish a real-world app, but then, this is not a real world app! It is an extension of our SDK documentation. The purpose of this app is API-first: to show how each API can be used, so each API feature-group gets its own screen.
The new sample apps can be found on PayPal Here’s public github repos:
I would love to hear your experiences with SDKs, sample apps, and documentation- PayPal Here or any other: what do you like about the sample app, what you wish should have been done differently, what could be added, what are the friction points, or any other observations. A fresh set of eyes and a fresh perspective is a highly valued asset, thank you so much for reading!
PayPal is hiring now! Check out these jobs.