Senior Software Engineer · 2008–2009 · San Francisco
The tools I built to sell ads became the tools the company used to decide things.
AOL bought Bebo in 2008 and ran it as its social network, with a team that built the tooling its sales, content and marketing teams ran on.
This was 2008–2009, the other side of the $850 million Bebo acquisition. I came over with the company and kept working on the same product, on the team I had moved onto before the deal closed, already promoted to senior engineer on the Bebo side. The through-line of those eighteen months was isolating failure: sponsored content moved out of hand-edited HTML, and tracking moved into a service that could not take the site down.
- JavaScript
- Java
- FreeMarker
- JSP
Key projects
Selected work from the AOL years.
Ad routing rules with an audit trail
Ad operationsBebo ran about 20 ad tags from about 10 providers. I built the admin for routing them: page-group routing, per-provider placement lists, audit logging on every change, and a start/stop kill switch. I also put a counter on each tag, so a delivery discrepancy with a provider could be settled with our own numbers rather than theirs.
A counter service about 160 Bebo staff could open
MeasurementThe counter service I co-architected at Bebo replaced the legacy sales tracking, and I built its admin and reporting UI, using the Google Visualization API for the charts. Any user action could fire a counter by tracking id, logging age, gender and geo; logs bucketed by hour, day and month, and counters compared against each other to give click-through over time. It ran as an independent service so it could not take Bebo down. About 160 Bebo staff had access to its reports, and the company's own October 2008 data dashboard cited the tool by name as the source for its top-photos numbers. Its JMS queues, built by the backend engineers, aggregated the impressions and clicks.
Ad placements anyone could launch
Ad systemsSponsored content had been hard-coded into pages as an open HTML field, so any mistake by production could take down a page. We replaced it with placements made of slots, filled from an inventory of items, each rendered from a dynamic template that could dereference a member's own name or friend count, and each counting its own impressions and clicks. I wrote the JavaScript, HTML and CSS for these placements and rolled them out to about 50 locations, including most of the front page at about 9 million views a day and the front-page takeover slot. I trained the production team to build and maintain the takeovers almost immediately.
The specification production could build against
HandoverFor the Games launch I built the JavaScript as reusable libraries and delivered four new placements ahead of schedule. The specifications came with it: how a slot behaves, its dimensions and states, what production could and could not change.
Polishing the AIM browser client
MessagingJeshua Borges and I had built instant messaging together before Bebo: a white-label messenger, a multi-protocol desktop client, an XMPP gateway. There was no chat work in the Bebo years; the thread picks up again here, where we used that experience to polish AIM's in-browser JavaScript client. I started out building an imitation of a messenger at a tiny startup and ended up on the one that had defined the category.
Celebrity photo albums and the cost of keeping them fresh
ExperimentDuring the acquisition I was asked to evaluate editorializing AOL celebrity photo content on the photo page, viewed about 60 million times a day. I seeded a sponsored profile with albums from the AOL news database, promoted them from a featured-albums area, and trained an AOL editorial team to refresh it twice a week. It ran six weeks in September 2008. Click-through started at 0.08–0.1% and decayed to 0.02% when it was not maintained; each click was worth about eight downstream page views. At a $0.50 eCPM that modelled to $48–$240 a day, against roughly a day and a half of editorial time each week. I suggested looking into a feed if the team continued, given the modest revenue and editorial time required.
It was also where a much longer thread finally landed: the instant-messaging work I had started earlier ended up inside AIM.
Related context
- AOL buys Bebo for $850 million
TechCrunch • March 2008: the announcement. The deal closed that May, which is when the AOL years start. The URL's 750 is TechCrunch's typo; the article says $850 million.
- AOL relaunches promising but ill-fated Bebo social network
Ars Technica • December 2008: product context for the relaunch period.
- AOL public history
Reference context for AOL's media, advertising, and messaging era