We can have results, or excuses. Not both. These are our manifestos.
We plan, execute and evaluate based on clearly defined targets and goals. We plan and evaluate our priorities based on these goals, and are always looking for new opportunities to reach them. Speed is not a substitute for direction.
We value those who talk about what they did, not what they are going to do. We recognise that execution is the mother of progress. We make decisions and accept that mistakes happen. We do not make excuses.
We deliver on expectations. We act on fact and always face reality, no matter how harsh it might be. We do not postpone the difficult tasks, and we always flag if expectations won’t be met.
We are ambitious
and purpose driven
We love people who aspire for greatness, are ambitious, a bit crazy and want to make a difference. Nothing is impossible and great things come from thinking big, very big. We also understand that even the biggest things have small beginnings.
Measure twice, cut once
Take time to do your research before making any technical decision. Picking and leveraging the right technologies is of the utmost importance. Never pick a technology just because it is what you already know. The results should be less code that you wrote alone and more code that is maintained by a community. Remember that your learning curve is temporary, but thousands of lines of hand-written code performing a commodified service could sit in your repo for years.
Stand on the shoulders of the latest open-source projects
Don't shun a project because it is new. If everybody waits for a project to be popular, it will never get popular. You should be able to judge a project by more than just how many people are using it. Remember that all projects are maintained by people, so treat them as such. Show respect, get to know them, bet on them, contribute with every opportunity you get, and read their code. Always read their code.
Work together with everyone else in the company to reduce engineering complexity: those in charge of product, those in charge of customers, those in charge of data. Clearly communicate the dangers and long-term costs of complexity and engineering overhead to everyone on the team. Align products with the technologies available to you: don't try and build a bicycle if nobody has invented a wheel, but as soon as someone launches a good wheel, build the shit out of that bike.
Write clean code
For us, clean code is something that is simple, readable, does one thing and comes with a fully automated test suite. When the code is clean and does not violate principles like “Single Responsibility Principle” (SRP) and “Open/Closed Principle” (OCP), we can make changes to code without fear of breaking things and we are able to create bigger and more robust systems with incremental design changes.