The Portfolio of Derek Brooks

Python

After reading the Zen of Python, Python quickly became my server-side and scripting language of choice. It's readable, concise, and easy to get rolling with - especially when paired with the tons of lightweight frameworks and libraries that are available.

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

Broox Integration

Broox Integration is a containerized set of scheduled and manually run Python scripts that I use to manage the data that powers the Broox API. Its primary purpose is to sync data with various social networks (Flickr, Twitter, Foursquare), but I also use it for things like moving photo assets to cloud storage providers or running batch operations on my local data. All third party API response data that I fetch is cached in a Mongo DB and then manipulated to store only the relevant data in the MySQL DB that powers the Broox API.

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 Control Panel

Screenshot of Modest Control Panel
The Modest Control Panel was a multi-tenant Content Management System that allowed merchants to manage their Modest powered storefronts. Features included the management of store themes, payment gateways, shipping methods, orders, third party e-commerce product syncing, and even generating standalone iOS applications. The back-end of this app was built in Python using the Flask framework. The front-end was initially built with plain Javascript and jQuery, but was eventually migrated to React. As the Modest client application tech lead, I oversaw and greatly contributed to the overall product architecture and implementation of this web application.

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.

Call Tool

Screenshot of Call Tool
Call Tool is a phone canvassing web application used by both Obama for America and the DNC. In its simplest form, it provided volunteers with a potential voter to call and a relevant script to read. The volunteer could then record the answers from the potential voter, which were used to learn more about how the campaign should be operating or targeting individuals. Underneath its shell, Call Tool had a fairly complex architecture that proxied all of its data through our Narwhal API and interfaced with a Voter Checkout Service API and synced with 2 of the campaign's vendors. I architected and built the Call Tool web application and its communication with the Narwhal API from the ground up. I also extended several parts of the Voter Checkout Service to make it more performant, tighten protection against fraudulent callers, and better integrate with our vendors. As I took on other tasks on the campaign, I worked with other engineers and oversaw all development on the application.

Voting Location Lookup

Screenshot of Voting Location Lookup
The 2012 Obama Re-election campaign was a firm believer in that the more voters who turn-out to vote the more likely Democrats are to win the election. With that, the campaign put a huge effort into cataloging voting locations and making sure voters had the tools they needed to find these locations. As the lead engineer of voter contact I architected and built the data layers, integration tools, and APIs to allow client applications to get at the data. I worked very closely with our data team, the DNC, voting location experts, and our front-end team. Despite the incredible challenges that came with the constantly evolving, incomplete/disorganized data and different laws/rules in each state, we built a comprehensive, nation-wide election day lookup tool. In addition to that, we built the first ever nation-wide "early vote" lookup tools. Not only was this data available via online lookup tools, it also integrated with DNC applications and allowed our phone canvassing applications to automatically display relevant voting locations for the canvassed voter.

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.