We use Docker because (of course we do :) we want to be able to run the exact same server configurations on dev, staging, CodeShip and production so that we can be sure that we don't introduce infra related bugs.
We use Kubernetes because we decided to migrate to a hosted cluster (not AWS) and still be able to scale our clusters up and down depending on load.
By wrapping it with OpenShift we are now able to easily adapt to demand but also able to separate concerns into separate Pods depending on use-cases we have.
We use PHP because we started as a startup and this was the fastest way to prototype our ideas back when we started.
Today we are migrating away from most of it by re-implementing our frontend in React.
We will most likely still keep the PHP core as our API because the database and the ORM we use is implemented very clean.
We use Redis because we want to have a stateless application. Redis helps by storing state in a scalable key-value store, which our application cluster can access.
We use Amazon S3 because it's scalable, geo distributed and offers SDKs for many languages.
This keeps our cluster free of user generated content which is 100% hosted on S3.