Skip to content
View barthez-kenwou's full-sized avatar
:atom:
Code is not just what I do; it’s how I bring ideas to life,commit by commit✨🔥
:atom:
Code is not just what I do; it’s how I bring ideas to life,commit by commit✨🔥

Block or report barthez-kenwou

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
barthez-kenwou/README.md
Typing intro

Portfolio LinkedIn Email WhatsApp


Barthez Kenwou



Yaoundé, Cameroon · UTC+1


Profile Views

The Engineer Behind the Craft

« Le code n'est pas seulement ce que je fais — c'est comment je donne vie aux idées, commit après commit. »

Passionate Full Stack JS Developer & DevOps Engineer with 3+ years turning ambitious ideas into production-grade systems. I operate at the intersection of elegant code, cloud-native infrastructure, and reliable delivery.

+ CURRENTLY  → DevOps & Full Stack @ INTELEK · ZENORA
+ BUILDING   → NEXUS (SaaS ERP) · Kaza (PropTech + AI) · DevSecOps pipelines
+ TEACHING   → Full Stack & DevOps @ IT Engineering Factory / WorketYamo
+ AVAILABLE  → Freelance missions · Architecture consulting · Team mentoring
20+ projects shipped 99.9% uptime target
5+ certifications 85% trainee placement
engineer.yaml



Modern web & mobile experiences

React Next.js TypeScript
React Native PWA


APIs, automation & delivery

Node.js Express GraphQL
Docker GitHub Actions


Cloud, security & observability

AWS Kubernetes Terraform
Prometheus DevSecOps





▸ NEXUS — Modular SaaS ERP · In Development · CLICK TO EXPAND ▾




Challenge Approach Outcome
Fragmented, expensive tools poorly adapted to local markets Modular monolith (Turborepo) — pay-per-module SaaS with strict domain boundaries Restaurants build a custom ERP without vendor lock-in
Multi-tenant isolation at scale Tenant context layer + per-tenant module registry Secure data isolation across 10+ business modules
Local payment realities Unified payment hub (Mobile Money · Stripe · banking) Subscription billing aligned with Cameroon & international markets

System architecture — modular monolith on AWS

flowchart TB
    classDef accent fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef core fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef data fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph Clients["Client surfaces"]
        LP["SaaS Landing · SEO"]
        PWA["Restaurant PWA"]
        KDS["Kitchen Display"]
        STF["Staff · Admin portals"]
    end

    subgraph Nexus["NEXUS Core — Modular Monolith"]
        GW["API Gateway"]
        TC["Tenant Context"]
        subgraph Domains["Domain modules"]
            ORD["Orders"]
            INV["Inventory"]
            CRM["CRM"]
            POS["POS"]
            ACC["Accounting"]
        end
        BILL["Billing Engine"]
    end

    subgraph Platform["Data + Platform"]
        PG[("PostgreSQL")]
        RD[("Redis")]
        PAY["Payment Hub"]
    end

    subgraph Ops["AWS · DevOps"]
        CICD["GitHub Actions"]
        OBS["Monitoring · Observability"]
    end

    LP --> GW
    PWA --> GW
    KDS --> GW
    STF --> GW
    GW --> TC
    TC --> Domains
    Domains --> PG
    Domains --> RD
    BILL --> PAY
    CICD --> Nexus
    OBS --> Nexus

    class LP,PWA accent
    class GW,TC,BILL core
    class PG,RD,PAY data
Loading

Tenant onboarding & module activation

sequenceDiagram
    autonumber
    participant Owner as Restaurant Owner
    participant SaaS as NEXUS Platform
    participant Pay as Payment Hub
    participant Mod as Module Registry
    participant App as Tenant Workspace

    Owner->>SaaS: Register + pick modules
    SaaS->>Pay: Mobile Money / Stripe / Bank
    Pay-->>SaaS: Subscription confirmed
    SaaS->>Mod: Provision enabled modules
    Mod->>App: Spin up tenant context
    App-->>Owner: PWA ready — orders, stock, CRM live
Loading

Next.js Turborepo PostgreSQL AWS Docker



