Trabajos de Ingeniería de Software en Lokad

Estamos creciendo y, más que nunca, estamos contratando talentosos ingenieros de software. Lokad se enfrenta a un impresionante conjunto de desafíos técnicos. Por lo tanto, cuando los ingenieros nos preguntan qué haré en Lokad?, podemos devolver la pregunta con ¿qué te gustaría hacer con nosotros?. Echemos un vistazo rápido a las áreas funcionales principales de la plataforma de Lokad. Si te postulas para Lokad, por favor avísanos en qué áreas tienes interés.

¿Interesado en Lokad? Se aceptan posiciones remotas.

Postúlate enviando tu currículum a contact@lokad.com.

software-engineering-social

La Misión (desde la perspectiva de un ingeniero)

Las cadenas de suministro siguen siendo ineficientes y derrochadoras. Estamos hablando de aproximadamente el 15% de la economía mundial: las cadenas de suministro son vastas y aún se pueden lograr mejoras de dos dígitos. Queremos poner las cadenas de suministro en piloto automático de IA y lograr un rendimiento superior al humano mientras lo hacemos.

Lo Básico

Nuestro código base es C# / F# / TypeScript / .NET. Estamos utilizando Git y Visual Studio. Lokad está alojado en Microsoft Azure. Somos en su mayoría agnósticos del sistema operativo y operamos bajo .NET Core y Linux. Tenemos miles de pruebas unitarias y una sólida integración continua de extremo a extremo, donde podemos volver a implementar todo con un solo clic.

Obtenemos una puntuación de 12/12 en el Joel Test, pero con algunas variaciones que creemos que son superiores (ten en cuenta que este test fue escrito hace 20 años).

¿Los nuevos candidatos escriben código durante su entrevista? Sí, pero también pedimos a los candidatos que nos envíen un fragmento de código notable de su elección, escrito por el propio candidato. Luego, dedicamos una parte de la entrevista a desafiar al candidato en base a este fragmento de código.

¿Realizas pruebas de usabilidad en el pasillo? Esto ciertamente funciona cuando estás desarrollando una aplicación web. Cuando se trata del diseño de un compilador y de un pipeline de datos de deep learning, bueno, no tanto. Sin embargo, utilizamos masivamente nuestras propias herramientas, ya que nuestros propios científicos de la cadena de suministro resultan ser los usuarios más activos de Lokad.

Event sourcing

¿Cansado de desarrollar aplicaciones CRUD acopladas a bases de datos SQL? Si no lo estás, deberías estarlo. El event sourcing representa una alternativa superior en prácticamente todos los aspectos. Es más fácil de mantener, más escalable, más seguro. La principal desventaja sigue siendo la falta de familiaridad de la comunidad de software con este enfoque. El núcleo de Lokad está completamente construido sobre el event sourcing y no tenemos bases de datos SQL en él.

Si quieres aprender a crear aplicaciones en la nube basadas en principios modernos, únete a nosotros.

Capa de Almacenamiento

Hemos organizado todos los datos de nuestros clientes como una especie de repositorio Git; excepto que algunos clientes están enviando archivos de hasta 100 GB por archivo. Obviamente, no estamos utilizando un backend de Git real, hemos desarrollado nuestra propia capa de almacenamiento sobre el Blob Storage de Microsoft Azure.

Tener una capa de almacenamiento similar a Git es importante para la confiabilidad y la reproducibilidad. Enviar archivos planos gigantescos a Lokad lleva tiempo. No quieres exponer a tus clientes al riesgo de procesar un archivo plano que está a medio escribir (o sobrescrito). A través de la semántica similar a Git, un archivo está o no está; nunca se expone un estado inseguro del archivo al resto de Lokad.

Si te encanta el Big Data, este es el lugar.

Compilador, front y back

Envision es nuestro DSL desarrollado internamente. Es utilizado intensivamente por el equipo de Supply Chain Scientists. Este lenguaje es simple y, sin embargo, ofrece una tremenda productividad al abordar los desafíos de optimización de la cadena de suministro. En su conjunto, Lokad es una plataforma diseñada para crear y ejecutar scripts de Envision.

Como todo el código base de Envision vive dentro de la plataforma de Lokad, tenemos la oportunidad de reescribir automáticamente los scripts existentes a medida que el lenguaje evoluciona. Por lo tanto, no vivimos para siempre con cada error de diseño que hemos cometido. Reescribimos y seguimos adelante. Para un ingeniero de compiladores, esto representa la oportunidad de trabajar a un ritmo increíblemente rápido.

¿Tienes habilidades de compilador de alto nivel? Te necesitamos.

Grid de cómputo

