Hello, my name is

Ramzi
Naifar.

I'm a Senior DevOps Engineer.

6 years of experience · Kubernetes · GitOps · CI/CD Architecture · Kafka · Large-scale MultiPaaS Migrations

Who am I?

I'm a Senior DevOps Engineer experienced in designing, automating, and optimising CI/CD architectures and defining and executing migration strategies tailored to application architectures across mission-critical environments, with strong expertise in event-driven technologies such as Apache Kafka and Event Mesh.

Core technologies
Kubernetes Kafka Python Bash Jenkins Microsoft Azure OpenShift MongoDB Helm Argo CD Oracle SQL Splunk
// ramzi.config.json

"role": "Senior DevOps Engineer",
"focus": "CI/CD Architecture · Reliability · MultiPaaS Migrations",
"domain": "Airline platforms · Embedded Systems",
"incidents": "L2 / L3",
"data_loss_across_migrations": 0,

What I've worked on

Mission 01
Amadeus · Nov 2024 – Present

Order Management
System

Argo CD Kubernetes Helm Kafka / Strimzi Solace Event Mesh MongoDB Jenkins OpenShift Elasticsearch Kibana Power Automate Splunk Python
Context

Order Management System designed to handle airline orders in a high-availability environment. The platform is built on microservices deployed on Kubernetes, leveraging Event-Driven and Service-Oriented Architectures. It operates across multiple environments (INT, Dev, UAT, Pre-Prod, and Production), distributed over several clusters.

Challenges
  • OOM crashes caused by Kafka consumer lag — intermittent instability
  • CI/CD pod reuse causing memory leaks; broken PR promotion and build-status logic
  • Faulty orders blocking entire Kafka partitions, stalling downstream processing
  • Manual OpenShift changes on customer-facing environments bypassing CI/CD pipelines undetected
  • MongoDB CPU saturation (100%) during migration, impacting all dependent microservices
  • Multi-cluster Kafka migration with strict 5-minute downtime constraint and zero data loss tolerance
  • Recurring Kafka operational issues across environments
