Lavori di ingegneria del software da Lokad

Stiamo crescendo e, più che mai, stiamo assumendo talentuosi ingegneri del software. Lokad si trova ad affrontare un notevole insieme di sfide tecnologiche. Così, quando gli ingegneri ci chiedono “Cosa farò da Lokad?”, possiamo rispondere “Cosa ti piacerebbe fare con noi?”. Diamo un rapido sguardo alle principali aree funzionali della piattaforma di Lokad. Se ti candidi da Lokad, facci sapere dove risiedono i tuoi interessi.

Interessato a Lokad? Le posizioni remote sono benvenute.

Candidati inviando il tuo curriculum a contact@lokad.com.

software-engineering-social

La missione (la prospettiva di un ingegnere)

Supply chains rimangono sprecone e inefficienti. Stiamo parlando di circa il 15% dell’economia mondiale: le supply chains sono vaste e miglioramenti a due cifre sono ancora possibili. Vogliamo mettere le supply chains in autopilota AI, offrendo prestazioni superiori a quelle umane nel farlo.

Le Basi

La nostra base di codice è C# / F# / TypeScript / .NET. Usiamo Git e Visual Studio. Lokad è ospitato su Microsoft Azure. Siamo in gran parte agnostici rispetto al sistema operativo e operiamo con .NET Core e Linux. Abbiamo migliaia di test unitari e un robusto sistema di integrazione continua end-to-end, che ci permette di ridistribuire tutto con un solo clic.

Otteniamo 12/12 al Joel Test ma con alcune variazioni che riteniamo superiori (tieni presente che questo test è stato scritto 20 anni fa).

I nuovi candidati scrivono codice durante il colloquio? Sì, ma chiediamo anche ai candidati fin da subito di inviarci un pezzo di codice notevole scelto da loro, scritto ovviamente dal candidato. Successivamente, dedichiamo una parte del colloquio a mettere in discussione il candidato su questo pezzo di codice.

Fate dei test di usabilità in corridoio? Questo funziona sicuramente quando sviluppi un’app web. Per quanto riguarda la progettazione di un compilatore e di una pipeline di dati per deep learning, beh, non proprio. Tuttavia, utilizziamo massicciamente i nostri stessi strumenti, poiché i nostri Supply Chain Scientists risultano essere gli utenti più attivi di Lokad.

Event sourcing

Stanco di sviluppare applicazioni CRUD accoppiate a database SQL? Se non lo sei, lo dovresti essere. L’event sourcing rappresenta un’alternativa superiore in praticamente ogni aspetto. È più semplice da mantenere, più scalabile, più sicuro. L’unico svantaggio principale resta la scarsa familiarità della comunità software con questo approccio. Il cuore di Lokad è interamente costruito sopra l’event sourcing e non utilizziamo database SQL.

Se vuoi imparare a creare app cloud basate su principi moderni, unisciti a noi.

Livello di archiviazione

Abbiamo organizzato tutti i dati dei nostri clienti come una sorta di repository Git; tranne il fatto che alcuni clienti stanno inviando file di dimensioni fino a 100GB per file. Ovviamente, non utilizziamo un vero back-end Git, ma abbiamo sviluppato il nostro strato di storage sopra il Blob Storage di Microsoft Azure.

Avere uno strato di storage simile a Git è importante per l’affidabilità e la riproducibilità. Inviare file flat giganormosi a Lokad richiede tempo. Non vuoi esporre i tuoi clienti al rischio di elaborare un file flat parzialmente scritto (o sovrascritto). Grazie a una semantica simile a Git, un file è o presente o assente; nessuno stato non sicuro del file viene mai esposto al resto di Lokad.

Se ami i Big Data, questo è il posto giusto.

Compilatore, front e back

Envision è il nostro home-grown DSL. Viene utilizzato intensivamente dal team di [Supply Chain Scientists]. Questo linguaggio è semplice eppure garantisce una produttività straordinaria quando si affrontano sfide di ottimizzazione della supply chain. In sostanza, Lokad è una piattaforma progettata per creare ed eseguire script Envision.

Poiché l’intera base di codice di Envision vive all’interno della piattaforma di Lokad, abbiamo l’opportunità di riscrivere automaticamente gli script esistenti man mano che il linguaggio evolve. Così, non viviamo per sempre con ogni singolo errore di progettazione che abbiamo commesso. Riscriviamo e andiamo avanti. Per un ingegnere di compilatori, ciò rappresenta l’opportunità di lavorare a un ritmo incredibilmente veloce.

Hai competenze avanzate in materia di compilatori? Abbiamo bisogno di te.

Griglia di calcolo