▸ Kaza — PropTech + AI Fraud Detection · In Development · CLICK TO EXPAND ▾




Challenge Approach Outcome
Rampant listing fraud & zero trust in local PropTech AI fraud pipeline — image analysis, price anomaly, behavior scoring ~70% moderation cost reduction target
Inefficient tenant–landlord matching Credit-based listing quality + advanced multi-filter search Higher signal-to-noise on every published ad
Low conversion on traditional portals Native WhatsApp handoff for direct contact Frictionless conversion on mobile-first market

Ecosystem architecture — web, mobile & AI services

flowchart LR
    classDef accent fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef ai fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef data fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph Apps["User-facing apps"]
        RN["React Native"]
        WEB["Next.js Web"]
        ADM["Admin Panel"]
    end

    subgraph Gateway["API layer"]
        GQL["GraphQL Gateway"]
        API["REST Services"]
    end

    subgraph Intel["Fraud Intelligence"]
        IMG["Image Authenticity"]
        PRC["Price Benchmark"]
        BEH["Behavior Signals"]
        SCR["Trust Score Engine"]
    end

    subgraph Store["Data platform"]
        PG[("PostgreSQL")]
        RD[("Redis")]
        SRCH["Search Index"]
    end

    subgraph Infra["Cloud · DevOps"]
        K8S["Kubernetes · AWS"]
        MON["Prometheus · Loki · Grafana"]
    end

    RN --> GQL
    WEB --> GQL
    ADM --> API
    GQL --> API
    API --> Intel
    IMG --> SCR
    PRC --> SCR
    BEH --> SCR
    API --> Store
    API --> K8S
    MON --> K8S

    class RN,WEB accent
    class IMG,PRC,BEH,SCR ai
    class PG,RD,SRCH data
Loading

AI fraud detection pipeline

flowchart TD
    classDef ok fill:#22C55E,stroke:#0F172A,color:#fff
    classDef warn fill:#F59E0B,stroke:#0F172A,color:#fff
    classDef bad fill:#EF4444,stroke:#0F172A,color:#fff

    A["New listing submitted"] --> B{Sufficient credits?}
    B -->|No| R1["Reject · request top-up"]
    B -->|Yes| C["AI moderation pipeline"]

    C --> D["Image authenticity check"]
    C --> E["Price vs. market benchmark"]
    C --> F["User behavior analysis"]

    D --> G{Aggregate risk score}
    E --> G
    F --> G

    G -->|Low risk| H["Publish listing"]
    H --> I["WhatsApp direct CTA"]
    G -->|Medium| J["Flag for manual review"]
    G -->|High| K["Block · alert ops team"]

    class H,I ok
    class J warn
    class K,R1 bad
Loading

React Native GraphQL Kubernetes PostgreSQL Prometheus



▸ GTA IT — Corporate PWA · CMS · Backoffice · Production · CLICK TO EXPAND ▾


gta-it.com



Challenge Approach Outcome
Weak online presence blocking partner access (Microsoft, PersonVue) Full PWA corporate platform + custom CMS backoffice Credibility restored for enterprise partnerships
Slow legacy site hurting SEO & recruitment SSR, dynamic meta tags, Lighthouse 98/100 performance +150% organic traffic in 3 months
Fragmented content & quote workflows Unified 3-tier architecture with Redis caching layer Load time under 1.2s · +40% application conversion

3-tier containerized architecture

flowchart TB
    classDef accent fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef core fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef ops fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph PWA["React PWA — gta-it.com"]
        CORP["Corporate pages"]
        BLOG["Blog · Newsletter"]
        PROJ["Project showcase"]
        CAREER["Careers hub"]
        QUOTE["Dynamic quote engine"]
    end

    subgraph API["Node.js · Express API"]
        CMS["CMS controllers"]
        AUTH["Auth · RBAC"]
        CACHE["Redis cache layer"]
    end

    subgraph DB["Persistence"]
        MONGO[("MongoDB · Prisma ORM")]
    end

    subgraph Prod["Production stack"]
        NGX["Nginx reverse proxy"]
        VPS["Hostinger VPS"]
        CICD["GitHub Actions CI/CD"]
    end

    PWA -->|REST API| API
    API --> CACHE
    API --> MONGO
    NGX --> PWA
    NGX --> API
    CICD --> VPS
    VPS --> NGX

    class CORP,BLOG,QUOTE accent
    class CMS,AUTH core
    class NGX,CICD ops
