SOFTWARE ENGINEERING / OPEN SOURCE

Hi, I'm Rabah.
I build useful software.

I'm a software engineering student who likes figuring out how things work and making them better. These days, I build tools at Air France-KLM, contribute to open source, and work on my own ideas.

SCROLL TO EXPLORE
BASED IN FRANCE · BUILDING GLOBALLY

01 / SELECTED WORK

A few things I've worked on.

A mix of public projects and internal tools. For company work, I focus on the technical problem without sharing private code.

{ OT }
OPEN SOURCE↗

OpenTelemetry Kotlin

I contribute to the OpenTelemetry Kotlin Multiplatform SDK, working on error handling, regression coverage, and exporter configuration. What I enjoy most is learning how to make changes safely in a codebase used by other developers.

KotlinSDKObservability
Technical breakdown Error handling in a multiplatform SDK

My first contribution focused on issue #711 in the Kotlin Multiplatform SDK. In an SDK, handling a failure is part of the public behavior: an error must not unexpectedly disrupt the application using the library. The work involved locating the relevant failure path in an unfamiliar codebase, making a targeted change, and adding regression coverage.

Why tests matter here

The SDK is used across Kotlin targets, so a test should protect the observable behavior, not depend on one internal implementation. I also worked on ConsoleExporter configuration, where configuration changes need to fit the SDK's existing conventions.

What to inspect

My pull requests provide the code changes and review discussion. They are better evidence of my decisions than a general description of open-source work.

See my pull requests ↗View the SDK repository ↗
Screenshot of the AltCV homepage showing its CV tailoring service
SIDE PROJECT02

AltCV

I built AltCV to make job applications less repetitive. You enter your experience once, then use a job description to prepare a more relevant CV without inventing qualifications. The product also helps you keep track of applications.

SaaSFull stackProduct
Technical breakdown The core constraint: never invent experience

AltCV starts from a structured profile containing the user's actual education, skills, and experience. A job posting supplies relevance signals, not new facts. That separation is central to the product: tailoring means selecting and reformulating existing information, not generating qualifications from scratch.

From one profile to a usable document

The user can import a CV or complete their profile, paste a job posting, review the tailored result, edit it, and export a PDF. Generated CVs and their associated applications can then be found again in the history and tracking flow. These steps matter because a CV is something the user must be able to verify and correct before sending.

Product trade-off

I chose to keep the user in control of the final document rather than present automated output as unquestionably correct. The live site shows the product; I don't claim measured ATS improvements or generation accuracy without evidence.

Visit altcv.fr ↗
SQL →
PROFESSIONAL · INTERNAL03

Visual Query Builder

I'm building an internal visual query builder that turns user-defined blocks into SQL for BigQuery. The tricky part isn't drawing the blocks: it's validating the graph, translating it into a predictable query, and checking potential execution costs.

JavaBigQueryGCPArchitecture
Technical breakdown Turning a graph into a query

The editor represents operations such as Source, Filter, Select, Join, GroupBy, and Aggregate as connected blocks. The backend's job is not to concatenate SQL fragments from the browser: it must validate the graph, translate it into a logical query representation, and then generate SQL for BigQuery.

Keeping the output predictable

The design uses a sequence of Common Table Expressions (CTEs) to represent transformation steps. This makes the generated query easier to inspect and reason about than a single deeply nested statement. A backend validation boundary is important because the frontend's graph cannot be trusted merely because it was created through a visual editor.

Cost is part of correctness

A syntactically valid BigQuery query can still scan too much data. The architecture therefore includes a dry run to estimate scanned bytes before execution, with the possibility of rejecting overly expensive queries. These are design requirements of an ongoing internal project; I am not claiming every stage is already deployed.

OTel
OBSERVABILITY · PROFESSIONAL05

Observability at Air France-KLM

I'm helping onboard Dynatrace and integrate OpenTelemetry into web applications at Air France-KLM. My goal is to make it easier for teams to understand application behavior through metrics, logs, traces, and useful dashboards.

OpenTelemetryDynatraceMonitoring
Technical breakdown From application events to actionable telemetry

My assignment is to onboard web applications to Dynatrace and integrate OpenTelemetry instrumentation. That means working across the application teams and Dynatrace engineers so metrics, logs, and traces can be collected and presented in dashboards.