Nuestro compilador no apunta a una máquina, sino a una nube. Envision ha sido diseñado para el paralelismo a gran escala. Hemos desarrollado nuestra propia grid de cómputo, algo similar a Spark. Sin embargo, aprovechando los patrones de datos de la cadena de suministro, frecuentemente logramos una aceleración de 10x a 100x en comparación con enfoques genéricos, manteniendo todos los recursos de cómputo iguales.

Aprovechar al máximo una nube de máquinas es un paradigma que cambia el juego. La computación distribuida es difícil, pero incluso los sistemas integrados probablemente serán sistemas distribuidos en el futuro. Queremos que Lokad se adapte a las cadenas de suministro más grandes, y esto requerirá una computación masivamente distribuida.

Puede que conozcas Spark, ¿pero eres capaz de construir un Spark mejor? Si es así, únete a nosotros.

Aprendizaje automático

La previsión es fundamental para la optimización de la cadena de suministro. Nuestro último motor de previsión ya está construido sobre programación diferenciable, que se puede considerar como un descendiente del deep learning. A veces usamos las “clásicas” del deep learning. Sin embargo, nuestros casos de uso son radicalmente diferentes. Mientras que la gran mayoría de la comunidad de deep learning se centra en los medios (imagen, texto, sonido), nosotros nos enfocamos en los datos de la cadena de suministro.

El deep learning en Lokad no se trata de manipular datos con la última herramienta de código abierto del mes. Se trata de revisar los fundamentos del aprendizaje estadístico para ofrecer resultados superiores para toda una industria. Nuestros desafíos consisten en inventar nuevos algoritmos, desarrollar nuestros propios elementos básicos cuando sea necesario.

Puede que conozcas TensorFlow, ¿pero eres capaz de construir un TensorFlow mejor? Si es así, únete a nosotros.

Solvers y otros algoritmos

La optimización de la cadena de suministro implica, bueno, bastantes algoritmos de optimización. La mayoría de esos problemas podrían denominarse problemas de programación entera, sin embargo, en la cadena de suministro, nos enfrentamos rutinariamente a situaciones con millones de variables. Los enfoques tradicionales de ramificación y acotación son algo decepcionantes para abordar esas situaciones, por lo tanto, hemos desarrollado nuestros propios solvers especializados.

Si bien nuestras capacidades de optimización aún están en pañales, los potentes solvers capaces de procesar variables estocásticas, pronósticos probabilísticos, entre otros, forman parte de nuestra hoja de ruta. Queremos poder escalar a problemas que involucren decenas de millones de variables y decenas de millones de restricciones. Esto será necesario para satisfacer las necesidades de las cadenas de suministro más grandes.

Te gustan los algoritmos difíciles. Crees que el rendimiento es una característica. Nosotros también. Únete a nosotros.

Dashboard componibles

Es fácil diseñar un panel que se vea bien si puedes establecer el tamaño de cada mosaico y tener conjuntos de datos seleccionados a mano para que sean bonitos. Sin embargo, Envision permite a los usuarios finales generar programáticamente paneles que contengan muchos tipos de mosaicos (gráficos, tablas, KPI, etc.) con tamaños y posiciones arbitrarias y que muestren datos del mundo real, con todas sus peculiaridades y valores atípicos, y aún así, debe verse bien.

¿Mencionamos que nuestros paneles son rápidos? Lo son. Por lo general, se renderizan en el lado del cliente en menos de 500 ms, incluso cuando se enfrentan a paneles complejos. Crear paneles agradables pero también prácticos es difícil, por decir lo menos. Ya hemos implementado la infraestructura necesaria para lograr este rendimiento, pero nos espera un largo camino por recorrer para aprovechar al máximo.

¿Eres capaz de resolver nuestro problema de diseño meta? Únete a nosotros.

Mashups e integraciones

La optimización de la cadena de suministro no es nada sin datos. Cada vez más, toda la cadena de suministro vive en la nube. Aplicaciones como ERP / WMS / OMS también son SaaS, al igual que Lokad. A través de sus APIs, estas aplicaciones exponen datos que son fundamentales para cumplir con la misión de Lokad. Por lo tanto, Lokad necesita admitir un creciente ecosistema de integraciones.

Integrar datos de terceros puede considerarse simplemente como fontanería. Sin embargo, hacerlo bien suele ser un desafío. Necesitamos recuperar todos los datos históricos de una manera que sea tanto incremental como confiable. Necesitamos gestionar muchos modos de fallo. No tiene sentido culpar a las aplicaciones por no lograr un tiempo de actividad del 100%, nadie lo hace. En cambio, creamos estrategias para aprovechar al máximo el tiempo de actividad que se nos concede.

¿Quieres socializar con la mitad del ecosistema de software B2B? Únete a nosotros.