Fly.io cerca una figura di networking engineer per la squadra che si occupa di fly-proxy e di Corrosion, cioè del pezzo di piattaforma che decide come le richieste di tutto il mondo raggiungono la micro-VM giusta. È una posizione di livello intermedio.
Ruolo
fly-proxy gira sia sugli host di frontiera esposti verso l'esterno sia sui worker interni, e costruisce al volo trasporti HTTP2 multiplexati sopra una mesh WireGuard interna per spostare le richieste. Gestisce TCP grezzo oltre a HTTP e WebSocket, bilancia il traffico fra le istanze di ogni applicazione, configura HTTPS in automatico ottenendo i certificati con la sfida ALPN di Let's Encrypt, isola il budget di concorrenza di ciascuna applicazione perché una molto attiva non affami le vicine, e nel frattempo raccoglie metriche per applicazione. Corrosion è il database distribuito che tiene eventualmente consistente, fra nodi sparsi sul pianeta, la fotografia sempre aggiornata di dove gira ogni VM: è il punto in cui la crescita della flotta si fa sentire per primo, perché più macchine ci sono e più in fretta si ricambiano, più il problema diventa difficile. Sotto c'è ancora il BGP, la cui infrastruttura è responsabilità della stessa squadra. Si passa quindi fra livelli di astrazione molto distanti a seconda della giornata, su un sistema sempre acceso che non può permettersi che un guasto porti giù l'intera piattaforma. Serve chiarezza nel ragionare sui compromessi, anche perché il proxy porta con sé un debito tecnico che viene ridotto un pezzo alla volta mentre la base utenti cresce in fretta, e serve una sensibilità operativa: tenere in piedi il lato networking conta quanto il codice, se non di più. La selezione non passa da curriculum e colloqui ma da prove di lavoro reali.
Tecnologie
Rust è il linguaggio centrale della posizione, con Tokio, Hyper e Tower alla base del proxy. Attorno ci sono micro-VM Firecracker, container Docker, reti Anycast e BGP, WireGuard, HTTP2, TCP e WebSocket, load balancing L7 e sistemi distribuiti con macchine a stati e invarianti che attraversano continenti, Postgres distribuito compreso. Sul resto della piattaforma girano anche Go per l'orchestrazione ed Elixir sul control plane.
Condividi annuncio
Informazioni su Fly.io
Fly.io è una piattaforma che trasforma i container Docker in micro-VM Firecracker eseguite su hardware di proprietà dell'azienda distribuito in tutto il mondo. Ogni macchina è collegata a una rete Anycast globale che raccoglie le richieste da qualunque punto del pianeta e le instrada verso la VM più vicina a chi le ha generate. L'obiettivo è far girare le applicazioni accanto agli utenti invece che in una singola regione lontana, e oggi migliaia di clienti ci mandano in produzione i propri carichi di lavoro. Sulla stessa piattaforma l'azienda sta costruendo quelli che chiama computer per agenti: macchine reali, isolate, veloci da avviare e usa e getta, che si possono accendere a migliaia e spegnere subito dopo.
La parte tecnica ruota attorno a due linguaggi di sistema. Go regge l'orchestrazione, cioè la conversione delle immagini Docker e il provisioning delle VM, mentre Rust regge il networking: fly-proxy, il proxy Anycast, e Corrosion, il database distribuito che tiene aggiornata la mappa globale di dove gira ogni macchina. Elixir copre una fetta significativa del control plane e dei servizi rivolti ai clienti. Diversi di questi componenti sono open source. Anche il processo di selezione è fuori dagli schemi: niente curriculum e niente colloqui tradizionali, ma prove di lavoro reali costruite sul codice e sui problemi di cui l'azienda si occupa davvero, che non fanno da filtro preliminare ma sono la spina dorsale dell'intero processo.
