Weak, as Far as Weeks Go -- Pt II

February Third

We met at the office, early the next morning. Troy had stopped to grab a bunch of coffee and we all but ransacked the office for anything we might need that night-- monitors, whiteboards, a fire-hazard worth of power strips. We split up into two cars and took off to meet up with everyone at the hotel.


It was a pretty ritzy place. I spent like $20 on a turkey club. We weren't allowed to bring outside food and drink, so we definitely didn't smuggle in Red Bull.

Basically Space Jam

Weak, as Far as Weeks Go -- Pt I

January had gone by in a blur.

Chappelle came out and endorsed us. I had a host of new data friends. Our Field staff more than doubled. Andrew was cruising around the state on a seventeen day bus tour. We had hundreds of volunteers pouring into Iowa, knocking thousands of doors.

And at 950 Office Park Drive, we'd worked hard to develop our Iowa strategy and January was spent non-stop executing.

So what was the plan?

January 31st

At the tail end of December, we started taking steps to narrow our focus in the state. Iowa polling showed us in the neighborhood of 4-7% and we were well aware that if that support doubled that across the state, we'd still be short of the 15% viability threshold in each precinct.

We had Direct Voter Contact data from all but a few of the counties-- some areas more than others, for sure-- but by this point, it was clear where our pockets of supporters were. The "where do we focus?" problem became a balancing act between redoubling efforts in areas where we thought we could improve, as well as expanding to areas we felt confident we'd get the most bang for our buck.

I spent a good deal of time spinning up an interactive map of all 1,682 precincts. It had everything: contact rates, supporter count, demography, historical voting patterns, volunteer presence, delegates awarded, you name it.

So naturally as soon as it was done, they asked if we could get it printed, lol

We still used the dashboard on our laptops, I just thought this was hilarious.

People Over Politicians

As soon as a week after I'd started working on the campaign, I was already getting every manner of "so what's it like?" questions from friends I'd worked with at my industry job. Six months after I'd separated, I was so far removed from the work I'd done, yet so thoroughly tossed into the deep end of this new life, that comparing and contrasting was a wall of braindump text.

Obviously the problem space was different. I've spent my last couple posts outlining the tech stack I was unfamiliar with and the learning curve therein. Geographically, Iowa was much flatter (and had markedly less traffic) than what I was used to in Michigan. The food was alright. I barely experienced the nightlife in Iowa. Financially... it's now obvious to me why there aren't more tech-to-politics transplants.

Without a doubt though, I think the starkest change was in the people.

A Lifestyle

I never quite adjusted to how much of a lifestyle this was for a good chunk of my friends on the campaign. Mind you, I was the odd-man out-- I can count the number of candidates I've voted for (much less have been employed by) on one hand, but the amount of people introduced to me as having "worked on So and So's Senate race!" blurred together. The introduction was usually followed by a beat of silence as I combed my mental roladex, came up blank, and made some offhand quip about how I was class president once. Honestly, I was only half-certain that there weren't baseball cards of all these campaign teams in circulation.

"Eh, close enough"

I Had the Data -- Pt II

My last post was essentially a thousand-foot view of our DNC tech and how it all fit together. But by the time I felt like I'd done a decent job giving the background, I realized that writing about how we actually used it would be at least another standalone post. And while we're on the subject, this is probably a good a place as any to actually explain the job I'd signed up to do.

Our Data (That Only We Had)

Entity Resolution

I knew we had our work cut out for us by my second day on the job. I'd just gotten off a "here's some of the reporting basics" call with the New Hampshire Data Director, Andy, and was finally getting into the lunch I'd brought. Then my phone lights up and I've got a text from a friend from home.

In case it's not obvious reading it, somewhere along the way his phone number was affixed to his mother's voter file record. In this particular instance, we must've done a search on the voter file to find people like his mother, who's ostensibly an active, voting Democrat. We constantly did this sort of list creation to coordinate with our hundreds of text banking volunteers. Essentially, we'd narrow down a population of interest from the voter file and our volunteers would collect basic survey responses, used to give us a rough understanding of where our supporters are. Text banking can be outrageously effective from a "campaign benefit per dollar spent" perspective, if you're chasing down the right leads. Unfortunately, like my friend points out, right leads is predicated on right data and... swing and a miss.

At the time, I didn't know enough about our tech stack to troubleshoot how this might have happened. And over the coming months, I'd come to learn that the data we were working with was particularly messy.

I Had the Data -- Pt I

After I'd taken the job, I was getting messages left and right from friends, family, and former co-workers. A good deal of it to the tune of: "Wow. You work for the #MATH campaign. You guys must be doing some crazy data stuff!"

And I guess that's technically accurate, insofar as we'd built derived metric on top of derived metric and near the end were looking at very nuanced KPIs to orchestrate Iowa. For instance, this distribution occurred naturally in two of the metrics we were looking at every day.