What I did
01 · SRE / Incidents
Production L2/L3 response
Resolved recurring OOM caused by Kafka lag via memory limit tuning. Deep-traced a Splunk missing-index failure causing endless EDA retries, cross-reference issues between Finnair and Qatar Airways systems, and incorrect HTTP paths on deployed microservices.
02 · CI/CD
Pipeline reliability fixes
Fixed pod reuse memory leaks by enforcing fresh agent creation per build phase. Added per-package Helm retry logic against transient network failures. Fixed PR build-status logic to always consider last result. Automated PR job creation before scan to eliminate false-success merges. Standardised 5 multibranch pipelines via Jenkins Shared Library, eliminating duplication.
03 · Automation
CI/CD promotion & Teams alerts
Designed a single-PR workflow — developer submits one PR for the first environment only. Pipeline auto-promotes across environments, creates PRs per phase, and posts real-time build status (creation, success, failure, merge) into the exact Teams thread via Power Automate.
04 · Governance
Audit log drift detection
Detected manual env variable, feature toggle, and version changes on customer-facing OpenShift systems. Collected K8s audit logs into a scoped Splunk index and triggered Teams alerts with who/what/when for every change across 30 namespaces spanning 4 clusters — enabling immediate revert and forcing justification for critical modifications.
05 · Migration
Kafka & MongoDB migrations
9 platform migrations across multi-cluster environments including Qatar Airways and Finnair. Qatar Airways UAT → PreProd: Kafka topic replication, custom Bash offset migration script (beyond MirrorMaker limits), Solace Event Mesh queue realignment, ACL fix and Kafka Topic Operator fix via Argo CD, K8s namespace deployment. Finnair MongoDB: resolved 100% CPU saturation by reducing simultaneous collection injections and adding time delays between document batches.
06 · Evaluation
Solace Event Mesh self-service stabilization
Tested the new Solace Event Mesh self-service microservice in Kubernetes for production readiness. Identified replica count desync with Custom Resource, duplicate Kafka Topic Operator object generation, and config file bloat impacting readability. Drove technical reviews with the Solace team, leading to significant stability improvements.
07 · Kafka storage
Storage recovery & cluster hygiene
Resolved Kafka cluster storage saturation caused by a misbehaving microservice flooding topic data — scaled down the offending service and purged via retention.ms override. Separately audited and removed unused replicated topics, reducing their footprint from 5% to 0.2%. Benchmarked dynamic vs static JVM after an unexpected resource peak: 30-day non-heap memory trend analysis confirmed no memory risk — dynamic JVM retained without rollback.
Results
−30%
CI/CD failure rate — pipeline stability restored across all environments
−80%
Manual PR operations — single-PR workflow with full auto-promotion
Stable prod
OOM crashes resolved — Kafka lag no longer causes service disruption
Real-time alerts
Manual OpenShift drift detected instantly — accountability enforced across 30 namespaces / 4 clusters
0
Data loss across all 9 Kafka & MongoDB migrations — 5 min max downtime
Prod-ready
Solace Event Mesh self-service stabilized and validated — planned for full production adoption
92%→45%
Kafka cluster storage recovered — misbehaving microservice identified, scaled down, topics purged via retention.ms
5%→0.2%
Unused replicated topic storage eliminated — cluster hygiene audit across all environments
Technical deep-dive
Teams notification system — how it works
Teams build notification system architecture Developer posts PR in Teams Power Automate scans Teams messages extracts PR# + thread ID Database PR ↔ Thread ID mapping Jenkins Central Job polls PR statuses Power Automate looks up thread ID from DB replies to developer thread Teams reply sent in exact developer thread ★ Zero premium API calls Power Automate act as proxy between Jenkins and Teams — never queries Jenkins API
Finnair — Dev → New phase migration flow
Dev to Custom Phase migration Migration 1 — Completed with side effect Prep Stop Data Activate Deploy new namespace Kubernetes namespace provisioned in new phase Stop flow and CI/CD in dev namespace Kafka consumers + HTTP traffic + CI/CD halted Migrate MongoDB database mongodump / mongorestore + custom transformation scripts All collections injected simultaneously → migration succeeded Activate flow · reactivate CI/CD · validate New namespace live · functional validation passed ⚠ Side effect observed MongoDB CPU hit 100% — other microservices in other namespaces impacted root cause identified · fix applied before Migration 2 Fix prepared before Migration 2 Reduce simultaneous injections Add time delay between batches Migration 2 — Clean run Stop Data Activate Cleanup Stop flow and CI/CD in dev namespace Migrate MongoDB — batched Reduced concurrency + delay between batches → CPU stable, no impact Activate flow · reactivate CI/CD · validate Cleanup dev namespace · ✓ No disruption to any service
Qatar Airways — UAT → PreProd multi-cluster migration flow
Qatar Airways UAT to PreProd multi-cluster migration Qatar Airways — UAT → PreProd (multi-cluster) Cluster A — UAT Cluster B — PreProd Stop Event Mesh flow Event Mesh flow halted on Cluster A Deploy PreProd namespace K8s namespace on Cluster B ACL fix · Kafka Topic Operator fix via Argo CD Realign Event Mesh queues Queues pointed to new PreProd phase Event Mesh queues provisioned Queues active on Cluster B Stop full flow Kafka + HTTP halted · ⏱ downtime starts Migrate Kafka offsets Custom Bash script + MirrorMaker replication offsets Kafka topics + offsets ready Consumer groups replicated · ready to activate Reactivate flow on Cluster B Consumers + routing live · ⏱ ~5 min total ~5 min Monitor and test 100% functional validation with QA · no performance regression Realign UAT namespace on Cluster A UAT namespace re-pointed to correct UAT flow (was previously consuming PreProd) Halt Deploy / Activate Data migration Queue config / Realign Validate
Mission 02
Amadeus · Jan 2024 – Oct 2024

Airline Ticketing
Cloud Migration

Microsoft Azure Python Bash Oracle SQL Jenkins Kubernetes OpenShift Splunk Grafana MinIO Podman Control-M
Context

Progressive migration of a multi-airline ticketing platform from on-premise to Microsoft Azure — requiring strong observability, and test reliability. The platform served 421 airlines across mixed on-prem and cloud environments throughout the migration.

Challenges
  • Log access tightly coupled to on-premise infrastructure — non-regression (NR) tests started failing after migration to Azure
  • Critical production performance degradation: SQL queries went from milliseconds to minutes after Azure migration
  • 50 identical Jenkinsfiles duplicated across repositories — unmaintainable at scale
  • NR tests failed due to heterogeneous airline environments (on-prem vs Azure, object storage vs persistent volumes) with no dynamic environment awareness
  • 5 PROD migrations covering 421 airlines requiring coordinated monitoring, automated validation, and zero-disruption execution
