Вакансии программных инженеров в Lokad

Мы растем и, больше чем когда-либо, мы нанимаем талантливых программных инженеров. Lokad сталкивается с впечатляющим набором технических проблем. Таким образом, когда инженеры спрашивают нас, что я буду делать в Lokad?, мы можем задать встречный вопрос: что бы вы хотели делать с нами?. Давайте быстро рассмотрим основные функциональные области платформы Lokad. Если вы подаете заявку в Lokad, пожалуйста, дайте нам знать, где лежат ваши интересы.

Заинтересованы в Lokad? Дистанционные позиции приветствуются.

Подайте заявку, отправив свое резюме на contact@lokad.com.

software-engineering-social

Миссия (с точки зрения инженера)

Цепи поставок остаются неэффективными и неэффективными. Речь идет примерно о 15% мировой экономики: цепи поставок огромны, и двузначное улучшение остается возможным. Мы хотим поставить цепи поставок на автопилот и достичь сверхчеловеческой производительности.

Основы

Наш кодовая база - C# / F# / TypeScript / .NET. Мы используем Git и Visual Studio. Lokad размещен на Microsoft Azure. Мы в основном не зависимы от ОС и работаем под управлением .NET Core и Linux. У нас есть тысячи модульных тестов и надежная непрерывная интеграция end-to-end, где мы можем перезапустить все одним щелчком.

Мы набираем 12/12 по Joel Test, но с несколькими изменениями, которые, на наш взгляд, являются более превосходными (имейте в виду, что этот тест был написан 20 лет назад).

Новые кандидаты пишут код во время собеседования? Да, но мы также просим кандидатов заранее прислать нам замечательный кусок кода, написанный самим кандидатом. Затем мы тратим часть интервью на проверку кандидата на основе этого кода.

Вы проводите тестирование удобства использования в коридоре? Это, конечно, работает, когда вы разрабатываете веб-приложение. Когда дело доходит до проектирования компилятора и глубокого обучения пайплайна данных, это уже не так. Однако мы массово используем наши собственные инструменты, так как наши собственные ученые по цепям поставок являются самыми активными пользователями Lokad.

Событийное моделирование

Устали от разработки CRUD-приложений, связанных с SQL-базами данных? Если нет, то вам следует. Событийное моделирование представляет собой превосходную альтернативу практически во всех отношениях. Оно легче поддерживать, масштабируется лучше, более безопасно. Основным недостатком остается незнакомство сообщества программистов с этим подходом. Ядро Lokad полностью построено на основе событийного моделирования, и у нас в нем нет SQL-баз данных.

Если вы хотите научиться создавать облачные приложения на основе современных принципов, присоединяйтесь к нам.

Уровень хранения

Мы организовали все данные наших клиентов как своего рода репозиторий Git; за исключением того, что некоторые клиенты загружают файлы размером до 100 ГБ за файл. Очевидно, мы не используем фактическую Git-базу данных, мы создали свой собственный уровень хранения поверх Blob Storage от Microsoft Azure.

Наличие уровня хранения, похожего на Git, важно для надежности и воспроизводимости. Загрузка гигантских плоских файлов в Lokad занимает время. Вы не хотите подвергать своих клиентов риску обработки наполовину записанного (или перезаписанного) плоского файла. Благодаря семантике, подобной Git, файл либо есть, либо его нет; никакое небезопасное состояние файла никогда не становится доступным для остальной части Lokad.

Если вы любите Big Data, то это место для вас.

Компилятор, фронт и бэк

Envision - это наш собственный DSL. Он интенсивно используется командой ученых по цепочке поставок. Этот язык прост и в то же время обеспечивает огромную производительность при решении задач оптимизации цепочки поставок. В целом, Lokad - это платформа, разработанная для создания и запуска скриптов Envision.

Поскольку весь код Envision находится внутри платформы Lokad, у нас есть возможность автоматически переписывать существующие скрипты по мере развития языка. Таким образом, мы не живем вечно с каждой ошибкой проектирования, которую мы сделали. Мы переписываем и движемся дальше. Для инженера-компилятора это представляет собой возможность работать с невероятно высокой скоростью.

Владеете навыками разработки компиляторов? Мы вас ищем.

Вычислительная сеть