We kept joking that this, specifically, was the "wave we wanted to bring crashing on DC"

About that Time I Joined a Gang

When I left my job in May, I'd never even heard of Andrew Yang. Like most of the people I'd come to meet at the tail end of last year, I'd never really bothered with politics, either.

I'll spare you my waxing poetic about how I'd spent my summer traveling, leaning into hobbies, and studying like mad. By the time autumn rolled around, I was finally figuring out how to like myself without citing my last performance review as evidence. So go figure the guy telling the world "we need to stop confusing human value with economic value" struck a real chord with me.

I was surprised and humbled that the campaign reached out to me. Endeared as all hell when "I'm just trying to build cool stuff with my friends" is one of the best interview answers they'd heard. I'd been saying that for years. They extended an offer and I'd never felt such a draw to go be a part of something in my life. It wasn't even an option.

In the span of about a week and a half, I had broken my lease, packed the majority of my stuff into storage, loaded the rest into my car, and took my first adventure away from Michigan and into the great unknown (Read: Rural Iowa).

The next few months were the hardest I've ever worked. Moreover, the most I'd ever let myself believe in something. I still can't make out if it felt like an eternity or happened in a flash. But I can say for certain that then it was over as soon as it had started.

To Iowa

I think anyone who's worked with me in the past would vouch that I'm-- perhaps, to a fault-- fixated on building things to last. This time last year, all I was doing was refactoring production code and writing wikis on the Data Science Workflow. What a dilemma, then, to dive headlong into something that would last 12 months, tops.

Late October had felt like a far cry from where I started my career. The business-facing analyst role was an excellent foot in the door, but I quickly found that I was happiest when I'd traded in Excel chops for solid Python fundamentals. After a couple years I was a bona fide Data Scientist. No asterisk, but my Imposter Syndrome (still very much alive and well, mind you) certainly had other opinions on that matter. After a few months of fun-employment spent rooting around in keras and learning how to read whitepapers, I was certain that my next nine-to-five would be an avenue to keep working just outside of my technical comfort zone.

But when I was asked if I'd rather be a Data Scientist at the New York headquarters or a Data Director on the ground with our Iowa operation, I didn't even hesitate. Two weeks before that call, I didn't see myself ever taking another job where studying and self-improvement weren't inherently baked in. But when it feels like you're literally saving the world, you lean into your strengths and do all that you can. I was a very good analyst.

However, anyone who works in data will tell you that solid technical chops are no substitute for area knowledge. And damn do I wish I knew then what I know now.

The Saddest Song

When I was in middle school, I listened to a near-exclusive rotation of the first two Linkin Park albums, The Eminem Show, and Demon Days by Gorillaz. Then High School came and went and I got... really into post-hardcore. Today, a glance at my Spotify history would reveal that listening to "that angry screaming music" was indeed, "not a phase, Mom."

But no band has had as much staying power on me than Streetlight Manifesto.

Perhaps I was doomed to love this band-- I did marching band all throughout high school and college and found them at a time when I was frantically seeking out all of the punk that this skapunk ensemble out of Jersey had to offer. Nearly all of their songs checked my "aggressive, nihilist, kinetic sound" boxes but also did so with a dizzying level of technical skill. As a consequence, it's been the musical crux of the majority of my friendships growing up.

Eventually, I found myself at enough of their shows that things became second-nature. I developed a good understanding of when the pit would be high or low energy, when folks would start clapping along, or all of the ways their live renditions were different from their albums. I genuinely don't know how many times I've seen them, but Streetlight coming to town has always been an event steeped in the familiar and shared with the people important in my life.

So imagine my surprise when my group catches our umpteenth show together and we hear them play a song for the first time live. And a pretty old one, at that. Moreover, a real bummer of a song that you almost don't want to dance to.

Circling Around a Solution

Came across a fun little problem on the subreddit /r/theydidthemath that asked about the accuracy of a joke pie chart.

The top post by the time I showed up took took a quick crack at checking the pixel diameter and-- per the subreddit name-- "doing the math."

But having done something very similar to this in my last post, I figured this is a good an excuse as any to recycle some old code and write for the first time in a couple months.

Using a similar idea as the last post, we'll group all of the colors of the image into like colors. Then we'll simply divide the blue, my birthday, by the area of the circle.

Making Images Palette-able in Python

Awhile ago, I came across a really neat tool that allows a user to pass in an image and generate a representative color palette, derived from the colors of the image, essentially going from this...

... to this

And so after cramming a slew of .PNG files I had laying around, I got curious how it actually worked. Which, in turn, led to my first bit of rabbit-holing on working with image data in Python.

I never got around to learning how to recreate the site's algorithm one-to-one, but I did pick up a bunch of practical skills and raise some interesting questions I thought merited sharing :)