Senior Software Engineer - Core Platform Team | cast.ai
Why CAST AI?
We are on a mission to simplify Kubernetes on the cloud.
There are lots of aspects to our vision such as cost, performance, security, and resiliency to name a few. Our product must be easy to understand and create value seamlessly in an automated way. Less friction - more happy customers.
CAST AI already brings 50% to 75% cloud savings to major CSP k8s clusters like EKS, GKE, AKS, and others. Imagine this on a typical customer cluster with a $100k monthly bill.
This is just the start of our vision. There are so many cool things in the backlog. We need smart, driven, and independently-minded engineers to complete the mission!
What does Core Platform Team do?
The Core Platform team is responsible for providing the foundation of our product. By using the solutions that the Core team builds customers can start their journey with CAST AI. The CAST AI Optimisation engine uses the same solutions to deliver the above-mentioned AAA savings to our customers.
Here are several interesting problems that we have solved so far:
- Creating and joining independent k8s nodes to existing third-party clusters (EKS, GKE, AKS, etc…). There is no documentation on how to accomplish this. We performed lots of reverse engineering and had some great learnings along the way. Exciting!
- Writing our own terraform provider.
- Creating a highly parallelized engine to manage and reconcile numerous customers' clusters.
- Delivering a unified API while abstracting implementation of different cloud providers.
- Managing clusters' access, authentication, and RBAC.
These are just a few examples of capabilities we have delivered. Multiply our efforts by the number of cloud providers we support. Yes, cloud providers are very different! Each sprint brings new challenges to explore and learn. We are lucky to work in this cutting-edge tech space.
How do we do our business?
We hire software engineers, not software developers. This is a really important differentiation, let’s dive in to understand this statement.
A Software Engineer is a person who is responsible for the design of the system’s whole lifecycle from the initial idea to continuous customer value.
For example: once we discover a high-value feature and it comes with the right set of priorities - an engineer picks it up. They then thoroughly go through the technical details of the design and implementation and assess if it’s even doable. In addition to making it work, there are many other aspects of a feature/system component. We consider:
- performance, scaling
- deployment, compatibility
- debug-ability, operations
Within the whole process of making an idea materialize, we collaborate with colleagues and help each other make critical design and implementation decisions. An engineer is not only responsible for end-to-end delivery but is encouraged to cooperate with peers to find the best possible outcome. It is really important to be able to work independently and in a group when needed.
All of the above comes on top of tools we’ve built for ourselves to deliver fast. Every now and then, an engineer puts on their QA hat when writing automated end-to-end tests, a DevOps hat when improving our GitOps-powered continuous CI/CD pipeline (every commit to master is deployed to production automatically), or their operations hat when configuring the observability stack. We even have a rotation of passive on-call duty to quickly fix any issues in the codebase we own.
We do not have DevOps or QA roles in engineering. We automate and build everything ourselves, hence having experience in tooling and looking into systems with a broader view than just software development is a must to be successful here.
Here are some of the tools we use daily:
- GoLang is our language.
- Kubernetes is our core product.
- AWS, GCP, and Azure are the clouds we currently support.
- Postgres and cloud object storage for persistence.
- GCP PubSub for messaging.
- GRPC and REST APIs.
- We use GitLab CI with ArgoCD as our GitOps CD engine.
- Prometheus, Grafana, Loki, and Tempo for observability.
- Deployment charts are written in Helm.
None of these tools is a hard requirement for the right person, but experience with these is an advantage nevertheless.
This is how we work - we build it, we test it, we ship it and we operate it.
What is it for you?
- Team of highly skilled professionals to work with and learn from.
- Impact and visibility. We’re still relatively small, every feature engineers develop is being seen and recognized. Our organization is flat, getting in touch with the CEO or CTO is a common practice here.
- Short feedback loop. We have an obsession with customer satisfaction. The ship features fast and gets instant feedback. Feature projects tend to be completed in 1 to 4 weeks, depending on the scope.
- Flexible working location and hours. We deliver instead of sitting in the office from 8 to 5.
- Monthly salary from 6000 € to 8000 € depending on the level of experience.
- Skin in the game. Every engineering member gets a share of the company.
- Time to focus on work with a minimum overhead of meetings, bureaucracy, etc.
- 10% time to focus on self-improvement or personal projects.
Congrats You made it to the end of the post!
If you feel excited - get on board!