Our Values

Write code for humans first; computers second

Great code is easy to read and comprehensible

“Any idiot can write code a computer can understand. Good programmers write code that humans can understand.”

Always be testing

Great tests are like an instruction manual: they document how your code is meant to be used. Tests also offer verification: if it’s not tested, how do we know it works?

Don’t prematurely optimise

If it’s not a bottleneck, don’t spend time optimising like it is.

Don’t prematurely refactor

“Duplication is far cheaper than the wrong abstraction.”

Prefer simple designs

Build small, self-contained units that are responsible for one thing only. Strive for boringness. Avoid incomprehensible “magic”.

We’re more comfortable using established technologies

Keep an eye on trends, but prefer established technologies. Acknowledge the hot new thing, but wait for it to mature.


Make everyone around you better

Become a catalyst

By helping everyone around you improve, you become exponentially better than simply the sum of your working hours.

Communicate Clearly

Communicate pragmatically & clearly. Don’t assume people know what you know. We love bullet points.

We are all peers

Whether you’ve been here for a decade or a day, your input is sought. When everyone participates in the process, everyone learns - (for example, in peer review) from the author, to the reviewer, to the bystander silently reading a comment thread.


Protect our users, protect our product

Protect our users’ data

Be proactive in securing your own work. Be diligent in securing others’ work.

Protect our users’ privacy

Don’t expose any personal data we don’t need to, no matter how insignificant it may seem.

Protect our users’ time

Users can choose to up and leave to a competitor within seconds. Don’t give them time to consider this by shipping frustratingly slow software.

Resist change that would compromise the above

You are the final layer between ideas and the user. Don’t hesitate to resist change requests: argue passionately, but respectfully. Explain yourself, cite precedent, offer alternatives, but above all respect the original motivation.


Have fun

Optimise for programmer happiness

Our primary tool is Ruby. We identify with the language because it is designed around human needs, not computer needs. It is explicitly optimised for programmer happiness and we should strive to continue that trend in our own work.

Homogeneous teams are boring

Let your personality show in how you interact with others, and let it show in your work.

Art is welcome

Programming is a science, but our work needn’t always be antiseptic. A little artistry can be refreshing, sometimes. But remember, ”real artists ship”.

Workaholics aren’t heroes

They don’t save the day, they just use it up. People rarely solve problems by brute-forcing them with sheer hours. Workaholics aren’t heroes.