Наш компилятор нацелен не на одну машину, а на облако. Envision разработан для масштабирования параллельных вычислений. Мы разработали собственную вычислительную сеть, несколько похожую на Spark. Однако, используя особенности данных цепочки поставок, мы часто достигаем ускорения от 10 до 100 раз по сравнению с общими подходами - при равных вычислительных ресурсах.

Полное использование облачного парка машин - это изменяющая игру парадигма. Распределенные вычисления трудны, но даже встроенные системы в будущем, вероятно, будут распределенными системами. Мы хотим, чтобы Lokad масштабировался до самых больших цепочек поставок, и для этого потребуется массовое распределенное вычисление.

Вы знакомы с Spark, но способны создать лучший Spark? Присоединяйтесь к нам.

Машинное обучение

Прогнозирование - это основа оптимизации цепочки поставок. Наша последняя система прогнозирования уже построена на основе дифференцируемого программирования, которое можно рассматривать как потомка глубокого обучения. Мы иногда используем “классические” методы глубокого обучения. Однако наши случаи использования радикально отличаются. В то время как большинство сообщества глубокого обучения сосредоточено на медиа (изображения, текст, звук), мы сосредоточены на данных цепочки поставок.

Глубокое обучение в Lokad не сводится к манипулированию данными с помощью последнего инструментария с открытым исходным кодом. Это означает пересмотр основ статистического обучения для достижения превосходных результатов для всей отрасли. Наши задачи заключаются в изобретении новых алгоритмов, создании собственных примитивов, когда это необходимо.

Вы знакомы с TensorFlow, но способны создать лучший TensorFlow? Присоединяйтесь к нам.

Солверы и другие алгоритмы

Оптимизация цепочки поставок включает в себя довольно много алгоритмов оптимизации. Большинство из этих проблем можно назвать проблемами целочисленного программирования, однако в цепочке поставок мы регулярно сталкиваемся с ситуациями, где присутствуют миллионы переменных. Традиционные подходы ветвей и границы не всегда эффективны для решения таких ситуаций, поэтому мы разработали собственные специализированные солверы.

Несмотря на то, что наши возможности в области оптимизации все еще недостаточно развиты, мощные солверы, способные обрабатывать стохастические переменные, вероятностные прогнозы и другие, являются частью нашего плана развития. Мы хотим иметь возможность масштабироваться для решения проблем, включающих десятки миллионов переменных и ограничений. Это потребуется для удовлетворения потребностей самых крупных цепочек поставок.

Вам нравятся сложные алгоритмы. Вы считаете, что производительность - это особенность. Так же мы. Присоединяйтесь к нам.

Компонуемая панель инструментов

Легко создать красивую панель инструментов, если вы можете задать размер каждого блока и имеете набор данных, подобранных вручную, чтобы они выглядели красиво. Однако Envision позволяет конечным пользователям программно создавать панели инструментов, содержащие различные типы блоков (диаграммы, таблицы, KPI и т. д.) с произвольными размерами и позициями, отображающие реальные данные с их особенностями, выбросами и граничными случаями, и при этом они должны выглядеть хорошо.

Мы уже упоминали, что наши панели инструментов работают быстро? Они работают. Обычно они отображаются на стороне клиента менее чем за 500 мс, даже при работе с сложными панелями инструментов. Создание красивых, но практичных панелей инструментов сложно - мягко говоря. Мы уже создали инфраструктуру для достижения такой производительности, но у нас еще долгий путь, чтобы извлечь максимум из нее.

Вы способны решить нашу мета-проблему дизайна? Присоединяйтесь к нам.

Мэшапы и интеграции

Оптимизация цепочки поставок невозможна без данных. Все больше и больше цепочка поставок находится в облаке. Приложения, такие как ERP / WMS / OMS, также являются SaaS, как и Lokad. Через свои API эти приложения предоставляют данные, которые являются критическими для выполнения миссии Lokad. Таким образом, Lokad должна поддерживать растущую экосистему интеграций.

Интеграция сторонних данных может быть рассмотрена как просто “сантехника”. Однако, сделать это правильно обычно является сложной задачей. Нам нужно получить всю историческую информацию таким образом, чтобы она была инкрементальной и надежной. Нам нужно управлять множеством ситуаций отказа. Бессмысленно винить приложения в том, что они не обеспечивают 100% времени работы, никто этого не делает. Вместо этого мы разрабатываем стратегии, чтобы максимально использовать предоставленное нам время работы.

Хотите общаться с половиной экосистемы B2B-программного обеспечения? Присоединяйтесь к нам.