Lokadでのソフトウェアエンジニアリングの求人

私たちは成長しており、これまで以上に才能あるソフトウェアエンジニアを採用しています。Lokadは印象的な技術的課題に直面しています。したがって、エンジニアが「Lokadで何をするのですか?」と尋ねるとき、私たちは「あなたは私たちと一緒に何をしたいですか?」と問い返すことができます。Lokadプラットフォームの主要な機能領域を簡単に見てみましょう。Lokadに応募される際は、どの分野にご興味があるかお知らせください。

Interested in Lokad? Remote positions are welcome.

Apply by sending your resume to contact@lokad.com.

software-engineering-social

ミッション(エンジニアの視点)

サプライチェーンは依然として無駄が多く非効率です。世界経済の約15%に関わる問題であり、サプライチェーンは広大で、二桁の効率改善が可能です。私たちはサプライチェーンをAIの自動操縦に乗せ、人間を超えるパフォーマンスを実現したいと考えています。

基本情報

私たちのコードベースは C# / F# / TypeScript / .NET です。Git と Visual Studio を使用しています。Lokad は Microsoft Azure 上にホストされています。OS にはほぼ依存せず、.NET Core と Linux 上で動作しています。何千ものユニットテストがあり、すべてをワンクリックで再デプロイできる堅牢なエンドツーエンドの継続的インテグレーションを実現しています。

私たちは Joel Test で 12/12 のスコアを獲得していますが、私たちが優れていると信じるいくつかのバリエーションを取り入れています(なお、このテストは20年前に書かれたものです)。

新しい候補者は面接中にコードを書くのでしょうか? はい、しかし私たちは候補者に、あらかじめ自ら選んだ注目すべきコード(当然、候補者自身が書いたもの)を送ってもらうよう依頼しています。その後、面接の一部で、このコードに対して候補者を挑戦させます。

廊下でのユーザビリティテストを行いますか?ウェブアプリを開発している場合には確かに有効です。しかし、コンパイラやディープラーニングデータパイプラインの設計となると、そうでもありません。それでも、私たちは自社製品を大規模に内部利用しており、なぜなら私たち自身の サプライチェーン・サイエンティスト が最もアクティブな Lokad ユーザーであるからです。

イベントソーシング

SQLデータベースと連携したCRUDアプリを開発するのに疲れていませんか?もしそうでなければ、疲れるべきです。イベントソーシングは、ほぼあらゆる点で優れた代替手段を提供します。メンテナンスが容易で、スケーラブルかつ安全です。主な欠点は、ソフトウェアコミュニティがこの手法に慣れていないことです。Lokadのコアは完全にイベントソーシング上に構築されており、SQLデータベースは使用していません。

現代的な原則に基づいてクラウドアプリを構築する方法を学びたいなら、ぜひ参加してください。

ストレージレイヤー

私たちはすべてのクライアントのデータを一種のGitリポジトリのように整理しています;ただし、一部のクライアントは1ファイルあたり最大100GBのファイルをプッシュしています。当然、実際のGitバックエンドは使用せず、Microsoft AzureのBlob Storage上に独自のストレージレイヤーを構築しました。

Gitのようなストレージレイヤーを持つことは、信頼性と再現性のために重要です。巨大な平文ファイルをLokadにプッシュするには時間がかかります。書き途中(または上書きされた)平文ファイルのリスクにさらされるのは避けたいものです。Gitのような意味論により、ファイルは存在するかしないかのいずれかであり、ファイルの不安全な状態がLokadの他の部分に露呈することはありません。

ビッグデータが大好きなら、ここはまさにその場所です。

コンパイラ、フロントエンドとバックエンド

Envisionは私たち独自のDSLです。サプライチェーン・サイエンティストのチームによって集中的に使用されています。この言語はシンプルでありながら、サプライチェーン最適化の課題に取り組む際に驚異的な生産性を発揮します。全体として、LokadはEnvisionスクリプトを作成し実行するために設計されたプラットフォームです。

すべてのEnvisionコードベースがLokadプラットフォーム内に存在するため、言語の進化に伴い既存のスクリプトを自動的に書き直す機会があります。つまり、私たちはこれまでのすべての設計ミスに固執することなく、書き直しながら前進していきます。コンパイラエンジニアにとって、これは驚異的な速さで業務に取り組む機会を意味します。

高度なコンパイラスキルをお持ちですか?あなたを必要としています。

コンピュテーショングリッド