Il nostro compilatore non mira a una singola macchina, ma a un cloud. Envision è stato progettato per il parallelismo su larga scala. Abbiamo sviluppato la nostra griglia di calcolo, in qualche modo simile a Spark. Eppure, sfruttando i modelli di dati della supply chain, riusciamo frequentemente a ottenere un’accelerazione da 10x a 100x rispetto agli approcci generici, a parità di risorse di calcolo.

Sfruttare appieno un cloud di macchine rappresenta un paradigma che ne cambia le regole. Il calcolo distribuito è difficile ma anche i sistemi embedded probabilmente diventeranno sistemi distribuiti in futuro. Vogliamo che Lokad sia in grado di scalare per le supply chains più grandi e ciò richiederà un computing massivamente distribuito.

Forse conosci Spark, ma sei capace di costruirne uno migliore? Se sì, unisciti a noi.

Apprendimento automatico

La previsione è una pietra angolare nell’ottimizzazione della supply chain. Il nostro motore di previsione più recente è già stato realizzato basandosi sulla differentiable programming, che può essere considerata una discendente del deep learning. A volte utilizziamo i “classici” del deep learning. Tuttavia, i nostri casi d’uso sono radicalmente diversi. Mentre la stragrande maggioranza della community del deep learning si concentra su media (immagini, testo, suoni), noi ci focalizziamo sui dati della supply chain.

Il deep learning da Lokad non riguarda la manipolazione dei dati con l’ultimo toolkit open source di moda. Si tratta di rivedere le fondamenta dell’apprendimento statistico per offrire risultati superiori a un’intera industria. Le nostre sfide consistono nell’inventare nuovi algoritmi, sviluppando i nostri primitivi ogni volta che è necessario.

Forse conosci TensorFlow, ma sei capace di costruire un TensorFlow migliore? Se sì, unisciti a noi.

Solver e altri algoritmi

L’ottimizzazione della supply chain comporta, beh, parecchi algoritmi di ottimizzazione. La maggior parte di questi problemi potrebbe essere definita come problemi di programmazione intera, tuttavia, nella supply chain ci troviamo regolarmente a dover affrontare situazioni con milioni di variabili. Gli approcci tradizionali branch-and-bound risultano alquanto deludenti per affrontare tali situazioni, perciò abbiamo sviluppato i nostri solver specializzati.

Sebbene le nostre capacità di ottimizzazione siano ancora agli inizi, solver potenti capaci di elaborare variabili stocastiche, previsioni probabilistiche e altro ancora fanno parte della nostra roadmap. Vogliamo essere in grado di scalare fino a problemi che coinvolgono decine di milioni di variabili e decine di milioni di vincoli. Questo sarà necessario per rispondere alle esigenze delle supply chains più grandi.

Ti piacciono algoritmi complessi. Pensi che la performance sia una caratteristica. Anche noi. Unisciti a noi.

Dashboard componibili

È facile progettare una dashboard dall’aspetto gradevole se puoi impostare la dimensione di ciascuna tessera e avere dataset scelti appositamente per essere belli. Tuttavia, Envision permette agli utenti finali di generare programmaticamente dashboard che contengono molti tipi di tessere (grafici, tabelle, KPI, ecc.) con dimensioni e posizioni arbitrarie e che mostrano dati reali, con tutte le sue imperfezioni, valori anomali e casi limite, eppure devono mantenere un aspetto gradevole.

Abbiamo già detto che le nostre dashboard sono veloci? Lo sono. Normalmente vengono renderizzate sul lato client in meno di 500ms anche in presenza di dashboard complesse. Creare dashboard dall’aspetto gradevole ma anche pratiche è difficile, per non dire altro. Abbiamo già predisposto un’infrastruttura in grado di garantire queste prestazioni, ma abbiamo ancora molta strada da fare per sfruttarla al meglio.

Sei capace di risolvere il nostro meta problema di design? Unisciti a noi.

Mashup e integrazioni

L’ottimizzazione della supply chain non è nulla senza dati. Sempre più, l’intera supply chain vive nel cloud. Applicazioni come ERP / WMS / OMS sono anch’esse SaaS proprio come Lokad. Attraverso le loro API, queste applicazioni espongono dati critici per realizzare la missione di Lokad. Di conseguenza, Lokad deve supportare un ecosistema in crescita di integrazioni.

Integrare dati di terze parti può essere visto come semplice collegamento di tubature. Eppure, farlo correttamente è solitamente una sfida. Dobbiamo recuperare l’intera cronologia dei dati in modo che sia sia incrementale che affidabile. Dobbiamo gestire molte modalità di fallimento. È inutile incolpare le applicazioni per non raggiungere il 100% di uptime, nessuno lo fa. Invece, elaboriamo strategie per sfruttare al meglio il tempo di attività che ci viene concesso.

Vuoi socializzare con metà dell’ecosistema del software B2B? Unisciti a noi.