Empleos de Ingeniería de Software en Lokad

Estamos creciendo y, más que nunca, estamos contratando ingenieros de software talentosos. Lokad enfrenta un impresionante conjunto de desafíos técnicos. Así que, cuando los ingenieros nos preguntan, ¿qué haré en Lokad?, podemos responder con, ¿qué te gustaría hacer con nosotros? Echemos un vistazo rápido a las principales áreas funcionales de la plataforma de Lokad. Si te postulas a Lokad, por favor déjanos saber dónde se encuentran tus intereses.

¿Interesado en Lokad? Se aceptan posiciones remotas.

Aplica enviando tu currículum a contact@lokad.com.

software-engineering-social

La Misión (la perspectiva de un ingeniero)

Las supply chains siguen siendo desperdiciadoras e ineficientes. Estamos hablando de aproximadamente el 15% de la economía mundial: las supply chains son vastas, y aún son posibles mejoras de dos dígitos. Queremos poner las supply chains en piloto automático con IA, y ofrecer un rendimiento superior al humano al hacerlo.

Lo Esencial

Nuestra base de código es C# / F# / TypeScript / .NET. Utilizamos Git y Visual Studio. Lokad se aloja en Microsoft Azure. En su mayoría somos agnósticos al sistema operativo, y operamos bajo .NET Core y Linux. Tenemos miles de pruebas unitarias, y una robusta integración continua de extremo a extremo, donde podemos volver a desplegar todo con un solo clic.

Obtenemos 12/12 en el Joel Test pero con algunas variaciones que creemos 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 les pedimos a los candidatos desde un principio que nos envíen una pieza notable de código de su propia elección, escrita por el propio candidato, obviamente. Luego, dedicamos una parte de la entrevista a retar al candidato respecto a esta pieza de código.

¿Hacen pruebas de usabilidad en pasillos? Esto sin duda funciona cuando estás desarrollando una web app. En lo que respecta al diseño de un compilador y de una canalización de datos de deep learning, bueno, no tanto. Sin embargo, consumimos masivamente nuestros propios productos, ya que nuestros propios Supply Chain Scientists resultan ser los usuarios de Lokad más activos.

Event sourcing

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

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

Capa de Almacenamiento

Hemos organizado los datos de todos nuestros clientes como una especie de repositorio Git; excepto que algunos clientes están subiendo archivos de hasta 100GB por archivo. Obviamente, no estamos usando un back-end Git real, hemos creado 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 reproducibilidad. Subir archivos planos gigantescos a Lokad toma tiempo. No quieres exponer a tus clientes al riesgo de procesar un archivo plano a medio escribir (o sobrescrito). Mediante semánticas similares a Git, un archivo está presente o no; nunca se expone un estado inseguro del archivo al resto de Lokad.

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

Compilador, front y back

Envision es nuestro DSL casero. Se utiliza intensamente por el equipo de Supply Chain Scientists. Este lenguaje es simple y, sin embargo, brinda una productividad tremenda al abordar desafíos de optimización de supply chain. En conjunto, Lokad es una plataforma diseñada para crear y ejecutar scripts de Envision.

Dado que toda la base de código de Envision reside dentro de la plataforma de Lokad, tenemos la oportunidad de reescribir automáticamente los scripts existentes a medida que evoluciona el lenguaje. Por lo tanto, no vivimos para siempre con cada error de diseño que hayamos 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.

Cuadrícula de Computación

Nuestro compilador no se dirige a una máquina, sino a una cloud. Envision ha sido diseñado para un paralelismo a gran escala. Hemos desarrollado nuestra propia cuadrícula de computación, algo similar a Spark. Sin embargo, aprovechando los patrones de datos de supply chain, con frecuencia logramos aceleraciones de 10x a 100x sobre enfoques genéricos, con todos los recursos computacionales siendo iguales.

Aprovechar al máximo una cloud de máquinas es un paradigma que cambia las reglas del juego. La computación distribuida es difícil, pero incluso los sistemas embebidos probablemente sean sistemas distribuidos en el futuro. Queremos que Lokad escale a las supply chains más grandes, y eso requerirá una computación masivamente distribuida.

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

Machine learning

El forecast es fundamental para la optimización de supply chain. Nuestro último engine de forecast ya está construido sobre differentiable programming, lo que puede considerarse como un descendiente de deep learning. A veces utilizamos los “clásicos” de 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 supply chain.

El deep learning en Lokad no se trata de manipular datos con la última herramienta open source del momento. Se trata de revisar los fundamentos del aprendizaje estadístico para ofrecer resultados superiores a toda una industria. Nuestros desafíos consisten en inventar nuevos algoritmos, creando nuestras propias primitivas siempre que 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 supply chain implica, bueno, bastantes algoritmos de optimización. La mayoría de esos problemas podrían definirse como problemas de integer programming; sin embargo, en supply chain, rutinariamente nos enfrentamos a situaciones con millones de variables. Los enfoques tradicionales de branch-and-bound resultan algo insuficientes para abordar estas situaciones, por lo que hemos desarrollado nuestros propios solvers especializados.

Aunque nuestras capacidades de optimización aún son incipientes, solvers potentes capaces de procesar las variables estocásticas, forecast probabilísticos, entre otros, forman parte de nuestra hoja de ruta. Queremos ser capaces de escalar a problemas que involucren decenas de millones de variables y decenas de millones de restricciones. Esto será necesario para abordar las necesidades de las supply chains más grandes.

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

Paneles componibles

Es fácil diseñar un dashboard que se vea bien si puedes definir el tamaño de cada bloque y contar con conjuntos de datos seleccionados a mano para que sean atractivos. Sin embargo, Envision permite a los usuarios finales generar dashboards programáticamente que contengan muchos tipos de bloques (gráficos, tablas, KPIs, etc.) con tamaños y posiciones arbitrarias y que muestren datos del mundo real, con todos sus matices, valores atípicos y casos extremos, y aun así, deben verse bien.

¿Mencionamos que nuestros dashboards son rápidos? Lo son. Típicamente se renderizan en el lado del cliente en menos de 500ms incluso cuando se enfrentan a dashboards complejos. Diseñar dashboards que sean atractivos pero también prácticos es difícil, por decir lo menos. Ya hemos implementado la infraestructura necesaria para ofrecer este rendimiento, pero tenemos un largo camino por recorrer para aprovecharlo al máximo.

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

Mashups e integraciones

La optimización de supply chain no es nada sin datos. Cada vez más, toda la supply chain vive en la cloud. Aplicaciones como el ERP / WMS / OMS también son SaaS, al igual que Lokad. A través de sus APIs, estas aplicaciones exponen datos que son críticos para cumplir la misión de Lokad. Por lo tanto, Lokad necesita soportar un ecosistema creciente de integraciones.

Integrar datos de terceros puede verse como un simple trabajo de 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. Tenemos que gestionar muchos modos de fallo. Es inútil culpar a las aplicaciones por no lograr un 100% de tiempo activo, nadie lo hace. En su lugar, diseñamos estrategias para aprovechar al máximo el tiempo activo que se nos otorga.

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