What I did
01 · Automation
Dynamic log access
Python & Bash scripts auto-updating log-access logic across all repos for Azure instead of on-premise systems without manual changes.
02 · Performance
SQL investigation & fix
Traced Oracle suboptimal index selection causing query plans to degrade after migration to Azure. Identified the root cause — the query optimizer was picking a full table scan over available indexes due to stale statistics — and benchmarked two remediation strategies (hint-based forcing vs. stats refresh) across 44 airlines before rolling out the fix.
03 · CI/CD
Centralised Jenkins solution
Rolled out a centralised Jenkins solution managing jobs across 50 repositories. Replaced 50 duplicated Jenkinsfiles with a single parameterised shared pipeline — all repos updated from one place.
04 · Reliability
Environment-aware NR tests
Introduced environment-aware NR tests using centralised Jenkins configuration, enabling dynamic adaptation to per-airline setups (on-prem, object storage, persistent volumes) throughout phased cloud migration.
Results
+27pp
NR test pass rate recovered — 62% → 89% after Azure migration
99%
SQL execution time — from minutes back to milliseconds
50 → 1
Jenkinsfiles centralized — one parameterized pipeline governing all 50 repos
421
Airlines migrated across 5 PROD migrations — zero service disruption
Mission 03
Sagemcom · Mar 2021 – Dec 2023

Vodafone TV STB &
VSB — CI/CD Infrastructure

Ansible Apache HTTP Server Bash Buildroot Debian Docker Jenkins GitLab CI Grafana Prometheus Nexus Python
Context

CI/CD infrastructure for Set-Top Box (STB) and Video Service Box (VSB) embedded software at Vodafone. A 12-developer team running Scrum sprints built firmware for physical TV boxes — each compilation taking 5–6 hours. The environment had no standardisation, no observability, and builds were routinely killed by network connectivity failures mid-way through with no resume capability.

Challenges
  • Kerberos authentication to GitLab expired mid-compilation — network failures killed 5–6 hour builds with no resume capability, wasting full days of compute
  • Binary security signing and Nexus artifact upload were manual, slow, error-prone final release steps
  • No environment standardisation — Jenkins, Nexus, and STBTester ran differently on each of 5 servers
  • No observability across 16 CI pipelines and 5 servers — no way to detect failures, performance degradation, or infrastructure drift
What I did
01 · Reliability
Kerberos network auto-recovery
Deployed a Keytab script + Kerberos config via Ansible across the Jenkins cluster. The script runs periodically, checks GitLab connectivity, and automatically renews Kerberos authentication if it fails. Builds resume from where they stopped with a 3-retry mechanism for external dependencies — eliminating all wasted 5–6 hour compilation losses.
02 · CI/CD pipeline
End-to-end build & test pipeline
PR created → GitLab CI check → Jenkins job triggered after merge → 5–6 hr Buildroot compilation → binary upload to Nexus → install on test STB/VSB hardware → NR tests executed → HTML test report auto-generated and delivered by email to all stakeholders.
03 · Automation
Binary signing & release automation
Bash scripts automating binary security signing and Nexus artifact upload — previously a manual multi-step release process. Reduced total release execution time by 92%.
04 · Infrastructure
Containerised dev infrastructure
Containerised STBTester, Jenkins, and Nexus using Docker; deployed and configured across all servers via Ansible. Eliminated environment divergence and allowed infrastructure to be reproduced or rebuilt from code.
05 · Observability
Grafana/Prometheus dashboards
Built Grafana/Prometheus dashboards monitoring 16 CI pipelines and 5 servers in real time. Python script auto-generates structured HTML compilation reports delivered by email — giving the 12-dev team instant visibility into build status, failure patterns, and infrastructure health.
CI/CD pipeline flow — STB/VSB build lifecycle
STB VSB CI/CD pipeline flow Developer opens Pull Request GitLab CI static checks + lint on PR PR merged to main branch protected · merge approved Jenkins job triggered via GitLab webhook Buildroot compilation 5–6 hours · cross-compiled firmware Kerberos auto-recovery active throughout Nexus upload artifact stored + versioned Install on STB / VSB binary deployed to test hardware NR tests executed STBTester · automated functional validation HTML report generated emailed to the full team
Results
−92%
Release execution time — binary signing & Nexus upload fully automated
16
CI pipelines monitored across 5 servers — real-time Grafana/Prometheus dashboards
Zero wasted builds
Kerberos auto-recovery eliminates mid-compilation network failures — no more lost 5–6 hour runs
12 devs
Continuous delivery enabled — standardised pipelines, containerised infra, automated test reports

Get In Touch

Whether you have a question, a project in mind, or would like to connect — feel free to reach out. I'll get back to you as soon as possible.