Lavori di Ingegneria del Software presso Lokad

Stiamo crescendo e, più che mai, stiamo assumendo ingegneri software di talento. Lokad sta affrontando un impressionante insieme di sfide tecniche. Pertanto, quando gli ingegneri ci chiedono cosa farò presso Lokad?, possiamo restituire la domanda con cosa vorresti fare con noi?. Facciamo una rapida panoramica delle principali aree funzionali della piattaforma Lokad. Se ti candidi presso Lokad, facci sapere dove si trovano 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 (dal punto di vista di un ingegnere)

Le catene di approvvigionamento rimangono inefficienti e sprecone. Stiamo parlando di circa il 15% dell’economia mondiale: le catene di approvvigionamento sono vaste e miglioramenti a due cifre rimangono possibili. Vogliamo mettere le catene di approvvigionamento in pilota automatico AI e offrire prestazioni superiori a quelle umane nel farlo.

Le Basi

Il nostro codice è C# / F# / TypeScript / .NET. Utilizziamo Git e Visual Studio. Lokad è ospitato su Microsoft Azure. Siamo per lo più agnostici del sistema operativo e operiamo con .NET Core e Linux. Abbiamo migliaia di test unitari e un’robusta integrazione continua end-to-end, dove possiamo ridistribuire tutto con un solo clic.

Otteniamo un punteggio di 12/12 nel 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 di inviarci un pezzo di codice notevole a loro scelta, scritto ovviamente dal candidato. Quindi, dedichiamo una parte del colloquio a sfidare il candidato su questo pezzo di codice.

Fai test di usabilità nel corridoio? Questo funziona sicuramente quando si sviluppa un’app web. Quando si tratta del design di un compilatore e di un flusso di dati di deep learning, beh, non così tanto. Tuttavia, utilizziamo massicciamente i nostri stessi strumenti, poiché i nostri stessi scienziati delle catene di approvvigionamento sono gli utenti Lokad più attivi.

Event sourcing

Stufo di sviluppare app CRUD accoppiate con database SQL? Se non lo sei, dovresti esserlo. L’event sourcing rappresenta un’alternativa superiore in praticamente ogni aspetto. È più facile da mantenere, più scalabile, più sicuro. L’unico svantaggio principale rimane la mancanza di familiarità della comunità di sviluppatori con questo approccio. Il core di Lokad è interamente basato sull’event sourcing e non abbiamo database SQL al suo interno.

Se vuoi imparare come 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 che alcuni clienti stanno inviando file grandi come 100 GB per file. Ovviamente, non stiamo utilizzando un backend Git effettivo, abbiamo sviluppato il nostro livello di archiviazione su Blob Storage di Microsoft Azure.

Avere un livello di archiviazione simile a Git è importante per l’affidabilità e la riproducibilità. Inviare file piatti giganteschi a Lokad richiede tempo. Non si desidera esporre i propri clienti al rischio di elaborare un file piatto scritto a metà (o sovrascritto). Attraverso la semantica simile a Git, un file è o c’è o non c’è; nessuno stato insicuro del file viene mai esposto al resto di Lokad.

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

Compilatore, front-end e back-end

Envision è il nostro DSL sviluppato internamente. Viene utilizzato intensivamente dal team di Supply Chain Scientist. Questo linguaggio è semplice eppure offre una produttività enorme quando si affrontano sfide di ottimizzazione della supply chain. Nel complesso, Lokad è una piattaforma progettata per creare ed eseguire script Envision.

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

Hai competenze di compilatore hardcore? Abbiamo bisogno di te.

Griglia di calcolo

Il nostro compilatore mira non a una 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. Tuttavia, sfruttando i modelli di dati della supply chain, spesso otteniamo da 10 a 100 volte più velocità rispetto agli approcci generici, pur mantenendo le risorse di calcolo uguali.

