1. Continuous Integration and Continuous Deployment
- Knowledge of CI/CD pipelines and best practices.
- Familiarity with tools like Jenkins, GitLab CI/CD, Travis CI or similar platforms.
- Ability to design, implement, and optimize pipelines for automated testing and deployment.
2. Source Control Management
- Strong knowledge of Git and experience working with Git-based platforms (e.g., GitHub, GitLab).
- Proficiency in version control best practices, branching, and merging strategies.
3. Scripting and Programming Skills
- Proficiency in scripting languages like Bash or Python.
- Basic knowledge of programming languages commonly used in software development, including C and C++.
- Basic knowledge of Cmake desired.
4. Containerization and Orchestration
- Knowledge of Docker or Podman for creating and managing containers.
- Familiarity with container orchestration tools like Kubernetes and OpenShift.
5. Monitoring and Logging
- Experience with monitoring tools like Prometheus, Grafana, or ELK Stack (Elasticsearch, Logstash, Kibana).
- Ability to set up logging for applications and analyze logs for troubleshooting.
6. Testing and Quality Assurance
- Knowledge of automated testing frameworks for unit, integration, and end-to-end testing.
- Experience in setting up test suites within CI/CD pipelines to ensure software quality.