Back End Engineer

Your day to day

A typical day involves working across multiple technical domains. You might start your morning debugging memory management in our Uniffi implementation, then switch to enhancing our Matrix Protocol server features in the afternoon. You lean on your experience with distributed systems and data processing optimization, while exercising good judgment in choosing between language model implementations and simpler solutions.

Our core backend service is written in Python, but we have been developing new application components (authentication, data indexing) in Rust and believe that is the future of our system. Our modified version of The Matrix Protocol’s Synapse server runs Python code that we've tweaked, extended, and handed back upstream as open source when we can. That means you feel comfortable developing and scaling a Python based backend, while working to develop replacements and new features in Rust to help with long term stability and scalability.

Both our development workflow and product are becoming increasingly collaborative with AI, so you like to spend time working out how best to use frontier technology to our advantage. You pride yourself on having the generality to adapt and understand new tools effectively.

Signals you might fit well with this job

These are not hard and fast requirements. Some of the best people we’ve ever hired have not ‘fit the profile’ and we prize above all the curiosity and ability to learn fast and adapt. Think of these as useful guidelines to understand more about the job itself.

  • Coding Proficiency: Strong experience with Python and/or Rust. Experience with strongly typed languages (Typescript, Scala, Go) a plus.

  • Production Experience: Built and maintained complex backend systems in real-world applications.

  • Distributed Systems Expertise: Experience with distributed systems, data processing optimization, and API design.

  • Scalability Mindset: You’ve seen non-linear scaling patterns and information architectures for handling large datasets and user traffic.

  • Pragmatic Approach: You can balance performance, maintainability, and complexity effectively.

  • Resourceful Learner: Quickly understand and apply new concepts using online resources and AI tools and are comfortable with "learning in public." Your tool use should be fluid, and you should understand different programming and API designs. If we point at your favorite tool and ask you to criticize it, you should be able to deeply discuss its strengths and weaknesses.

Driven & Curious: Passionate about learning and building products.