Our engineering principles
At Grabyo we have a set of seven engineering principles. These are not intended to be a strict set of rules that every team must follow to the letter, there is value in diversity, and we should embrace that. They are however a set of consistent guidelines across all of our teams and a starting point for any engineering decision.
Security is the function of everyone in the organisation, and to that end, we ensure that everyone is well prepared and involved in keeping our systems secure. Our systems are protected by design, and we believe in “shifting security left”. Our software is designed and maintained with the assumption that it and the data it holds will be attacked and possibly compromised.
Automate to Bring Value
If we consistently repeat a task that brings us value, and if we believe automation will save time and improve consistency, then automate it!
Keep it Simple
We break complex problems into small reusable services. We build these services in the Public Cloud and rely as much as possible on the managed services and cloud-native technologies Public Cloud has to offer. We ensure that our code is understandable and easy to change.
Build it, Run it, Support it
If you build a feature or service, you own it. When you own it, you are responsible for running and supporting that feature or service. This involves the entire development cycle, including writing the software, building the infrastructure, deployment pipeline, monitoring & alerting, and supporting it in all environments.
We genuinely believe in teams owning the work that they produce. This ownership ensures that each team is accountable for the services which they own.
Move Quickly & Adapt
We pride ourselves on being an agile team. This is not just about our development process but is ingrained in everything we do, from the product roadmap to developing and deploying functionality.
Our focus is on tangible outcomes, and we ship whenever functionality is complete to deliver customer value week in, week out. This allows us not only to deliver value but to get feedback early and often, which leads to faster iterations and a product that meets & exceeds the needs of our customers.
We succeed when we work together. We leverage the power of our entire organisation by looking for opportunities to let our work accelerate other efforts. We believe that the continual growth of the whole team is more important than the success of any one person, taking the time to help each other grow.
We approach problems from the customer’s perspective and always consider the return on investment for everything we do, whether product features, tech debt, or platform improvements. The customer may be external or internal, but the aim is to prioritise the work which has the most significant impact. We are not afraid of measuring cost vs benefit and making explicit tradeoffs to deliver value quickly.
Once we defined and agreed on the principles, we then shared them with the team, walking through the details and explaining why each one is important. Now the hard work begins. Within engineering, we need to ensure that we adhere to these principles and they are baked into everything we do.