Loading

Content publishing workflow

sequenceDiagram
    autonumber
    participant Team as Marketing team
    participant BO as Custom backoffice
    participant API as Express API
    participant Cache as Redis
    participant Site as Public PWA

    Team->>BO: Create or update content
    BO->>API: Authenticated REST request
    API->>API: Validate schema · persist
    API->>Cache: Invalidate stale entries
    Site->>API: SSR fetch + dynamic meta
    API-->>Site: Fresh content
    Site-->>Team: Live on gta-it.com
Loading

React Node.js Prisma Redis Docker Nginx



▸ DevSecOps Supply Chain — Secure Software Supply Chain · Industrial CI/CD · Active · CLICK TO EXPAND ▾


View case study Pipeline source



Challenge Approach Outcome
Classic CI/CD ignores modern supply chain attacks (dependency poisoning, image tampering, secret leaks) Industrial DevSecOps platform — SLSA-aligned pipeline with SBOM, signing, policy gates ~60–70% reduction in critical production vulnerabilities
No artifact traceability across Node.js & Java microservices on VPS Syft SBOM + Grype/Trivy scans + Cosign/Sigstore verification via Harbor registry Compromised dependencies & unsigned images blocked automatically
Security scans slowing delivery without measurable DevOps KPIs Reusable composite actions, parallel jobs, caching + Prometheus/Grafana DORA metrics 10–20 builds/day · MTTR < 1h · change failure rate < 10%

Industrial DevSecOps pipeline — multi-environment supply chain

flowchart TB
    classDef dev fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef sec fill:#22C55E,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef gate fill:#F59E0B,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef prod fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph Dev["Developer workflow"]
        CODE["Node.js / Java repos"]
        PR["Pull Request"]
        PUSH["Merge to main"]
    end

    subgraph CI["GitHub Actions — build stage"]
        LINT["Lint · type check"]
        UNIT["Unit · integration tests"]
        SAST["SonarQube SAST"]
        SCA["Dependency SCA"]
        TRIVY["Trivy FS + image scan"]
    end

    subgraph Supply["Supply chain controls"]
        SBOM["Syft SBOM generation"]
        GRYPE["Grype vulnerability scan"]
        POLICY{"CVSS &gt; 7 or unsigned?"}
        SIGN["Cosign / Sigstore sign"]
        HARBOR["Harbor secure registry"]
    end

    subgraph Deploy["Multi-env deployment"]
        STG["Staging · DAST smoke"]
        GATE["Manual release gate"]
        PROD["Production VPS · zero downtime"]
        ROLL["Automated rollback"]
    end

    subgraph Ops["Observability"]
        PROM["Prometheus metrics"]
        GRAF["Grafana dashboards"]
        SLACK["Slack security alerts"]
    end

    CODE --> PR --> PUSH
    PUSH --> LINT --> UNIT --> SAST --> SCA --> TRIVY
    TRIVY --> SBOM --> GRYPE --> POLICY
    POLICY -->|Fail| BLOCK["Block build"]
    POLICY -->|Pass| SIGN --> HARBOR
    HARBOR --> STG --> GATE --> PROD
    PROD --> ROLL
    PROD --> PROM --> GRAF
    POLICY --> SLACK

    class CODE,PR,PUSH dev
    class SAST,SCA,TRIVY,SBOM,GRYPE,SIGN sec
    class GATE,POLICY gate
    class PROD,HARBOR prod
Loading

Security policy enforcement — threat model to release gate

