Location: Berlin, DE or London, UK
About Tower
Tower helps data scientists and data engineers deliver on their roadmaps faster by providing a serverless data and AI platform built on Iceberg storage that is fully-integrated with your enterprise infrastructure. Our mission is to support the development of a multi-engine world where companies pick the best engine for the job and companies own their data. We are a team of industry veterans, backed by leading VCs, on a mission to push the boundaries of what’s possible in an effort to dramatically improve the lives of data engineers and data scientists around the world.
Role overview
As a runtime engineer at Tower, you'll be responsible for building and maintaining the secure, high-performance environment in which user-defined Python applications run. This includes designing the runtime environment, managing resource isolation, providing user-facing observability about performance and correctness, and implementing the overall systems that monitor and control execution at scale. You'll work primarily in Rust to ensure low-level performance and security, collaborating closely with our distributed systems team to integrate the runtime with our control plane. If you're excited about building robust systems that safely and efficiently run untrusted code in production, this role is for you.
What you’ll do
- Own end-to-end (design, develop, and implement) the runtime environment for data apps in Tower.
- Develop systems in Rust to manage resource isolation, sandboxing, and workload lifecycle across a multi-tenant platform.
- Build tools and interfaces to provide observability into workload performance, behavior, and correctness.
- Collaborate with a small, close-knit team and the company’s founders to define and implement a new way to run data apps in the cloud.
- Collaborate with the distributed systems team to integrate the runtime with our control plane and orchestration layers.
- Contribute to the overall security posture of the system, including execution isolation and safe handling of untrusted code.
- Help shape the architecture and engineering practices of the team as an early contributor to the company.
What we’re looking for
- Proven experience in software engineering, with a focus on runtime environments and compute platforms.
- Strong proficiency in multiple programming languages with a preference towards Rust, Golang, Python, and JavaScript.
- Experience working on cloud platforms (AWS, Azure, GCP) and containerization technologies (Docker, Kubernetes).
- Deep understanding of security best practices, especially for cloud systems and data security.
- Proven track record of building and deploying scalable software systems.
- Strong communication skills and a desire to partner with our customers in solving their problems.