Mohammed Abdessetar ElyagoubiEmail me

trace 000000001 / 7

  1. oncall.pageHook
  2. orange.backendOrange
  3. otel.contribOpenTelemetry
  4. easydebug.captureEasyDebug
  5. context.propagateTech Bdarija
  6. devoxx.talkDevoxx Morocco
  7. rootContact
03:00/06:00Composite of real nights on call, Sofrecom and Hack Nation

Every bug leaves a trace.

I'm Mohammed Abdessetar Elyagoubi, a Java backend engineer at Sofrecom (Orange subsidiary) and an OpenTelemetry Java contributor.

● FIRINGpager · on call

Production is throwing 500s

service: backend-api  env: prod

opens the trace
  1. INFO 02:59:58.204 [scheduling-1] c.a.batch.ImportJob : nightly import started
  2. INFO 03:00:03.917 [http-nio-8080-exec-2] o.s.web.servlet.DispatcherServlet : Completed initialization
  3. WARN 03:00:09.330 [http-nio-8080-exec-4] com.zaxxer.hikari.pool.PoolBase : HikariPool-1 - Connection is not available, request timed out
  4. timestamp
    03:00:12.481
    thread
    http-nio-8080-exec-7
    exception
    java.lang.OutOfMemoryError
    trace_id
    4bf92f3577b34da6a3ce929d0e0e4736
  5. WARN 03:00:13.002 [http-nio-8080-exec-9] c.a.client.RetryTemplate : retrying request
  6. INFO 06:00:41 [main] com.app.Application : Started Application
oncall.pagestatus=ERROR
span opentrace_id 4bf92f35service.name backend-api
orange.backend · no telemetry yet

By day, Java in production.

Java backend engineer at Sofrecom (Orange subsidiary), since February 2026.

I build and operate Spring Boot microservices. They ship through GitLab CI/CD, pass SonarQube quality gates and run on Cloud Foundry.

request path · GET /api/ordersdashed = not traced
Cloud Foundry
gatewayHTTP in
orders-serviceSpring Boot
billing-serviceSpring Boot
PostgreSQLdatabase
git push→GitLab CI/CD→SonarQube gate→cf push
Illustrative architecture, not the client's system

Then I fixed the tracer itself.

Four merged pull requests to opentelemetry-java, the OpenTelemetry SDK for Java.

instrumentation: offOFF
otel.contrib · pin = merge date
Apr 2026MayJunJulAugSep
open-telemetry/opentelemetry-java
#8276 MERGEDCapped the exporter's HTTP thread pool so a burst of telemetry can't spawn unbounded threads.merged 22 Apr 2026  View on GitHub ↗
MERGED
#8499 MERGEDFixed a map that could skip live entries while being iterated.merged 23 Jun 2026  View on GitHub ↗
MERGED
#8668 MERGEDMade the Jaeger remote sampler respect its configured interval in declarative config.merged 30 Jul 2026  View on GitHub ↗
MERGED
#8669 MERGEDError messages no longer echo configuration values back.merged 5 Aug 2026  View on GitHub ↗
MERGED
span event · otel.contrib

View on GitHub ↗

EasyDebug catches the 3am bug.

My observability side project for Spring Boot. Here it holds the 03:00 failure, trace and exception together. Drag to replay it.

EasyDebug · backend-apicaptured
  • requests
  • GET /api/orders200
  • GET /api/health200
  • POST /api/sync500
  • GET /api/orders/{id}200
  • PUT /api/profile200
POST /api/sync500 · ERROR
http.server
SyncController
ImportService
jdbc.query
mapper.load
java.lang.OutOfMemoryError: Java heap space
  at ImportService.loadAll(ImportService.java)
  at SyncController.sync(SyncController.java)
request inqueryOOM500 out
Example data, rebuilt from EasyDebug's UI in the portfolio's colours

Then I teach it back, in Darija.

Tech Bdarija teaches developers in Moroccan Darija.

baggagelang=en→lang=ary

trace

The full path of one request through every service it touched.

span

One step in that path, with a start, an end and a status.

thread pool

A fixed crew of threads that takes work from a queue.

deploy

Putting a new version where real users hit it.

Watch on Instagram ↗
Devoxx Morocco 2026Casablanca, 5 November 2026

The Future of Open Source Has New Faces.

A 20-minute talk. AI lowers the barrier to opening a contribution. It does not lower the trust a maintainer needs to merge it. Grounded in my OpenTelemetry Java pull requests.

17days to go
0:005:0010:0015:0020:00
OpeningWhy trust mattersLessons from OpenTelemetryWhat maintainers look forNew contributorsClosingQ&A
devoxx.talk · 20-minute talk outline

Close the trace.

Hiring for backend or observability work, booking a talk, or stuck on an OpenTelemetry question? Email me.

Email me ↗
rootOK
oncall.pagecaptured
orange.backendok
otel.contribok
easydebug.captureok
context.propagateok
devoxx.talkok
trace summarystatus=ERROR
trace_id
4bf92f35
spans
7
errors
0 (1 captured)
your time here
0s
Replay from 03:00