~
Pt 2. Rules of Engagement: How we build at Raiston
This post outlines the fundamental principles of Raiston's engineering culture. Adhering to this framework may occasionally lead to temporary delays in product development, challenging work, and extended timelines. However, this short-term impact is insignificant in the grand scheme of things. This framework aligns with our long-term goals, and maintaining high standards in these areas is paramount.
This is the distinction between principles and preferences: principles are unwavering commitments, regardless of the cost, while everything else is merely a preference.
Minimum Expactations
The following practices represent the foundational standards that all teams must uphold:
- Security is Job Zero:
- Prioritize securing our systems above all else.
- Prioritize On-Call:
- Implement comprehensive and practical alerting and alarming mechanisms.
- The baseline for alerts and alarms should ideally be zero.
- Work towards eliminating the root causes of pages, second only to security concerns.
- Infrastructure as Code:
- Define all production infrastructure (including build and deployment pipelines, operational dashboards) as code.
- Automate Updates and Deployments: - Automate dependency updates and deployments to production across all active repositories.
- Updates can be individual or batched, real-time or delayed, but the process must be automated.
- Investigate Service Metrics:
- Regularly review service metrics, build times, and infrastructure costs (per-request and total).
- The aim is to identify and rectify configuration or implementation flaws that lead to unnecessary waste, rather than simply minimizing metrics through excessive investment.
- Pull Pain Forward:
- When a service's future is secure (e.g., at or near General Availability), proactively address technical issues that worsen over time, such as backwards-incompatible changes or major architectural flaws.