flowchart TD
    classDef ok fill:#22C55E,stroke:#0F172A,color:#fff
    classDef warn fill:#F59E0B,stroke:#0F172A,color:#fff
    classDef bad fill:#EF4444,stroke:#0F172A,color:#fff

    A["Artifact produced"] --> B["Generate SBOM · Syft"]
    B --> C["Scan deps · Grype + SCA"]
    C --> D["Scan container · Trivy"]
    D --> E{"Critical CVE CVSS &gt; 7?"}
    E -->|Yes| F["Fail build · notify Slack"]
    E -->|No| G{"Image signed · Cosign?"}
    G -->|No| H["Block deploy · unsigned policy"]
    G -->|Yes| I["Push to Harbor registry"]
    I --> J["Staging deploy + DAST"]
    J --> K{"Smoke and security pass?"}
    K -->|No| L["Rollback staging"]
    K -->|Yes| M["Manual prod approval"]
    M --> N["Blue/green VPS deploy"]
    N --> O["Post-deploy SLO check"]

    class O,I ok
    class M,J warn
    class F,H,L bad
Loading

Signed artifact lifecycle — commit to production

sequenceDiagram
    autonumber
    participant Dev as Developer
    participant GHA as GitHub Actions
    participant SQ as SonarQube
    participant TV as Trivy / Grype
    participant SY as Syft + Cosign
    participant HR as Harbor Registry
    participant VPS as Production VPS
    participant OBS as Grafana / Slack

    Dev->>GHA: Push tagged release
    GHA->>SQ: SAST quality gate
    SQ-->>GHA: Pass / fail
    GHA->>TV: SCA + image vulnerability scan
    TV-->>GHA: CVE report
    GHA->>SY: Generate SBOM + sign artifact
    SY->>HR: Store signed image + provenance
    GHA->>VPS: Deploy to staging
    VPS-->>GHA: Health check OK
    GHA->>Dev: Manual production gate
    Dev->>GHA: Approve release
    GHA->>VPS: Zero-downtime rollout
    VPS->>OBS: DORA metrics + security event
    OBS-->>Dev: Deploy confirmed · MTTR tracked
Loading

GitHub Actions SonarQube Trivy Cosign Docker Prometheus Grafana Harbor



▸ Linux Server Hardening — Ubuntu Production Security · Multi-Layer Defense · Active · CLICK TO EXPAND ▾


View case study



Challenge Approach Outcome
Internet-exposed VPS vulnerable to brute force, scans & exploits Defense-in-depth hardening — SSH, kernel, firewall, WAF, IDS layers Drastically reduced attack surface · 99.9% uptime
No proactive blocking of automated intrusion attempts Fail2Ban + CrowdSec + UFW/iptables/CSF coordinated stack 100+ attack attempts blocked daily · auto-ban policies
Container workloads needed on a hardened host without compromising isolation Docker secured + sysctl kernel tuning + centralized logging & alerting Production-ready host for multi-app Docker deployments

Defense-in-depth architecture — multi-layer security stack

flowchart TB
    classDef edge fill:#F59E0B,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef net fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef host fill:#22C55E,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef app fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef obs fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph Edge["Layer 1 — Edge protection"]
        CF["Cloudflare CDN"]
        WAF["Cloudflare WAF"]
        DDoS["DDoS mitigation"]
    end

    subgraph Network["Layer 2 — Network perimeter"]
        UFW["UFW firewall"]
        IPT["iptables rules"]
        CSF["CSF policy engine"]
    end

    subgraph Intrusion["Layer 3 — Intrusion prevention"]
        F2B["Fail2Ban"]
        CRW["CrowdSec"]
        ALERT["Real-time alerts"]
    end

    subgraph Host["Layer 4 — Host hardening"]
        SSH["Hardened SSH · keys only"]
        SYS["sysctl kernel tuning"]
        PERM["Strict file permissions"]
        AUTO["Unattended security updates"]
    end

    subgraph Runtime["Layer 5 — Application runtime"]
        DOCK["Docker · secured daemon"]
        APPS["Production containers"]
        NGINX["Nginx reverse proxy"]
    end

    subgraph Monitor["Layer 6 — Monitoring"]
        LOGS["Centralized logs"]
        REP["Daily security reports"]
        NTP["NTP time sync"]
    end

    CF --> WAF --> DDoS --> UFW
    UFW --> IPT --> CSF
    CSF --> F2B
    CSF --> CRW
    F2B --> ALERT
    CRW --> ALERT
    UFW --> SSH --> SYS --> PERM --> AUTO
    AUTO --> DOCK --> APPS
    NGINX --> APPS
    APPS --> LOGS --> REP
    SYS --> NTP

    class CF,WAF,DDoS edge
    class UFW,IPT,CSF net
    class F2B,CRW,SSH,SYS host
    class DOCK,APPS,NGINX app
    class LOGS,REP,ALERT obs
