We keep it simple (KISS Principal). A lot of stuff here is a little counter-intuitive as well.
- Our stack is Docker, Django, Traefik on a SINGLE Linux VM.
- We deploy via CI/CD pipelines (Bitbucket)
- We build in a monolith rather than microservices
- We use a database as a queue
- Scale vertically first (this goes a loooooong way)
- No CDNs
- No fancy caches to debug
- Data-locality is king (local memory and fast local disk)
- No clustering (eg - No Kubernetes)
- No chasing more 9’s than our provider offers with standard SLA. The 99.9% is sufficient for us and our customers. Worst case scenario is we can redeploy into new data center with most recent snapshots in about 1 hour.
We are conservative when it comes to choosing technologies.
We are brutally honest with ourselves where we are in regards to scale.
We are ruthless when it comes to optimizing for developer time.
We always play to our core team strengths.
We put developer experience over user experience (DX > UX). That means we don’t optimize for speed (in the beginning).