Category Archives: Uncategorized

The questions you should ask when starting a project

Edit: Apparently I have just mostly reinvented the Helmeier Catechism. Oh well, this one is mine.

In a private correspondence recently I presented what I claimed were my “Standard questions”. I’m not actually sure it’s true that they are – I’ve certainly taken this approach before, and asked similar questions, but I’m not sure I’ve ever broken down the thought process into quite such an explicit list of questions. They’re good questions, and I think I’m going to treat them like a check list in future.

  1. What does success look like?
  2. Are there similar things already out there?
  3. If yes, why aren’t they good enough?
  4. If no, why not?

(This isn’t actually quite the list I presented – I forgot the “no” branch when presenting it before)

You don’t have to cancel the project if an answer you don’t like to one of these question turns up (although if you discover that there are loads of existing things out there which do the same thing and are plenty good enough, or that the best success could possibly look like is that you’ve spent a ton of time producing something no-one wants you should probably think about it). The purpose of these questions is not to stop you doing the project, it’s to force you to think about its aims and context thoroughly enough that if you go ahead with it then you do the project well.

This entry was posted in Uncategorized on by .

So what happens now?

For those just tuning in, I recently quit my job at Google.

The question I keep being asked is “So what are you going to do now?”. This is an excellent question. I wish I knew the answer!

I do have plans, but a lot of them are centered around figuring out what plans to make. In the short term I’m going to take a few months off paid work (definitely until end of February, probably until end of March), during which time I will be working on a variety of personal projects. I will also be thinking about what I want to do next job-wise and actively looking. This will involve a certain amount of soul searching about my priorities and life goals.

The projects I have planned for this period are as follows in order of roughly decreasing priority:

Self-study

There are a couple of areas of mathematics I’ve been really frustrated by my lack of knowledge in. I’d been thinking about going back to university to do an additional masters to try to brush up on these but then realised that actually I could achieve this by just sitting down and studying some books. So I’m going to do that.

The main thing I want to get good at is statistics, with a mix of linear algebra and optimisation following at a distant but respectable second. I will be doing my best to actually get my understanding of these to a good level. My textbooks of choice will be Theory of Statistics (with Probability: A graduate course pulled out for the bits of probability and measure theory I need to brush up on) for the former and Deterministic Operations Research for the latter. I’ll be reading these and working through the exercises. I can’t really decide whether the goal of getting these to a good level is too easy or impossible for the time frame in question, so these goals may be adjusted upwards or downwards.

Play with some ideas

One of the most frustrating parts of working at Google was how it curtailed my creative programming in my own time. I’m going to enjoy that not being the case, and will probably spend a lot of time chasing random ideas just because I can.

Blogging

I upped my weekly rate on the beeminder goal for this blog recently, if you were wondering why it’s a bit chattier than usual. I’m upping it again. I’ve written 37300 words since I’ve started this goal, and I have now set the goal to reach the 100,000 mark by 1st of April. This requires about 4,500 words per week. So, hopefully you enjoy this thing, because there’s going to be a lot of it.

(Note: If I find this is resulting in blog posts that are the moral equivalent of just writing “I am a fish” four hundred times, I reserve the right to reduce this goal, but I think it should be achievable)

Work on hypothesis

Despite my best efforts at neglect, hypothesis appears to have some users. I plan to do some work on it to clear up a few minor issues, and I’d also like to see if I can get the ideas from testmachine merged back into it. Other work may also occur – e.g. I’d like to see if I can figure out some ways to do smarter data generation.

Get pebblebox launched

Pebblebox is a thing we did at Devfort earlier this year. It’s a system for running online elections with high quality modern voting systems. We’ve… stalled a bit on getting it launched, and I’d like to fix that.

Learn Julia

I’ve been saying for a while that I should learn Julia. I’ve got some time off, so I should actually do that. I will probably try to fit this in with my goal of learning more linear programming stuff as there’s what seems like a good LP package for it.

The rest

Of course, a lot of the question “What are you going to do next?” is not really about what I’m going to be doing in the next couple months. Really what people are asking is:

  1. Who will your new corporate lords and masters, the priests upon whose altar you sacrifice your life to the great god Mammon, be?
  2. Upon what blasted corner of this desolate hell hole of a world will you make your abode?

(AKA “who will you work for and where will you live?”)

What I’d like to answer is “Screw you guys! I’m going to go build my own socialist utopia! With carefully regulated evidence based laws around gambling and sex work!”, but I don’t yet have a viable implementation strategy for that so it’s more  of a long term goal.

In the medium term, the short answer is I don’t know. The long answer is that I’ve not had a good track record of choosing companies and I’d like to figure out why. There are some safe options I might end up picking, but I’d really like to have a think about things and do some proper examination of what to do rather than just rush into the next job.

What that next job is going to be will determine a lot about where I’m going to live. I will be looking for jobs in both Zurich and London, and I’ll also be considering remote work options. If I find a job in Zurich, I’ll stay in Zurich, if I find a job in London I’ll move back to London. Remote work will probably have me staying in Zurich for most of 2015 at least and then we’ll see. Chances are pretty good that this will involve me moving back to London, but by no means certain.