Sfruttare appieno un cloud di macchine è un paradigma che cambia il gioco. Il calcolo distribuito è difficile, ma anche i sistemi embedded sono destinati a diventare sistemi distribuiti in futuro. Vogliamo che Lokad si adatti alle supply chain più grandi e ciò richiederà un calcolo distribuito su larga scala.

Potresti conoscere Spark, ma sei in grado di costruire un Spark migliore? Se sì, unisciti a noi.

Apprendimento automatico

La previsione è una pietra angolare dell’ottimizzazione della supply chain. Il nostro ultimo motore di previsione è già basato sulla programmazione differenziabile, 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 grande maggioranza della comunità del deep learning si concentra sui media (immagini, testi, suoni), noi ci concentriamo sui dati della supply chain.

Il deep learning in Lokad non riguarda la manipolazione dei dati con l’ultimo toolkit open source del mese. 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, sviluppare i nostri propri elementi primitivi quando necessario.

Potresti conoscere TensorFlow, ma sei in grado di costruire un TensorFlow migliore? Se sì, unisciti a noi.

Risolutori e altri algoritmi

L’ottimizzazione della supply chain coinvolge, beh, parecchi algoritmi di ottimizzazione. La maggior parte di questi problemi potrebbe essere definita problemi di programmazione intera, tuttavia, nella supply chain, ci troviamo spesso di fronte a situazioni con milioni di variabili. Gli approcci tradizionali di branch-and-bound sono un po’ deludenti per affrontare tali situazioni, quindi abbiamo sviluppato i nostri risolutori specializzati.

Sebbene le nostre capacità di ottimizzazione siano ancora agli inizi, i potenti risolutori in grado di elaborare variabili stocastiche, previsioni probabilistiche e altro, fanno parte della nostra roadmap. Vogliamo essere in grado di affrontare problemi che coinvolgono decine di milioni di variabili e decine di milioni di vincoli. Ciò sarà necessario per soddisfare le esigenze delle supply chain più grandi.

Ti piacciono gli algoritmi difficili. Pensi che le prestazioni siano una caratteristica. Anche noi la pensiamo così. Unisciti a noi.

Dashboard componibili

È facile progettare una dashboard che sembra bella se è possibile impostare la dimensione di ogni riquadro e avere set di dati selezionati a mano per essere belli. Tuttavia, Envision consente agli utenti finali di generare in modo programmabile dashboard che contengono molti tipi di riquadri (grafici, tabelle, KPI, ecc.) con dimensioni e posizioni arbitrarie e che mostrano dati del mondo reale, con tutti i suoi difetti e valori anomali, eppure, dovrebbe comunque sembrare bello.

Abbiamo già detto che le nostre dashboard sono veloci? Lo sono. Di solito vengono renderizzate lato client in meno di 500 ms, anche quando si affrontano dashboard complesse. Creare dashboard belle ma anche pratiche è difficile, per dir poco. Abbiamo già messo in atto l’infrastruttura per offrire questa performance, ma abbiamo ancora un lungo cammino da percorrere per sfruttarla al massimo.

Sei in grado di risolvere il nostro problema di progettazione meta? Unisciti a noi.

Mashup e integrazioni

L’ottimizzazione della supply chain non è nulla senza dati. Sempre più spesso, l’intera supply chain vive nel cloud. App come ERP / WMS / OMS sono anche SaaS, proprio come Lokad. Attraverso le loro API, queste app espongono dati che sono fondamentali per il raggiungimento della missione di Lokad. Pertanto, Lokad deve supportare un ecosistema di integrazioni in continua crescita.

Integrare dati di terze parti può essere visto come una semplice operazione di plumbing. Tuttavia, farlo nel modo giusto è di solito una sfida. Abbiamo bisogno di recuperare l’intero storico dei dati in modo incrementale e affidabile. Dobbiamo gestire molte modalità di errore. Non ha senso incolpare le app per non raggiungere un uptime del 100%, nessuno ci riesce. Invece, creiamo strategie per sfruttare al massimo l’uptime che ci viene concesso.

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