Please refer to JobSuchmaschine in your application
At Nomoko, we use Elixir (and Erlang) extensively to distribute and coordinate 3D reconstruction tasks across server clusters. Rather than a monolithic image processing system run on workstations, we develop and maintain a clustered, task-oriented pipeline built for paralellization and fault-tolerance.
We’re looking for distributed-systems engineers to join us in building this system to achieve new scales of computation and extend its capabilities with new features. In this role, you’ll be at the intersection of working in C ++/ C (the languages used by our image processing developers) and Elixir /Erlang (used by our distributed computing team) , helping transition code from single-machine architectures to a load-balancing, cloud-oriented reconstruction process.
If this sounds exciting for you, please apply!
/ Develop the task-driven job distribution system for deployment at scale
/ Create Erlang bindings for C ++/ CUDA image processing code using our LLVM / nifty-based toolchain
/ Have worked within Elixir / Erlang extensively
/ Hands-on experience with OTP, having built an understanding of the core principles and architectural components (GenServer, Supervisor , GenStage, gen _ statem, etc.)
/ Familiarity with the unique challenges presented by distributed systems
/ Understanding of commonly used brokering practices
/ Basic ability to read / write C / C ++ for the purpose of maintaining BEAM bindings
/ Fluent in English
/ Familiarity with SQL
/ Experience with computer vision libraries in the past (e.g.: OpenMVG, OpenCV)
/ Interest in machine learning
/ Elixir and Erlang
/ LLVM and nifty for binding generation
/ PostgreSQL for relational data storage
/ libcluster, ecto, raft, among other BEAM libraries
/ Plug and Phoenix Framework for user interaction components