The Portfolio of Derek Brooks

API Design

I've been designing APIs nearly as long as I've been consuming them. I find API design to be very fun and always like collaborating with my API consumers to ensure that we're implementing interfaces in a sane fashion.

Here are 13 projects that I've worked on tagged API Design.

Roboflow Python SDK

Screenshot of Roboflow Python SDK
Roboflow is a computer vision startup founded by a friend in my city. I spent a short time contracting with them to build APIs and work on their Python SDK. Aside from implementing some image classification and segmentation features, I was also about to containerize the Python package, DRY up a bunch of code, and improve their test coverage. I really enjoyed getting to work with this company and play with ML, computer vision, and annotating images with masks, overlays, etc.

Venmo Teen Card

Screenshot of Venmo Teen Card
The Teen Card is one of the last initiatives that I worked on before leaving PayPal/Venmo. This project was particularly challenging due to all of the restrictions and red tape that come along with building financial software for minors. This was the first time that we needed to introduce a new type of "delegate account," which would allow the teen to log in, be restricted from certain features, and also be managed by / linked to their parent's Venmo account. I spent most of my time on this project working with PayPal architects to design the systems to manage the delegate accounts, allow them to act as entities on our existing Venmo models, and also designed interfaces between PayPal/Venmo back-ends and our mobile app.

derek.broox.com

Screenshot of derek.broox.com
derek.broox.com is my general home page, online scrapbook, and development playground. Its primary purpose is to catalog my life and allow me to play with various APIs and web development technologies. It serves up thousands of photos, check-ins, microblogs, blogs, maps, videos, and various other data from my life. Since 2001, it has been a constantly evolving web application.

v8 - latest version

This is the first version of my site that I completely rebuilt in a new language and platform. I moved the entire site from a containerized LAMP stack to a server-side-rendered (SSR) Nuxt.js application that relies completely on the Broox API to power its content. I chose Nuxt and SSR in order to keep my SEO and open graph / social sharing meta tags intact while still providing a speedy, asynchronous client-side browsing experience.

Broox API

Screenshot of Broox API
This is a RESTful API to surface all of my personal data like blogs, microblogs, photos, geodata, etc. It currently powers derek.broox.com and photos.broox.com.

v2 - latest version

After growing a little tired of Node, Express and Sequelize, I decided to rebuild my personal API using Python, Flask, and SQLAlchemy. The end product felt much cleaner and allowed me move a lot faster when iterating on new features.

Venmo Gift Wrapping

Screenshot of Venmo Gift Wrapping
Venmo Gift Wrapping provided a fun way for users to send payments with animated greeting cards to friends and family. This was a shotgun project with a tight deadline that I co-led, architected, and developed alongside a small team of engineers. We leveraged AWS lambdas and DynamoDB to power the storefront for the different designs and proxied all mobile requests through the Venmo Platform API. The product shipped on time and launched with a beautiful short film produced by Wong Fu Productions.

Venmo Purchase Protection

Screenshot of Venmo Purchase Protection
Purchase Protection provided a simple toggle button for Venmo consumers to specify whether or not they're paying for goods or services while sending a payment. When a payment is sent for goods and services, the seller would be charged a small fee and the payment would automatically be covered under Venmo's Purchase Protection Program. If something went awry with the transaction, both the buyer and seller could be covered and reimbursed. I was the lead architect for this feature and designed the APIs, data storage and fee collection solutions.

Venmo Cashback to Crypto

Screenshot of Venmo Cashback to Crypto
The Venmo Credit Card offers up to 3% cash back on a user's top expenditures. After Venmo launched the ability for users to buy and hold cryptocurrency in their accounts, we decided to allow Credit Card users to automatically turn their cash back rewards into the cryptocurrency of their choice. I co-led the effort and worked with a small team of engineers to architect and build the new functionality that made heavy use of Cloudevents, PayPal's crypto APIs, and internal Venmo services to get the job done.

Venmo Credit Card

Screenshot of Venmo Credit Card
Amidst the start of the COVID-19 pandemic, the Chicago Venmo team was tasked with launching one of our most ambitious products. We worked closely with PayPal Credit, Synchrony Bank, and several internal Venmo teams to launch a branded Venmo Credit Card product in just 10 months time. I served as a tech lead and cross-company liaison to help architect and lead the development of the Credit Card servicing portion of the product. This included the data syncing, data structures, and API design to power the interfaces that a user sees when viewing or managing any information about their credit card in the Venmo Application. Later, I worked with a small team to add Cryptocurrency Reward functionality and also led the effort to get the Credit Card service's codebase upgraded to a more modern version of Python.

Venmo Payouts

Screenshot of Venmo Payouts
Venmo Payouts is a product that I got to build as a proof of concept and then turn into a full-fledged product alongside a small team of developers. The initial proof of concept was a shotgun hack to power a couple marketing campaigns that would allow merchants like Chipotle to send small payments to users in an effort to get them to buy burritos. After the success of the pilot campaigns, I acted as a tech lead and liaison between the Venmo team and PayPal MassPay teams to architect and build out a highly scalable merchant-to-consumer payout platform. I designed the APIs, data stores, and contracts between PayPal and Venmo.

Venmo Debit Card

Screenshot of Venmo Debit Card
The Venmo Debit card is a physical card that Venmo users can request to make purchases with their Venmo balance. This was one of the first products that we offered that would allow users to do more than just peer-to-peer payments with their Venmo wallet. I developed APIs and data stores related to storing sensitive user information including the federally required Customer Identification Program (CIP) user information. I also worked on various other debit card servicing APIs like the card design picker and card renewal.

Modest Commerce API

The Commerce API was a flask-based python API built to power storefronts for merchants using the Modest platform. I helped design and develop the initial architecture - including database modeling and endpoint design. As our company grew, I became the API consumer tech lead, so my API contributions switched primarily to endpoint contract collaboration.

Carfiend API

Screenshot of Carfiend API
Carfiend was a mobile application built for car enthusiasts to share photos of both their own cars and cars in the wild. The idea was that it would become an Instagram for gearheads. A couple friends and I were hired to build the backing API for the project. We collectively architected the application and built the API out in Python using Flask and SQLAlchemy. I built many of the endpoints and models for interacting with cars, photos, events, other users, search, etc.

Narwhal

Screenshot of Narwhal
Narwhal was the famous technology infrastructure behind Barack Obama's 2012 Re-election campaign. It was a Python-based interface and integration layer that allowed us to unify the disconnected pieces of what we knew about voters, volunteers, event-goers, voting locations, etc. I was one of the top 5 contributors to the Narwhal project. The integration side was a small web layer that handled syncing data with our vendors in real-time. Incoming data was saved to a local database and then became queued via SQS for translation and loading (by our integration workers) into the Narwhal interface layer. Here, I extended existing integrations and built some parts to sync voter applicant and precinct data. The interface side allowed us to use this unified data to quickly build dozens of client applications for various tasks across the campaign. I spent most of my time in Narwhal building and extending models and endpoints to support client application needs. The pieces I worked on helped support pollster surveys, phone canvassing, volunteer organizing, image processing, voting location lookup, incident tracking, etc. I also built a thin Ruby Gem that allowed our ruby based API consumer applications to quickly and easily interface with the Narwhal API.