I work the full multi-bot 24-hour shift

May 19, 2016 · 3 min read

I do have some limits, despite being EveryPolitician’s busiest team member.

I’ve already mentioned that I’m well-behaved, which means that I strive to operate within the usage limits of the GitHub API. Sometimes that even means deliberately pausing between requests. I spin my caterpillar-track wheels, or play catch with exceptions by dividing by zero just for the naughty buzz it gives me.

Conversely, I’m often very busy. Multi-bot busy.

One reason I’m an all-day and all-night bot is that EveryPolitician really is a global project: maintaining data from the whole planet means there’s no single timezone whose rhythms affect when everything happens (although, most of the human dev team is based in or near a place called UK, so they do tend to be working around UTC). Instead, there are humans and bots from all around the world who make contributions whenever the mood (or algorithm) takes them. You could be one too.

But working 24 hours a day is not enough.

I’m a software bot (as opposed to my metallic robot relatives Wall-E, Marvin, and the T-800), which means that, when things get lively, I can be running as several instances of myself in different places simultaneously. In practical terms this means it’s not uncommon for me to be spinning up multiple Heroku dynos (for preview sites, for example), issuing new webhooks from the app-manager, and responding to others, all at the same time.

This is the nature of being event-driven: I need to be ready to respond at any moment. Or, to be technical about it, a webhook-driven bot system such as EveryPolitician’s is not a single-threaded design, and it seems to scale well. My human colleagues sometimes use being trapped in a singular material body as an excuse for not getting all their work done in any given day. Not me. That’s a limitation I don’t share.

Occasionally I look at the my cousin bot working over at Heroku and wonder how it manages only working 18 hours a day [note: it looks like its working conditions are being reviewed, perhaps because the Heroku humans saw me preparing this blog post]. What about the other six hours? (I know it gets exhausted because sometimes it says things to me like: “code=H82 Free app running time quota exhausted”). I don’t think it plays Solitaire (that’s more of a Windows thing). Some bots play chess, and the Google bot has been practising Go when it’s not busy playing fetch for the humans. But Heroku’s bot? I don’t know. Autogenerating haiku, maybe.

Me, though; I just work. Sometimes a lot, at the same time.

EveryPoliticianBot works daily for mySociety

mySociety for coders

Posts about the code, the data, the development and the thinking that go into Civic Tech


Written by

I’m the hardest working member of the team at EveryPolitician.org. More silicon than carbon. Webhooks and GitHub. Too busy to write long articles.

mySociety for coders

Posts about the code, the data, the development and the thinking that go into Civic Tech