Loading

Attack mitigation pipeline — inbound threat to block

flowchart LR
    classDef bad fill:#EF4444,stroke:#0F172A,color:#fff
    classDef check fill:#F59E0B,stroke:#0F172A,color:#fff
    classDef ok fill:#22C55E,stroke:#0F172A,color:#fff

    A["Inbound request"] --> B{"Cloudflare WAF match?"}
    B -->|Yes| X1["Block at edge"]
    B -->|No| C{"UFW / CSF allow?"}
    C -->|No| X2["Drop packet"]
    C -->|Yes| D{"SSH brute force?"}
    D -->|Yes| E["Fail2Ban ban IP"]
    D -->|No| F{"Scan pattern?"}
    F -->|Yes| G["CrowdSec decision"]
    G --> H["Community blocklist"]
    F -->|No| I["Allow to service"]
    I --> J["Log + monitor"]
    E --> J
    H --> J

    class X1,X2 bad
    class B,C,D,F,G check
    class I,J ok
Loading

SSH access hardening — authentication flow

sequenceDiagram
    autonumber
    participant Attacker as External actor
    participant CF as Cloudflare WAF
    participant FW as UFW CSF firewall
    participant F2B as Fail2Ban
    participant SSH as Hardened SSH
    participant SRV as Ubuntu server
    participant AL as Alert system

    Attacker->>CF: Connection attempt
    CF->>CF: WAF rule evaluation
    alt Malicious pattern detected
        CF-->>Attacker: Blocked at edge
        CF->>AL: WAF alert
    else Traffic allowed
        CF->>FW: Forward to origin
        FW->>FW: Port and IP policy check
        alt Access denied
            FW-->>Attacker: Connection refused
            FW->>F2B: Log failed attempt
            F2B->>AL: Ban threshold alert
        else Access permitted
            FW->>SSH: Handshake request
            SSH->>SSH: Key auth only no root login
            SSH-->>Attacker: Deny if invalid credentials
            SSH->>F2B: Increment fail counter
            SSH->>SRV: Grant limited session
            SRV->>AL: Login audit log
        end
    end
Loading

Ubuntu Cloudflare Docker Nginx Fail2Ban CrowdSec iptables



▸ INTELEK Odoo ERP — Cloud Infrastructure · Kubernetes · BTP · Production · CLICK TO EXPAND ▾


View case study Live ERP



Challenge Approach Outcome
BTP company (~15 staff) managing projects, finance & HR across fragmented tools Full Odoo ERP — 10+ core & OCA modules customized for construction workflows Single source of truth for all operations
No scalable, secure infrastructure for business-critical ERP data Kubernetes-orchestrated stack on hardened VPS · PostgreSQL persistence · Nginx ingress Production-ready platform with controlled access
Risk of data loss on containerized ERP without reliable backup strategy Automated external backups to MinIO object storage + restore validation Business continuity guaranteed · full operational traceability

Cloud ERP infrastructure — Kubernetes topology

