Responsibilities

Our development team is expanding more than ever before, therefore, DevOps Partner main responsibility is to enable the whole team to experience the full DevOps cycle (not just deploy something and operate for the team).

Giving the engineers responsibility and accountability to plan, code, test, deploy, and operate their product fast and reliable is our ultimate goal.

Our team split into multiple squads, each squad responsible for some components of the platform but we share the same responsibilities and help each other fulfil bellow objectives:

Improve our team performance

We have a mixed architecture with a big monolith component together with many micro-service and micro-frontend. We have thousands of lines of bash script to spin up local minikube clusters for our developers (both backend or client side developers) to code and test their product on local, then use the same bash script to deploy to staging, uat, production on GKE using Github Action.

A lot of rooms for improvement here, such as:

  • Replace our bash script with Google Skaffold to bring better experience during local development.
  • Optimise the build time for:
    • Golang, Node backend services
    • React web apps (micro front-end)
    • Flutter mobile apps
  • Analysing Pull Request lifecycle
  • Automatic Quarantine Flaky Test
  • Canary Deployment with Argo Rollout
  • And so much more…

We have A LOT OF E2E test cases. To organise the tests, you need to understand the business domain, run them in a specific context and narrow down the scope to pinpoint exactly what's wrong.

Oh, did I mention that we have terrible memory leaks during unit-test, so we need to split the unit test into dozens of parallel runs as a work around?

Improve our platform performance

Because of our startup architecture :) We have several GKE clusters with a few hundred pods on each cluster, half of them are open source components, each of them require different deployment and scaling strategies, we need your help on this, the number of components is increasing dramatically. Along the way you will run out of mem because of our Java based components, so be ready for that.

Of Course we have Prometheus, Grafana, Alert Managers, you of course need to operate them, make them reliable and scalable. You will need to implement and improve the current tool set to automatically add a telemetry instrument to our internal service or write a custom exporter for the open sources that still don’t have one.

Btw, do you know any stress test framework that can run with gRPC? We want to compare how good our custom ad-hoc stress test tool is with that.

Requirements

  • Experienced in day to day development tasks , 1-2 years working as either back-end, front-end or mobile engineer
  • Experienced with container ecosystem (personal project is OK)
  • Experience with CI/CD tool (personal project is OK)