Nader Ghanem

Backend Software Engineer, Apeldoorn, Netherlands

I build the parts of a product nobody sees: the queues, APIs and data flows that have to keep running.

About

Backend engineer on systems where failure is expensive, a European SaaS platform, a high-volume logistics operation. PHP and Symfony are where I've gone deepest, with production work in Python and JavaScript alongside it. The problems that take the time are the same in any language: queues that recover, queries that hold up under load, and enough observability that someone other than me can find the fault.

I care about clean code and practical solutions over clever ones. I'm a PSM II certified Scrum Master, so I'm comfortable leading technical decisions and unblocking the people around me.

Skills

LanguagesPHP, SQL, JavaScript, Python
FrameworksSymfony, Laravel, Doctrine ORM
FrontendVue.js, Inertia.js, Angular
DataMySQL, PostgreSQL, Redis
MessagingRabbitMQ, Symfony Messenger
InfrastructureDocker, Kubernetes, CircleCI, AWS Lambda
ObservabilityGrafana, Loki, Mimir, CloudWatch
StorageMinIO, S3
TestingPest, PHPUnit, Zenstruck Foundry
AIOpenAI API, LangChain, Prompt engineering

Experience

Awaretrain

Sep 2023 — present

Software Engineer, Nijmegen

SaaS platform for security awareness training and phishing simulation, used by companies across Europe.

    CEVA Logistics

    Jul 2021 — Jul 2023

    Software Engineer, Waalwijk

    High-volume logistics platform where a slow query is a delayed shipment.

      GIMtransfer

      Jan 2020 — Jan 2021

      Web Developer, Arnhem

      Web platforms glued to a set of older internal services.

        DATABIZ

        Aug 2019 — Dec 2019

        Python Developer, Tunisia

        Data collection at scale from public sources.

          CIEG+

          Jun 2016 — Jul 2019

          Full-stack Web Developer, Tunisia

          Where the PHP and Symfony started.

            Case notes

            Retries that know when to give up

            Security awareness SaaS

            Symfony MessengerSMTPPHP

            A mailbox that no longer exists and a mail server having a bad minute fail the same way at the transport level. Treat them identically and permanent rejections ride the whole backoff schedule, taking up room that belongs to the transient failures retrying would actually fix.

            I design queue retry strategies that read the SMTP response and split the two: permanent rejections stop on the first attempt and get recorded, transient ones back off and try again. Little code, and it decides whether a retry queue is reporting problems worth acting on or just talking to itself.

            Campaign reporting people can hand upward

            Security awareness SaaS

            PHPPDF generationObject storage

            Reporting that has to leave the tool it was generated in is its own problem. The numbers need aggregating once, arranging for a reader who was never in the tool, and rendering into something portable enough to forward.

            I led a summary export end to end: scoping with product, designing the aggregation, building the rendering pipeline, and taking it through release. Turning raw event data into a document a security officer can send to management without editing it first is mostly a design problem, and only then a PDF problem.

            Failure visibility for the support team

            Security awareness SaaS

            GrafanaLokiCloudWatch

            Support could tell that something had broken for a customer, but not what. Every question became an engineering interrupt.

            I built dashboards over the platform’s logs and metrics so the team could trace a failed action themselves, which service, which error, and when. Engineering stopped being the first stop for triage.

            Backend components for time-sensitive logistics

            Logistics platform

            SymfonyMySQLDoctrine

            Shipment data passes through many hands and every stage has a deadline. I built modular backend components handling that flow.

            A good share of the work was on the database side, reworking queries and access patterns where latency was showing up in daily operations rather than in a profiler. Shipped in a Scrum team with frequent production releases, with QA involved early enough to catch edge cases before customers found them.

            Bridges between older services and newer platforms

            Web platform integrations

            PythonREST APIsSQL

            A set of Java-based internal services held data that newer web platforms needed, and moving it was a manual job.

            I wrote Python services to move that data between the two, and integrated third-party APIs into the platforms themselves. Unglamorous work that quietly removed a lot of copying and pasting.

            Data collection pipelines

            Data engineering

            ScrapySeleniumPostgreSQL

            Built extraction pipelines against public web sources, handling the usual realities: pagination, rate limits, markup that changes without warning, and pages that only render under a real browser.

            Collected data landed in a schema designed for querying rather than just storing, so the people who asked for it could actually use it.

            Certification

            Professional Scrum Master II

            Scrum.org

            PSM II, advanced Scrum Master certification covering servant leadership, team dynamics and evidence-based delivery.

            View Badge

            Education

            MSc, Big Data Science2019 — 2021Central University, Tunis
            BSc, Computer Science2011 — 2014University of Tunis El Manar
            Nader Ghanem2026💻 ☕ 🎮