私たちのコンパイラは特定のマシンではなくクラウドをターゲットとしています。Envisionは大規模な並列処理のために設計されました。私たちはSparkに類似した独自のコンピュテーショングリッドを開発しました。しかし、サプライチェーンのデータパターンを活用することで、同等の全ての計算資源を前提とした場合、一般的なアプローチに比べて10倍から100倍のスピードアップをしばしば達成しています。

多数のマシンが集まるクラウドを最大限に活用することは、パラダイムを根本的に変えるものです。分散コンピューティングは困難ですが、将来的には組み込みシステムでさえ分散システムになる可能性があります。私たちはLokadを最大規模のサプライチェーンにスケールさせたいと考えており、それには大規模な分散コンピューティングが必要です。

Sparkをご存知かもしれませんが、より優れたSparkを構築することができますか?もしそうなら、ぜひ参加してください。

機械学習

予測はサプライチェーン最適化の基礎です。私たちの最新の予測エンジンは既に微分可能プログラミングに基づいて構築されており、これはディープラーニングの系譜とも言えます。時折、ディープラーニングの「クラシック」な手法を用いることもあります。しかし、私たちのユースケースは根本的に異なります。大多数のディープラーニングコミュニティがメディア(画像、テキスト、音声)に焦点を当てる一方で、私たちはサプライチェーンのデータに焦点を当てています。

Lokadにおけるディープラーニングは、最新のオープンソースツールキットを用いたデータ処理のことではありません。業界全体に優れた結果をもたらすために、統計的学習の基盤を再検討することです。私たちの挑戦は、新しいアルゴリズムを発明し、必要に応じて独自のプリミティブを作り上げることにあります。

TensorFlowをご存知かもしれませんが、より優れたTensorFlowを構築することができますか?もしそうなら、ぜひ参加してください。

ソルバーおよびその他のアルゴリズム

サプライチェーンの最適化には、実に多くの最適化アルゴリズムが関与します。これらの問題のほとんどは整数計画法の問題と呼ぶことができますが、サプライチェーンにおいては、常に百万単位の変数を扱う状況に直面しています。伝統的な分枝限定法では十分な結果が得られないため、独自の専門的なソルバーを開発しました。

私たちの最適化能力はまだ初期段階にありますが、確率変数や確率的予測などを処理できる強力なソルバーは、今後の計画に含まれています。数千万の変数と数千万の制約を含む問題にスケールできるようにしたいと考えています。これは、最大規模のサプライチェーンのニーズに応えるために必要となります。

厳しいアルゴリズムが好きですか。パフォーマンスは機能の一部だとお考えですか。私たちも同じです。ぜひ参加してください。

コンポーザブルなダッシュボード構築

各タイルのサイズを設定し、美しく見えるように手作業で選ばれたデータセットがあれば、見た目の良いダッシュボードを設計するのは簡単です。しかし、Envisionを使えば、エンドユーザーがプログラムによって、さまざまな種類のタイル(チャート、テーブル、KPIなど)を任意のサイズと位置で、現実のデータとそのゆがみ、外れ値、例外を含んだ状態で生成し、それでも美しく見えるダッシュボードを作成することができます。

私たちのダッシュボードが高速であることは申し上げましたか?実際に、複雑なダッシュボードでも通常はクライアントサイドで500ms以内にレンダリングされます。見た目が良く実用的なダッシュボードを作成するのは、少なくとも容易ではありません。このパフォーマンスを実現するための基盤は既に整っていますが、その実力を最大限に引き出すにはまだ長い道のりがあります。

私たちのメタデザイン問題を解決することができますか?ぜひ参加してください。

マッシュアップと統合

データがなければサプライチェーンの最適化は成立しません。サプライチェーン全体がクラウド上に存在するようになっています。ERP / WMS / OMSのようなアプリも、Lokadと同様にSaaSです。これらのアプリはAPIを通じて、Lokadのミッションを達成するために重要なデータを提供します。したがって、Lokadは成長する統合エコシステムをサポートする必要があります。

サードパーティのデータ統合は単なる配管作業と見なされるかもしれません。しかし、適切に行うことは通常、挑戦となります。増分的かつ信頼性の高い方法で全ての履歴データを取得する必要があります。多くの障害モードに対処しなければなりません。アプリが100%の稼働率を達成できないことを責めても意味がありません。誰もそんなことはしないのです。代わりに、与えられた稼働時間を最大限に活用するための戦略を策定しています。

B2Bソフトウェアエコシステムの半数と交流したいですか?ぜひ参加してください。