Materialize is looking for a Sr. Software Engineer (Rust)

    About the Role:

    We are looking for seasoned Engineering generalists with extensive experience leading technical architecture and who are proficient in Rust, C++, Java, or functional programming languages. It's vital to also have experience working with large data sets, distributed systems, and backend development, as well as an interest in developing software in Rust…

    Materialize is deployed on top of streaming message queues, like Kafka, and allows users to specify arbitrary SQL views on top of their queues and query those views instantly. Stream processing software like Kafka has greatly improved the end-to-end latency of moving messages around in real time, but today there's no good solution for making use of that data easily. Materialize brings the user-facing simplicity of SQL views - for arbitrary SQL queries, not just some SQL-inspired minimal language - to the streaming data ecosystem.

    All of this is only possible because Materialize is built on top of Timely Dataflow and Differential Dataflow, both of which are award winning projects with strong theoretical foundations. Materialize's Chief Scientist and co-founder Frank McSherry built Timely Dataflow over years of research. Timely was inspired by an earlier Microsoft Research project (also led by Frank) called Naiad, which won several academic accolades including best paper at SOSP 2013.

    What You Will Do:

    • Design, implement, ship, and maintain substantial parts of Materialize in Rust.
    • Evolve Timely Dataflow and Differential Dataflow to meet the needs of Materialize.
    • Iterate on Materialize to discover and adapt to customer needs.
    • Collaborate with other engineers and product management.

    What We’re Looking For

    • Strong working knowledge of computer science fundamentals, equivalent to a B.S., M.S., or Ph.D in Computer Science. Timely and Differential Dataflow are built upon years of academic and industrial research, and you’ll need to become familiar with the research areas.
    • Comfort with writing substantial new code and modifying existing, mature code.
    • Experience building distributed systems.
    • Experience writing high-performance systems is a plus.
    • Track record of learning new technologies and concepts quickly.
    • Ability to work both autonomously and collaboratively, as needed.
    • Strong written and verbal communications skills.

    Bonus Points

    • Knowledge of streaming processing.
    • Experience with Rust.
    • Experience implementing data infrastructure.
    • Experience in compilers