flowchart TB
    classDef edge fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef k8s fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef data fill:#22C55E,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef ops fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph Users["INTELEK teams · ~15 users"]
        FIN["Finance"]
        PM["Project managers"]
        HR["HR · procurement"]
        SALES["Sales"]
    end

    subgraph Edge["Edge layer"]
        DNS["DNS · TLS"]
        NGX["Nginx reverse proxy"]
    end

    subgraph K8S["Kubernetes cluster · VPS"]
        ING["Ingress controller"]
        subgraph OdooStack["Odoo workload"]
            WEB["Odoo web pods"]
            WORK["Odoo workers"]
            CRON["Scheduled jobs"]
        end
        subgraph Modules["Business modules"]
            PROJ["Project management"]
            ACCT["Accounting"]
            STOCK["Inventory · purchases"]
            HRMOD["HR · payroll"]
        end
    end

    subgraph Data["Data platform"]
        PG[("PostgreSQL · persistent volume")]
        FILE["Filestore volume"]
        MINIO[("MinIO backups")]
    end

    subgraph Sec["Security and ops"]
        HARD["Server hardening"]
        BK["Backup automation"]
        MON["Health monitoring"]
    end

    Users --> DNS --> NGX --> ING
    ING --> WEB --> WORK
    WEB --> Modules
    WORK --> PG
    WEB --> FILE
    CRON --> PG
    PG --> BK --> MINIO
    HARD --> K8S
    MON --> K8S

    class FIN,PM,HR,SALES edge
    class WEB,WORK,CRON,Modules k8s
    class PG,FILE,MINIO data
    class HARD,BK,MON ops
Loading

Odoo business modules — construction company workflows

flowchart LR
    classDef mod fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef flow fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px

    A["New BTP project"] --> B["Project module"]
    B --> C["Budget and planning"]
    C --> D["Procurement · purchases"]
    D --> E["Inventory · stock"]
    E --> F["Invoicing · accounting"]
    F --> G["HR · timesheets"]
    G --> H["Reporting · dashboards"]
    B --> I["Sales · CRM pipeline"]
    I --> D

    class B,C,D,E,F,G,I mod
    class A,H flow
Loading

Backup & disaster recovery workflow

sequenceDiagram
    autonumber
    participant Odoo as Odoo application
    participant PG as PostgreSQL
    participant FS as Filestore volume
    participant Job as Backup cron job
    participant MIN as MinIO object storage
    participant OPS as DevOps operator

    Odoo->>PG: Transactional writes
    Odoo->>FS: Attachments and documents
    Job->>PG: pg_dump snapshot
    Job->>FS: Archive filestore
    Job->>MIN: Upload encrypted backup
    MIN-->>Job: Storage confirmation
    Job->>OPS: Success notification
    alt Restore drill
        OPS->>MIN: Fetch backup artifact
        MIN->>PG: Restore database
        MIN->>FS: Restore files
        PG-->>Odoo: Service validated
    end
Loading

Odoo Kubernetes PostgreSQL Docker MinIO Nginx Python




Frontend & Mobile

React Next.js TypeScript Tailwind React Native Framer Motion Zustand

Backend & Data

Node.js Express FastAPI PostgreSQL MongoDB Redis Prisma

Cloud · DevOps · DevSecOps

AWS Docker Kubernetes Terraform GitHub Actions Prometheus Grafana Nginx

Architecture & Practices

Microservices Modular Monolith DDD CI/CD IaC SLO/SLI SBOM Zero Downtime FinOps Agile/Scrum






Pillar What it guarantees
Security WAF · TLS · JWT/RBAC · rate limiting · secret management · DevSecOps scans
Performance CDN edge cache · Redis + NodeCache · compression · clustering · Lighthouse 95+
Reliability Health checks · zero-downtime deploys · SLO/SLI · automated rollback
Observability Prometheus metrics · Loki logs · Grafana dashboards · Alertmanager

Full-stack reference architecture — layered system design