I’m also not ruling the out the possibility that I’ll say fuck it and take all of 2015 off and go back packing or some similar early mid life crisis nonsense. It’s unlikely but it could happen.

This entry was posted in Uncategorized on by .

A small tactical voting example

Another “small election exhibiting some obscure feature” post. I hope you’re not bored of these yet (but if you are I recommend you just don’t read them).

Consider the following election:

  • 1, 2, 3, 4
  • 2, 1, 4, 3
  • 3, 4, 1, 2

The Kemeny-Young winner for this election is 1, as that is the unique Condorcet winner.

But if the second voter wants to vote tactically and changes their vote from 2, 1, 4, 3 to 2, 3, 4, 1 so the votes are now as follows:

  • 1, 2, 3, 4
  • 2, 3, 4, 1
  • 3, 4, 1, 2

There is no longer a Condorcet winner. The majority preferences go 1 > 2 > 3 > 4 > 1 so there is a cycle.

However there is still an unambiguous Kemeny-Young winner (you’ll have to trust me on this one or work it out yourself. It’s a little hard to show the working). The new Kemeny-Young winner is 2, which our tactical voter strictly prefers to 1, so they should make that change.

The Gibbard-Sattherthwaite theorem guarantees that an election like this must exist, but I was pleasantly surprised at how simple the example was.

This entry was posted in Uncategorized on by .

Should you join Google?

I’ve had a few people who were thinking of applying to Google ask me if the fact that I’m leaving is a sign that they shouldn’t.

There’s a short answer is a long answer.

The short answer is: No, you should absolutely still apply.

The long answer is that you should absolutely still apply, but I would offer you the following advice:

  • Understand that the exciting thing you’re really keen to find out how they manage to do is probably going to be pretty disappointing when you find out and if that’s your primary reason for joining, maybe don’t.
  • Before you accept an offer, make sure you know the team you’ll be joining and have realistic expectations as to what working on it is likely to be like.
  • Understand the trade-offs you’re making by working for Google and make sure you are prepared to accept them.

Honestly I think this is good advice wherever you’re applying, but it’s both particularly important to do at Google and somehow feels particularly hard to do when you’re applying there.

If you have specific questions about joining Google and why I left feel free to email me, but bear in mind I am of course under a confidentiality agreement and once I no longer work there there won’t be anyone I can ask whether I can tell you something, so I’ll have to be a bit careful about what I say to you. You may well be better off finding someone who still works there and asking them to have a frank discussion with you.

This entry was posted in Uncategorized on by .

Some more small elections

A follow on from the last post with some more small elections.

Here are some small examples of elections demonstrating some preferential voting systems (two popular and one a little obscure) are not Condorcet. I can easily add more if you want me to add your favourite preferential voting system to this, but there seem to be a sparsity of interesting non Condorcet preferential voting systems.

Each of these are minimal amongst examples I’ve been able to find. Where minimal is taken under the lexicographic order of number of candidates then number of votes. (i.e. if one election has fewer candidates it’s regarded as smaller. If they have the same number of candidates the one with fewer voters is smaller). I’ve no idea if they’re minimal in absolute terms, but I’ve made a reasonable attempt to find smaller ones and I think it likely that they are. In particular they’re all locally minimal in the sense that they will no longer demonstrate the desired behaviour if you drop a candidate or drop fewer than two votes from them, but it’s possible some smaller subset does demonstrate the desired behaviour.

Borda count

  • 2, 3, 1
  • 2, 3, 1
  • 2, 3, 1
  • 3, 1, 2
  • 3, 1, 2

The Borda winner is 3 but the Condorcet winner is 2.

IRV and Contingent vote

  • 1, 2, 3
  • 1, 2, 3
  • 2, 1, 3
  • 3, 2, 1
  • 3, 2, 1

The IRV winner is 1 but the Condorcet winner is 2. The contingent vote winner for this is also 1 (unsurprisingly because the two will always agree when there are only three candidates).

Coombs

Coombs is basically the reverse of IRV: At each step you remove the candidate who the most voters have ranked last of the remaining candidates and rerun until you only have one candidate left.

  • 1, 3, 2
  • 2, 1, 3
  • 2, 1, 3
  • 2, 3, 1
  • 2, 3, 1
  • 3, 1, 2
  • 3, 1, 2

The Coombs winner is 3 but the Condorcet winner is 2.

Borda-majority judgment

This is Majority Judgement applied to the Borda scores. i.e. a preferential ranking is implicitly assigning a grade of n to its highest candidate, n – 1 to its second highest, etc. This isn’t my invention – it’s from the standard text on the subject – but I’m not aware of this being a system that anyone actually uses.

  • 1, 2, 3
  • 1, 2, 3
  • 2, 1, 3
  • 2, 1, 3
  • 2, 3, 1
  • 3, 1, 2
  • 3, 1, 2

The Borda-majority judgment winner is 2 but the Condorcet winner is 1.

This entry was posted in Uncategorized on by .