{
  "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
  "basics": {
    "name": "Said Boudjelda",
    "label": "Lead Backend Engineer & Software Architect",
    "url": "https://bmscomp.github.io",
    "summary": "Backend engineer and software architect with nearly 20 years of experience building distributed systems on the JVM — Java, Spring, Quarkus, and Apache Kafka — with hexagonal, domain-driven, and event-driven architecture. Led the design of critical banking and event-streaming platforms and coaches engineering teams. Creator of Kates, an open-source platform for Kafka performance and resilience testing, and author of its book, Kates — The Definitive Guide. Speaker at Devoxx France 2025 and 2026, and contributor to Apache Kafka, Spring Boot, and Vavr. Applies AI-assisted engineering in daily work.",
    "location": {
      "region": "Île-de-France",
      "countryCode": "FR"
    },
    "profiles": [
      {
        "network": "GitHub",
        "username": "bmscomp",
        "url": "https://github.com/bmscomp"
      },
      {
        "network": "LinkedIn",
        "username": "bmscomp",
        "url": "https://www.linkedin.com/in/bmscomp/"
      }
    ]
  },
  "work": [
    {
      "name": "FDJ",
      "position": "Platform Engineer · Apache Kafka Expert",
      "startDate": "2025-10",
      "summary": "Reference expert for event streaming, keeping Kafka clusters production-ready and resolving the hardest issues.",
      "highlights": [
        "Design and operate a company-wide, multi-cluster, highly available event-streaming platform on Apache Kafka.",
        "Build and maintain Kafka Connect pipelines, Kafka Streams applications, and Schema Registry governance (Avro, compatibility policies).",
        "Automate cluster provisioning, deployment, and monitoring with Helm, GitLab CI, Docker, and Kubernetes; define SLOs, alerting, and capacity plans.",
        "Coach development teams on event-driven design, topic modeling, and consumer performance tuning; lead architecture reviews and internal workshops."
      ]
    },
    {
      "name": "SCIAM",
      "position": "Technical Lead · Software Architect",
      "startDate": "2023-06",
      "endDate": "2025-10",
      "summary": "NEO: the rewrite of a leading French bank's core accounting system as microservices designed to last for decades.",
      "highlights": [
        "Drove technical design with domain-driven design, test-driven development, and hexagonal and event-driven architecture.",
        "Built services with Java 21, GraalVM, Quarkus, Apache Ignite, Apache Kogito, Apache Kafka, and RocksDB.",
        "Delivered on IBM Cloud with Docker, Kubernetes, and GitLab CI."
      ]
    },
    {
      "name": "Capco",
      "position": "Engineering Manager · Lead Software Developer",
      "startDate": "2022-09",
      "endDate": "2023-06",
      "summary": "Engineering manager at Capco and lead backend developer for a bank's Neobank project: a cloud-native rewrite of its legacy mobile and web applications on Google Cloud.",
      "highlights": [
        "Applied domain-driven design, test-driven development, CQRS, event sourcing, and hexagonal architecture.",
        "Built services with Java 17, Spring Boot, Vavr, Apache Kafka, and Kafka Connect.",
        "Delivered with Terraform, Argo CD, GitLab CI, and Kubernetes."
      ]
    },
    {
      "name": "BNP Paribas",
      "position": "Senior Java Software Developer",
      "startDate": "2020-09",
      "endDate": "2022-09",
      "summary": "F.I.R.S.T. (FileAct and InterAct Routing Secure Transport): a system, built from scratch, that routes transactional flows between BNP Paribas partners and SWIFT over SWIFTNet.",
      "highlights": [
        "Designed it distributed, asynchronous, and fault-tolerant, with automatic retry that resumes failed flows from the step where they stopped.",
        "Recorded the full history of every update as an audit trail.",
        "Applied hexagonal architecture, SOLID principles, and the transactional outbox pattern, with an immutable domain model and functional programming in Vavr across 8 modules."
      ]
    },
    {
      "name": "Accuity",
      "position": "Senior Full-Stack Software Developer",
      "startDate": "2018-02",
      "endDate": "2020-06",
      "summary": "Real-time payment screening and transaction review products.",
      "highlights": [
        "Developed HPR, a transaction-filtering REST service for PayPal with an SLA under 100 ms per request, using a configurable pool of NGINX workers for parallel processing.",
        "Built Continuity, a Vue.js and Spring Boot application on Oracle for reviewing and deciding on transactions, with audit trail, migration, message stripping, and archiving modules."
      ]
    },
    {
      "name": "ALTI",
      "position": "Full-Stack Software Developer",
      "startDate": "2015-03",
      "endDate": "2018-02",
      "summary": "Consultant on insurance, banking, and telecom projects.",
      "highlights": [
        "Built BPSIS, a paperless, multi-tenant, multi-brand platform for borrower insurance and pensions used by insurance brokers and distributors.",
        "Developed an application for BNP Paribas to manage disputes over ATM transactions, handling millions of records.",
        "Served as main developer for Djezzy's value-added services during a one-year mission, implementing USSD menus for a system serving 17 million users."
      ]
    },
    {
      "name": "Imagine Partners",
      "position": "Java Software Developer",
      "startDate": "2014-10",
      "endDate": "2015-03",
      "summary": "Developed Imagine Workflow, a workflow management platform built on the Activiti BPMN engine."
    },
    {
      "name": "Nearbee",
      "position": "Java Web Developer",
      "startDate": "2012-10",
      "endDate": "2014-09",
      "summary": "Designed and built MyURM, a customer relationship product, on an in-house XWiki-based framework, customized for each client."
    },
    {
      "name": "Baker Tilly Algeria",
      "location": "Algeria",
      "position": "IT Manager · Main Software Developer",
      "startDate": "2010-03",
      "endDate": "2012-08",
      "summary": "Led IT and built Mirador, an in-house system that generates and manages documents from company data."
    },
    {
      "name": "Navig",
      "position": "Java Software Developer",
      "startDate": "2009-09",
      "endDate": "2010-02",
      "summary": "Analyzed customer needs and built features for a start-up platform unifying email, calendars, workflows, files, and tasks, using Java and GWT."
    },
    {
      "name": "Les Pages Maghreb",
      "position": "Software Developer",
      "startDate": "2008-12",
      "endDate": "2009-12",
      "summary": "Built the company's main web application in Ruby on Rails, and Python tools that collected data, produced reports, and fed the main database."
    },
    {
      "name": "Kajima (COJAAL)",
      "location": "Algeria",
      "position": "Software Developer · Data Analyst",
      "startDate": "2007-08",
      "endDate": "2008-10",
      "summary": "Analyzed GPS machine-control data and developed plugins for the East–West Highway construction project, using Python and Java."
    }
  ],
  "education": [
    {
      "institution": "Ferhat Abbas University of Sétif — Institute of Technology & Science",
      "area": "Computer Science",
      "specialization": "Artificial Intelligence",
      "studyType": "Engineer's degree",
      "endDate": "2007-06"
    }
  ],
  "publications": [
    {
      "name": "Kates — The Definitive Guide",
      "authors": "S. Boudjelda and contributors",
      "publisher": "Open-source online book",
      "releaseDate": "2026",
      "url": "https://bmscomp.github.io/kates/",
      "summary": "A comprehensive guide to performance testing, chaos engineering, and operational resilience for Apache Kafka — from theory to practice."
    }
  ],
  "skills": [
    {
      "name": "Programming",
      "keywords": [
        "Java",
        "Scala",
        "Groovy",
        "JavaScript",
        "Python",
        "Rust",
        "Go",
        "C++"
      ]
    },
    {
      "name": "Frameworks",
      "keywords": [
        "Spring Boot",
        "Spring Integration",
        "Quarkus",
        "Vavr",
        "Node.js"
      ]
    },
    {
      "name": "Architecture",
      "keywords": [
        "Hexagonal",
        "Domain-Driven Design",
        "Event-driven",
        "CQRS / Event sourcing",
        "Microservices",
        "SOLID"
      ]
    },
    {
      "name": "Streaming",
      "keywords": [
        "Apache Kafka",
        "Kafka Connect",
        "Kafka Streams",
        "Schema Registry",
        "RabbitMQ",
        "IBM MQ"
      ]
    },
    {
      "name": "Data",
      "keywords": [
        "MongoDB",
        "Neo4j",
        "Redis",
        "RocksDB",
        "Oracle",
        "MySQL"
      ]
    },
    {
      "name": "Platform",
      "keywords": [
        "Kubernetes",
        "Helm",
        "Docker",
        "Terraform",
        "Argo CD",
        "GitLab CI",
        "Jenkins"
      ]
    },
    {
      "name": "Testing",
      "keywords": [
        "JUnit",
        "Mockito",
        "Spock",
        "Cucumber",
        "Testcontainers",
        "jqwik"
      ]
    }
  ],
  "languages": [
    {
      "language": "English",
      "fluency": "Fluent"
    },
    {
      "language": "French",
      "fluency": "Fluent"
    }
  ],
  "interests": [
    {
      "name": "Distributed systems"
    },
    {
      "name": "Event streaming"
    },
    {
      "name": "Software architecture"
    },
    {
      "name": "Functional programming"
    },
    {
      "name": "Platform engineering"
    },
    {
      "name": "AI-assisted engineering"
    }
  ],
  "projects": [
    {
      "name": "Kates",
      "type": "application",
      "roles": [
        "Creator",
        "Maintainer"
      ],
      "startDate": "2025-11",
      "url": "https://github.com/bmscomp/kates",
      "description": "Kafka Advanced Testing & Engineering Suite: a terminal-first platform for performance testing, chaos engineering, and security auditing of Apache Kafka on Kubernetes, with production-parity infrastructure on a local Kind cluster.",
      "highlights": [
        "Runs eight performance-test workload types and thirteen fault types, and grades resilience runs and broker security from A to F.",
        "Gates CI pipelines on performance, SLA, and security grades; maps security checks to CIS, SOC 2, and PCI DSS.",
        "Built as a Go CLI, a Quarkus backend, and Helm charts, on a multi-zone Kind cluster with Strimzi and LitmusChaos."
      ],
      "keywords": [
        "Apache Kafka",
        "Kubernetes",
        "Go",
        "Quarkus",
        "Helm",
        "Strimzi",
        "LitmusChaos"
      ]
    },
    {
      "name": "Quarkus Cucumber",
      "url": "https://github.com/quarkiverse/quarkus-cucumber",
      "roles": [
        "Maintainer"
      ],
      "type": "library",
      "description": "Quarkus extension for running Cucumber tests."
    },
    {
      "name": "Apache Kafka",
      "url": "https://issues.apache.org/jira/browse/KAFKA-15000",
      "roles": [
        "Contributor"
      ],
      "description": "Fixes and improvements: KAFKA-15000, KAFKA-15208, KAFKA-15222, KAFKA-15235, KAFKA-15493.",
      "type": "contribution"
    },
    {
      "name": "Spring Boot",
      "url": "https://github.com/spring-projects/spring-boot",
      "roles": [
        "Contributor"
      ],
      "description": "Reworked the Actuator Neo4j health indicator to report the database engine and kernel version instead of exposing business data.",
      "type": "contribution"
    },
    {
      "name": "Vavr",
      "url": "https://github.com/vavr-io/vavr/pull/2729",
      "roles": [
        "Contributor"
      ],
      "description": "Upgraded the vavr and vavr-jackson builds to JDK 17 and 19.",
      "type": "contribution"
    },
    {
      "name": "Spring Guides",
      "url": "https://github.com/spring-guides/gs-multi-module",
      "roles": [
        "Contributor"
      ],
      "description": "Contributed to the official guide for multi-module Spring applications.",
      "type": "contribution"
    },
    {
      "name": "JRecord",
      "url": "https://github.com/bmTas/JRecord",
      "roles": [
        "Contributor"
      ],
      "description": "Contributed to converting EBCDIC mainframe files to UTF-8.",
      "type": "contribution"
    },
    {
      "name": "Kafka avec Raft en production : une nouvelle ère pour les commit logs distribués",
      "translation": "Kafka with Raft in production: a new era for distributed commit logs",
      "type": "talk",
      "entity": "Devoxx France 2026",
      "roles": [
        "Speaker"
      ],
      "startDate": "2026-04-24",
      "url": "https://m.devoxx.com/events/devoxxfr2026/talks/12063",
      "description": "Experience report on running Apache Kafka in KRaft mode, the Raft-based consensus that replaces ZooKeeper, in production: benefits, pitfalls, and migration paths."
    },
    {
      "name": "Du Mainframe aux Microservices Quarkus",
      "translation": "From mainframe to Quarkus microservices",
      "type": "talk",
      "entity": "Devoxx France 2025",
      "roles": [
        "Co-speaker"
      ],
      "with": [
        "Charles Sabourdin",
        "Antoine Sabot-Durand",
        "Chaker Fezai"
      ],
      "startDate": "2025-04-18",
      "url": "https://www.youtube.com/watch?v=IZxVWMmaEqU",
      "description": "Three-hour deep dive on rewriting a 40-year-old mainframe accounting system as Quarkus microservices on Kubernetes."
    },
    {
      "name": "Hands on Neo4j",
      "type": "talk",
      "entity": "Sfeir",
      "roles": [
        "Speaker"
      ],
      "description": "Talk presenting the Neo4j graph database to developers."
    },
    {
      "name": "Neo4j workshops",
      "type": "workshop",
      "entity": "Sfeir",
      "roles": [
        "Organizer"
      ],
      "description": "Hands-on workshops for developers on using the Neo4j graph database in practice."
    }
  ],
  "meta": {
    "canonical": "https://bmscomp.github.io/cv.json",
    "version": "v1.3.3",
    "lastModified": "2026-09-30"
  }
}