Why three signals?

Metrics help reveal a trend, logs provide event-level context, and traces help follow a request through instrumented components. A useful dashboard should support an investigation rather than merely display every available signal. Selecting which telemetry to expose is therefore part of the engineering work.

Current scope

This is an ongoing rollout, not a claim that all applications are instrumented. I cannot publish internal dashboards, instrumentation configuration, or operational data.

40 GB+
PROFESSIONAL · INTERNAL04

Data Automation

I worked on automating a recurring workflow that processes more than 40 GB of competitor-pricing data each day. It pushed me to think beyond whether a script works once and toward whether it can run dependably every day.

AutomationData processingReliability
Technical breakdown 40 GB+ within a daily time window

This tool automates retrieval of more than 40 GB of competitor-pricing data each day. The data comes from two specific sources on local servers, and the workflow covers multiple business scopes, including ICA, NATL, and medium-/short-haul markets.

The real constraint

The challenge isn't just processing a large volume once. The retrieval has to be repeated on schedule, across scopes, within a defined window. That changes how I think about the tool: each daily run is an operational dependency, not an ad-hoc script.

Important distinction

This is separate from the Visual Query Builder. The automation works with two local data sources; the query builder is designed to work across cloud-hosted sources in BigQuery. They relate to the same business domain, but solve different problems.

SQL
PROFESSIONAL · INTERNAL06

Database Flow Visualization

At NGE, I helped build an internal interface for exploring database flows. I worked on the web interface and SQL queries so that teams could better understand exchanges between systems.

SQLWeb developmentAzure
Technical breakdown Making database exchanges visible

At NGE, I worked on a web interface for teams that needed to understand data flows between internal systems. The task combined frontend views with SQL queries that extracted the flow information those views needed to display.

From raw records to useful views

A flow dashboard is only useful when its queries return information in a form people can navigate and interpret. My work included writing and refining SQL and building dynamic visualizations, alongside documentation and coordination with infrastructure and digital teams.

Boundary

The underlying databases and system topology are internal. I can explain the type of problem and my responsibilities, but not expose the organization's architecture or data.

01
HACKATHON · TEAM PROJECT07

Gate of Healing · DevArt 2024

My team built Gate of Healing during the DevArt 2024 hackathon and won first prize. I enjoyed the mix of building quickly, making decisions together, and presenting something tangible at the end.

HackathonTeamworkPrototype
Read the university article ↗
ON
PERSONAL · SOFTWARE PROJECT08

ON’Dev

I co-founded ON'Dev to build software for real clients. Working on projects such as the Helia Skin Institut website taught me to balance technical choices with what a client actually needs.

Software developmentClient projectsEntrepreneurship
See a client website ↗

02 / EXPERIENCE

Where I've worked.

A bit about what I do day to day.

Decision Support Engineer · Apprentice

Air France-KLM

I work on internal tools for Revenue Management teams, from automating data workflows to building a visual query builder. I'm also helping bring better observability to our applications with OpenTelemetry and Dynatrace.

Open-source contributor

OpenTelemetry

I started contributing to the Kotlin SDK to learn how a large open-source project works. Reading unfamiliar code and discussing changes in reviews have been especially valuable.

Software Developer · Intern & Apprentice

NGE

I helped build internal tools to understand and visualize database flows, working alongside developers and infrastructure teams.

03 / ABOUT ME

A little about me.

I'm Rabah, currently studying engineering at Télécom SudParis, part of Institut Polytechnique de Paris.

What I enjoy most is building software and understanding what happens behind the scenes. I'm especially interested in backend systems, observability, and applications that work with a lot of data.

When I'm not at work or in class, I spend time solving algorithm problems, contributing to open source, and experimenting with side projects. I'd love to learn from engineers with different backgrounds and work with teams around the world.

CURRENT FOCUS
Software Engineering & Systems
EDUCATION
Télécom SudParis · Institut Polytechnique de Paris
INTERESTS
Backend · Observability · Open Source
LOCATION
France · Open to international opportunities

04 / GET IN TOUCH

Want to say hello?.

Working on something interesting, looking for an engineer, or just want to talk about software? Feel free to reach out. Email is the easiest way to get in touch.

rabah.nini2004@gmail.com