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.
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.
1 previous version
v1 March 2020
I built the first version of this RESTful API with intentions of it powering my blog, but I really only used it to power photos.broox.com. It was built using in Node, ExpressJS and Sequelize.
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.
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.
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.
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.
Broox Photos was a light, responsive, single page web application that I built during the COVID-19 pandemic to browse the photos hosted at derek.broox.com. The front-end was built with Vue.js and it hits a thin python/flask-based API proxy that leverages the Broox API.
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.
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.
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 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 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.
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 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.