Permutive is looking for a software engineer to develop our edge-compute capabilities.
We would be excited to hear from experienced software engineers who are mathematically minded in their approach and have some commercial experience with embedded SDKs or systems in modern C++ or Rust.
You will be working on our query language, which sits at the core of our platform and distributes computation to over a billion devices each month. Written in Haskell, this language currently supports segmentation, analytics, and model inference for users across the web.
This role is perfect for someone excited by contributing to a new computing paradigm through the lens of real-world business problems. There are numerous technical yet practical challenges to tackle, and there are novel questions that come with building a massively geo-distributed system which need answering.
Some problems you will help us to solve in this role are
- How do we handle distributed compute and storage at a massive scale?
- How can we collect, aggregate, and query data across billions of devices while respecting user privacy?
- How can we balance edge and cloud processing to optimize for the performance metrics that benefit our end-users?
- How can we seamlessly deploy changes to millions/billions of users and confidently revert back if needed?
- How can we perform rigorous testing and simulations of our query language to ensure correctness and performance?
- How can we measure edge compute metrics in production?
The wider context
Permutive is a B2B SaaS company building the data platform and tools for a world with a trillion edge devices. We have product–market fit and customers that love us, and we’re 80+ people and growing rapidly in Europe and the US. We have received funding from some of the world’s best investors, including Y Combinator.
We’re 25+ engineers working to build an outstanding engineering culture so that everyone who joins has the opportunity and the support to do the best work of their life. Small, autonomous teams are important to us, and we want to empower everyone to make—and be accountable for—decisions through ownership.
Everything we build has to scale: our platform handles more requests each day than there are new tweets and Google searches, and each month we see more than a billion users. We think applying functional programming techniques like compositionality and type-safety is the best way to build the type of massive distributed system our platform comprises, allowing us to move fast without sacrificing quality.
The ideal candidate will have
- Commercial experience with a non garbage-collected language (C++11 and newer, or similar)
- Experience and/or hobby projects in Rust, or a keen interest in learning it
- Experience with generic, strongly-typed programming
- Knowledge of distributed systems
- Some experience of low-level programming
- An interest in WebAssembly or LLVM
It is a bonus if you have any of the below
- Experience working with WebAssembly or LLVM
- Experience processing data from high-volume sources (e.g. IoT, telecommunications, autonomous cars)
- Interest or experience in being a voice for our work in the wider tech community (e.g. open source work, meetups, conferences, articles)
- A mathematical background or interest in using mathematics (particularly abstract algebra) as a rigorous foundation for encoding properties of distributed systems
- Stock options (you'll own a piece of the pie)
- Parental Leave Policy entitling new parents up to 26 weeks of leave on full pay
- Weekly all-company lunches, quarterly half-day social events
- Time to rest and relax with unlimited paid leave
- Fully stocked office snacks and drinks
- A technology budget to spend (as you see fit) to set up your work environment
- Extensive training and development opportunities
- A good contributory pension
- The opportunity to learn from some amazing colleagues across the company, while creating something that impacts the way we build technology