Vai al contenuto

EnricoVadilonga

>

Prodotti web full-stack in TypeScript.
Sistemi distribuiti, geospatial e protocolli C2 militari in Rust.

Esplora i progetti

§2

About

Engineer specializzato in sistemi distribuiti e prodotti web full-stack. Dai protocolli militari al real-time peer-to-peer, dal pathfinding tattico al multi-client SaaS.

enrico@portfolio
Expertise

    §3

    Sistemi C2

    Quattro componenti. Un sistema integrato in Rust che parla JDSS e DIS v7.

    Ermes

    Event Ingress + Inject Gateway

    RUSTTOKIOASYNCJDSSDIS v7

    Il portale d'ingresso/uscita del sistema C2. Riceve traffico militare grezzo via UDP unicast e multicast, lo valida, normalizza e distribuisce a downstream consumers via broadcast bus e TCP push. Espone una pipeline TCP ingest che accetta inject XML da componenti interni e li inoltra UDP ai partner whitelisted.

    • 7+ crates modulari indipendenti
    • Pipelines configurabili via YAML
    • Backpressure-aware (MPSC bounded)
    • 44 PDU types DIS v7
    • Whitelist partner per inject UDP
    • Session replay tramite Message Recorder
    Ingress
    UDP :9000
    Push
    TCP :9100
    Ingest
    TCP :9200

    Atlante

    Recorder + Tactical REST API

    RUSTSQLITETOKIOAXUMDIS v7

    La memoria del sistema. Si connette al TCP push di Ermes, converte messaggi JDSS in PDU DIS v7 e li persiste in un database SQLite con gestione sessioni e REPL SQL interattivo. Sopra il DB, un secondo binario espone una REST API (Axum) che fornisce stato tattico in tempo reale ad Arianna.

    • 3 crates: jdss-dis (lib) · recorder · api
    • WGS-84 ↔ ECEF (NIMA TR8350.2, no lib)
    • Session resume con entity mapping warm-load
    • Trait-based EntityResolver (swap impl)
    • Interactive SQL REPL + --query mode
    • API serve direttamente Arianna in lettura
    API
    :8081
    Tabelle
    13
    PDU types
    5+

    Arianna

    Tactical Pathfinding Engine

    RUSTAXUMGDALRAYONA*

    Il cervello tattico. Calcola percorsi ottimali per asset terrestri, aerei, marittimi e sottomarini su terreno geospaziale reale, tenendo conto di elevazione, minacce, meteo, copertura sensori e zone vietate. Lo stato tattico viene letto esclusivamente dalla REST API di Atlante: nessuna duplicazione di stato.

    • 4-layer cost model (slope · terrain · threat · obstacles)
    • LOS-aware threat map (Bresenham)
    • Grid assembly 2.8× speedup (Rayon)
    • Copernicus GLO-30 DEM · ESA WorldCover
    • OSM buildings/roads (Geofabrik)
    • Target latency < 1s per request
    500k celle
    108 ms
    1M celle
    10 ms
    API
    :8000

    Latacc

    JDSS IEM Tactical Node

    RUSTTOKIOAEP-76JDSS IEMREPATH

    La voce tattica del nodo. Incarna una singola unità sul campo (es. ROMEO1) e parla JDSS IEM (AEP-76 / ADatP-36A) coi partner di rete. Si connette ad Ermes su due canali, orchestra il ciclo REPATH end-to-end con Atlante e Arianna, e gestisce lo stato (HeartBeat, Presence, Sync).

    • GatewayID fisso · SessionID rinnovato a ogni avvio
    • Identità tattica (OID + callsign) configurabile
    • Auto-reconnect ai canali Ermes con backoff
    • Handler per Presence · Identification · Overlay · GenInfo · Sync
    • REPATH cycle: partner → latacc → arianna → partner
    • Glue layer end-to-end del sistema C2
    HeartBeat
    30s
    Presence
    30s
    Protocol
    AEP-76

    §4

    Progetti

    Dal codice al prodotto. Lato civile dello stack: full-stack, real-time, multi-client.

    Live standingsR18
    #1Marco R.18
    #2Anna B.15
    #3Luca M.12
    #4Giulia P.10
    #5Davide T.8

    Organizza un Torneo

    Tournament Management Platform

    • Admin WebAngular 19
    • User WebNext.js 15
    • Mobile AppFlutter
    Angular 19Next.js 15FlutterSupabaseDeno

    Piattaforma full-stack per la gestione completa di tornei, distribuita su tre client + un layer serverless condiviso. Dashboard Angular per gli organizzatori, esperienza pubblica Next.js per chi non vuole installare la mobile, app Flutter companion per i partecipanti, backend Supabase + Deno Edge Functions condiviso da tutti e tre i client.

    • Bracket visualization (ngx-graph + leader-line)
    • Real-time state sincronizzato su tutti i client
    • Push notifications mobile (Flutter + FCM via Supabase fn)
    • Analytics dashboard lato admin (ApexCharts)
    • PDF export brackets / risultati (pdfmake)
    • Auth unificata Supabase su tutti i client
    ● REC
    Ch · 01

    Walkie-Talkie

    Live Voice Translation · 11 Languages · NextV

    Next.js 15LiveKitAzure SpeechAzure TTSWebRTCSupabase

    Piattaforma di traduzione vocale live con 11 lingue. Azure Speech Translation trascrive e traduce in tempo reale (1 WebSocket, N lingue simultanee), Azure Neural TTS sintetizza l'audio tradotto con rate SSML adattivo al backlog, LiveKit SFU distribuisce l'audio sintetizzato a tutti i listener. Costo STT+TTS fisso per frase, indipendente dal numero di ascoltatori.

    • Azure Speech Translation: 1 WebSocket, N lingue in contemporanea
    • Azure Neural TTS con rate SSML adattivo al backlog (natural/balanced/aggressive)
    • LiveKit SFU distribuisce l'audio TTS: costo STT+TTS fisso per frase
    • Sottotitoli sincronizzati alla durata TTS effettiva
    • AudioWorklet custom: PCM Float32→Int16 @ 16kHz per Azure Speech
    • Background audio mobile: WakeLock + Media Session + silence loop

    §5

    Stack

    Le tecnologie che uso, mappate per co-occorrenza tra i progetti.

    • Frontend

      • TypeScript3 progetti

        Organizza un Torneo · Walkie-Talkie · Portfolio

      • Next.js3 progetti

        Organizza un Torneo · Walkie-Talkie · Portfolio

      • React3 progetti

        Organizza un Torneo · Walkie-Talkie · Portfolio

      • Angular1 progetto

        Organizza un Torneo

      • Flutter1 progetto

        Organizza un Torneo

      • Tailwind1 progetto

        Portfolio

    • Backend

      • Supabase2 progetti

        Organizza un Torneo · Walkie-Talkie

      • Deno1 progetto

        Organizza un Torneo

    • Real-time

      • LiveKit1 progetto

        Walkie-Talkie

      • WebRTC1 progetto

        Walkie-Talkie

      • Azure Speech1 progetto

        Walkie-Talkie

      • Azure TTS1 progetto

        Walkie-Talkie

    • Data

      • SQLite1 progetto

        Atlante

      • PostgreSQL2 progetti

        Organizza un Torneo · Walkie-Talkie

    • Rust ecosystem

      • Rust4 progetti

        Ermes · Atlante · Arianna · Latacc

      • Tokio3 progetti

        Ermes · Atlante · Latacc

      • Axum2 progetti

        Atlante · Arianna

      • Rayon1 progetto

        Arianna

      • GDAL1 progetto

        Arianna

    §6

    Contact

    Enrico Vadilonga · octode.org@gmail.com

    contact://transmission
    ~/portfolio $echo "Hai un progetto in mente?"
    >Lasciami due righe e ti rispondo presto.

    Octode