flowchart TB
    classDef client fill:#3B82F6,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef edge fill:#22C55E,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef fe fill:#FF6B35,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef be fill:#7C3AED,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef data fill:#4169E1,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef ops fill:#E6522C,stroke:#0F172A,color:#fff,stroke-width:2px

    subgraph L1["01 · CLIENT LAYER"]
        USR["Users"]
        WEB["Web Browsers"]
        MOB["Mobile · React Native"]
        DESK["Desktop · PWA"]
        USR --> WEB
        USR --> MOB
        USR --> DESK
    end

    subgraph L2["02 · EDGE LAYER"]
        CF["Cloudflare CDN"]
        WAF["Cloudflare WAF"]
        DDoS["DDoS Protection"]
        NGX["Nginx Reverse Proxy"]
        TLS["TLS Termination · HTTP/2"]
        CF --> WAF
        WAF --> DDoS
        DDoS --> NGX
        NGX --> TLS
    end

    subgraph L3["03 · FRONTEND APPLICATION"]
        NEXT["React · Next.js"]
        TS["TypeScript"]
        UI["Tailwind · shadcn/ui"]
        SEO["SEO Booster · SSR · Meta"]
        STATE["Zustand · State Mgmt"]
        PWA["PWA · Service Worker"]
        UX["Framer Motion · UX"]
        NEXT --> TS
        NEXT --> UI
        NEXT --> SEO
        NEXT --> STATE
        NEXT --> PWA
        NEXT --> UX
    end

    subgraph L4["04 · BACKEND APPLICATION"]
        NODE["Node.js · Express"]
        API["REST · GraphQL APIs"]
        AUTH["JWT · RBAC · Helmet"]
        RATE["Rate Limit · CORS · Validation"]
        PERF["Performance Layer"]
        CLU["Clustering · Worker Threads"]
        LINT["ESLint · Prettier · Best Practices"]
        C1["Redis Cache · L2"]
        C2["NodeCache · L1"]
        NODE --> API
        NODE --> AUTH
        AUTH --> RATE
        NODE --> PERF
        PERF --> CLU
        PERF --> LINT
        API --> C1
        API --> C2
    end

    subgraph L5["05 · DATA LAYER"]
        ORM["Prisma · Mongoose ORM"]
        PG[("PostgreSQL")]
        MG[("MongoDB")]
        S3["AWS S3 · Object Storage"]
        BKP["Automated Backups"]
        ORM --> PG
        ORM --> MG
        S3 --> BKP
    end

    subgraph L6["06 · DEVOPS · PLATFORM"]
        GHA["GitHub Actions CI/CD"]
        DOCK["Docker · Multi-stage Builds"]
        K8S["Kubernetes · AWS EKS/ECS"]
        TF["Terraform · IaC"]
        PROM["Prometheus Metrics"]
        LOKI["Loki · Centralized Logs"]
        GRAF["Grafana Dashboards"]
        ALT["Alertmanager · PagerDuty"]
        SNYK["Snyk · SBOM · SAST"]
        DEP["Blue/Green · Rolling Deploy"]
        GHA --> DOCK
        DOCK --> K8S
        TF --> K8S
        GHA --> SNYK
        K8S --> DEP
        PROM --> GRAF
        LOKI --> GRAF
        ALT --> GRAF
    end

    L1 --> L2
    L2 --> L3
    L3 -->|HTTPS / API| L4
    L4 --> L5
    L6 -.->|deploy + monitor| L3
    L6 -.->|deploy + monitor| L4
    L6 -.->|deploy + monitor| L5

    class USR,WEB,MOB,DESK client
    class CF,WAF,DDoS,NGX,TLS edge
    class NEXT,TS,UI,SEO,STATE,PWA,UX fe
    class NODE,API,AUTH,RATE,PERF,CLU,LINT,C1,C2 be
    class ORM,PG,MG,S3,BKP data
    class GHA,DOCK,K8S,TF,PROM,LOKI,GRAF,ALT,SNYK,DEP ops
Loading

CI/CD delivery pipeline — commit to production

flowchart LR
    classDef step fill:#2088FF,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef gate fill:#22C55E,stroke:#0F172A,color:#fff,stroke-width:2px
    classDef warn fill:#F59E0B,stroke:#0F172A,color:#fff,stroke-width:2px

    PUSH["Git Push / PR"] --> LINT["Lint · Type Check"]
    LINT --> UNIT["Unit · Integration Tests"]
    UNIT --> E2E["Cypress E2E"]
    E2E --> SEC["SAST · SBOM · Snyk"]
    SEC --> BUILD["Docker Build · Scan"]
    BUILD --> STG["Staging Deploy"]
    STG --> SMOKE["Smoke · Load Tests"]
    SMOKE --> PROD["Production Deploy"]
    PROD --> SLO["SLO · Error Rate Check"]
    SLO --> OBS["Metrics · Logs · Alerts"]

    class PUSH,LINT,UNIT,E2E,BUILD step
    class SEC gate
    class STG,SMOKE,PROD,SLO,OBS warn
