Position: Senior DevOps Engineer
Company: UPPeople
Experience required: 3y
English level: upper

**About the role**
Midokura is seeking an experienced engineer to join the DevOps team, which enables our developers to manage the life cycle of our applications, from source code management and testing, to continuous deployment.

This engineer will help the team to maintain the procedure documentation and the tools needed to create new containerized applications based on Kubernetes, research and suggest platform components, troubleshoot production issues, assist developers and maintain platform services health.

A person taking up this role’s challenges also needs to know how to deal with IoT devices, such as flashing, connecting to the cloud and other devices, dealing with authentication certificates, troubleshooting network issues, and monitoring resource usage.

We are looking for a highly motivated individual who is willing to learn new technologies and innovate, has strong analytical, problem-solving and communication skills, as well as the ability to take on multiple responsibilities at once. Must be able to work in a fast-paced environment with teams distributed internationally.

About the company
A Sony Group subsidiary with offices in Tokyo, Barcelona and Lausanne. We aim to create a platform to easily deploy and run AI workloads on edge devices, taking advantage of AI accelerators and to run complex distributed workloads on a cluster of IoT devices, the fog/MEC, and cloud, all managed by a SaaS platform.

**Responsibilities:**
· Design and maintain the Continuous Integration & Delivery platform;
· Define, deploy and monitor the health our job runners;
· Document best practices for: secure code management, lowering build times, ensuring tests cover all-important business logic and functionality;
· Create the tools necessary to quickly create new application CI/CD workflows;
· Assist developers with troubleshooting CI & delivery issues;
· Ensure and improve the platform security (credentials anonymity, scalability, platform resilience, disaster recovery strategies);
· Design and maintain the way of working for the containerized platforms;
· Document and create tools for app and service definition (Kubernetes Helm charts);
· Standardize and document how to connect and discover external components (databases, authentication, storage);
· Enforce proper management of authentication (TLS certificates, component credentials);
· Provide the tools and documentation to monitor and maintain reports of application and services health;
· Build tools and tests to determine overall system availability and performance bottlenecks, and work with developers to overcome them;
· Continuous research, evaluation, and demoing of new technologies in order to improve products and services;
· Provide instructions for maintaining Midokura IT infrastructure.

**Requirements:**
We believe you will thrive in Midokura if you possess a mix of some of the following skills and experiences:
· Experience in Linux administration and containers (Docker, containerd);
· Experience dealing with CI & CD systems (Github Actions, Travis, Jenkins).
· Designing, developing & maintaining distributed systems:
High Availability
Fault Tolerance
Consistency
Replication
Kubernetes management:
Cluster & Service management
DNS and service discovery
Helm chart creation
· Troubleshooting, monitoring and log inspection
· Monitoring and managing production environment health status, lowering outages and data loss.
· Database administration, backup and recovery.
· Familiarity with one of the major public cloud providers (Azure, AWS, GCP)
· Networking (knowledge of major protocols, debugging network issues, configuring appliances…)
· Scripting and Software Development (Python, Bash)
· Network security
· PKI & TLS certificate management
· Strong written and verbal communication skills in English (Full Professional Proficiency)

Will be plus:
· Database Administration: Cassandra and PostgreSQL;
· Object storage: Minio;
· IoT device management experience;
· Realtime Operating Systems (Nuttx, FreeRTOS);
· Core software development skills (C, C++, Java);
· Machine Learning libraries experience (TensorFlow, PyTorch).

Education
· BS/MS degree in Computer Science or equivalent.