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 fun and always like approaching design from the lens of a full stack engineer - collaborating with API consumers to ensure that we're implementing interfaces that work for both the frontend and backend.

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

Rocket Pro Navigate

Rocket Pro Navigate is a mortgage-specific large language model platform integrated into the Rocket Pro portal for mortgage brokers. The platform features an AI-powered sales coach for role play and objection handling, a Lead Scanner that analyzes client and prospect lists to identify refinance opportunities, a Document Analyzer to generate client-ready explanations, and many other tools for our mortgage partners. This was the first product I worked on at Rocket Mortgage. I helped design APIs and database schemas, patched security vulnerabilities, and architected the application to be multi-tenant in order to support Rocket's broker partner network.

Panther Console

Screenshot of Panther Console
Panther is a cloud-based SIEM (Security information and event management) cybersecurity company that I worked for. The product ingests logs from various sources and helps security teams identify threats based on pre-built and custom detection rules. One of its differentiators is that the detections were built as code - in Python. The backend was a mix of golang and python deployed to a largely serverless infrastructure and made extensive uses of queues, document-based data stores, data lakes, etc. The front-end was react and typescript and interfaced with the backend via GraphQL. My primary focus was on our detection and alerting interfaces, as well as integrating with third party services, and building out tooling for AI. Within these realms, I worked on the full stack of the Panther application - from architecting features, defining graphql services, and implementing backend logic in golang to building out front-end components and MCP servers.

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 backends 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.