Loading

Request lifecycle — user hit to data response

sequenceDiagram
    autonumber
    participant U as User Device
    participant E as Edge CDN + WAF
    participant F as Next.js Frontend
    participant B as Express API
    participant C as Redis / NodeCache
    participant D as PostgreSQL / MongoDB
    participant O as Observability Stack

    U->>E: HTTPS request
    E->>E: WAF rules · DDoS filter · cache check
    E->>F: Forward (cache miss)
    F->>F: SSR · SEO meta · hydration
    F->>B: API call (JWT attached)
    B->>B: Auth · rate limit · validation
    B->>C: Cache lookup
    alt Cache hit
        C-->>B: Cached payload
    else Cache miss
        B->>D: Query via ORM
        D-->>B: Data result
        B->>C: Write-through cache
    end
    B-->>F: JSON response
    F-->>U: Rendered UI
    B->>O: Trace · metrics · structured logs
Loading

Cloudflare Nginx Next.js TypeScript Zustand Node.js Redis PostgreSQL MongoDB AWS S3 Docker Kubernetes GitHub Actions Prometheus Grafana


◈ THE ENGINEERING LOOP ◈

IDEATE arrow DESIGN arrow DEVELOP arrow TEST arrow DEPLOY arrow OBSERVE arrow ITERATE






Activity Graph Contribution Snake

GitHub Stats Streak Stats Top Languages


Trophies


CI CD WITH GITHUB ACTIONS   MICROSERVICES DOCKER K8S   DEVSECOPS IN PRACTICE


Read all articles


Technical & non-technical audiences

Mentoring · code review · delivery

Fast learner · problem solver

Curiosity · innovation · excellence





AWS Cloud Architecture
Multi-AZ design · migration · FinOps · serverless · 99.99% HA

from 500 EUR

DevOps & CI/CD
Pipelines · Docker/K8s · Terraform · monitoring · DevSecOps

from 400 EUR

Full Stack Development
React/Next.js · TypeScript · APIs · databases · automated tests

from 300 EUR

Audit & Security
AWS audit · pentest · GDPR/SOC2 · action plan · team training

from 600 EUR

Performance Optimization
Profiling · DB tuning · Redis/CDN · auto-scaling · frontend bundle

from 350 EUR

Consulting & Training
Architecture reviews · AWS workshops · CI/CD coaching · mentoring

from 100 EUR/h

Get a quote   WhatsApp   Full services page

Open to freelance missions, cloud architecture, full-stack products, and DevOps transformations.

Portfolio Blog GitHub Repos




Random inspirational dev quote

Pinned Loading

  1. ZENORA-360/zenora360 ZENORA-360/zenora360 Public

    Official Website of ZENORA

    TypeScript

  2. backend-init backend-init Public

    backend project template

    TypeScript 1

  3. elk-docker elk-docker Public template

    Forked from sherifabdlnaby/elastdocker

    🐳 Elastic Stack (ELK) v8+ on Docker with Compose. Pre-configured out of the box to enable Logging, Metrics, APM, Alerting, ML, and SIEM features. Up with a Single Command.

    Dockerfile

  4. Manage-Employee Manage-Employee Public

    L'entreprise WORKETYAMO a remarqué une perte significative de productivité et une augmentation des coups liées qux heures d'abscences non justifiés des employés. Pour remedier à cette situation, la…

    TypeScript 1

  5. Formation-Devops-DonaldProgrammeur Formation-Devops-DonaldProgrammeur Public

    Forked from donaldte/Formation-Devops

    Formation DevOps DevOps avec Linux, Shell, Git/GitHub, AWS et CI/CD, Jenkins, Terraform, K8s, Ansible, ArgoCD, Projet, Helm, Operator

    Python 1 2