About the Role
Artificial is looking for a software engineer with distributed systems experience. You will help design and build our platform to connect, monitor, and maintain fleets of autonomous and automated devices.
About You
- Extensive experience developing products involving concurrency, synchronization, and failure recovery
- Knowledgeable of the practical trade-offs of distributed systems. Please respond exactly once.
- Excited about the challenges of working with physical devices in the real world
- Sound security fundamentals
- Comfort defining goals and roadmaps for execution in an ambiguous environment
- Very comfortable developing in a Linux environment
You Have
- Extensive experience delivery and maintaining products involving distributed systems challenges
- Knowledge of messaging and serialization formats: shared memory, sockets, RabbitMQ, ØMQ, gRPC, HTTP, Websockets, WebRTC, MQTT, JSON, BSON, CBOR, XML, msgpack, protobuf, should all sound familiar
- Solid grasp of local and distributed data management and experience with flat-file, schema'd and schema-less datastores, and data pipelines
- Mastery of Python and/or C++1x is preferred, interest in Erlang/Elixer, Go, Scala is helpful
- A degree or study in software engineering or computer science is preferred, but equivalent experience is welcome.