Exploring Fiberplane's 3-Year Rust Journey, with Benno van den Berg
Aug 12, 2024
auto_awesome
Benno van den Berg, a Principal Software Engineer at Fiberplane, shares his fascinating journey transitioning from .NET to Rust. He discusses Fiberplane's three-year experience building an interactive observability notebook, highlighting the challenges of maintaining a decentralized codebase. Benno also dives into the use of Rust with WebAssembly for frontend integration and offers practical advice for developers seeking Rust job opportunities. His insights shed light on best practices in Rust project management and the importance of hands-on experience.
Benno van der Berg discusses Fiberplane's integration of Rust in building efficient collaborative tools while highlighting the challenges of maintaining the codebase.
He emphasizes the importance of hands-on experience with Rust for job seekers, suggesting practical projects that enhance understanding of the language's features.
Deep dives
Beno's Journey in Software Development
Beno shares his extensive background in software development, starting with his internship and experience working with .NET and web forms. He transitioned to a new startup, where he learned various technologies, including Node.js and Go, and faced challenges that led to the adoption of a microservices architecture. After the startup was acquired by Oracle, he realized the limitations of working with solutions specific to the company. This prompted him to join Fiberplane, where he could explore new technologies like Rust.
Fiberplane's Collaborative Notebook Product
Fiberplane offers a collaborative notebook product that allows teams to simultaneously work on documents akin to Google Docs while also investigating their infrastructure. This platform integrates with data providers like Prometheus and Elasticsearch for real-time metrics visualization, which enhances team collaboration during incidents like outages. Fiberplane's tool facilitates postmortems by retaining records of the investigations carried out within these collaborative sessions. Additionally, they are developing an open-source tool called AutoMetrics to streamline the gathering of functional metrics across different programming languages.
Rust's Role in Fiberplane's Development
Rust has been integral to Fiberplane's technology stack, particularly for API servers and CLI tools, taking advantage of its efficiency and security features. The team initially considered implementing features using eBPF but ultimately shifted focus to optimize their collaborative experience through operational transformation (OT). Rust plays a critical role in creating the underlying logic for their multi-user collaborative editing, lending performance benefits by unifying backend and frontend code using WebAssembly. This strategy allows them to streamline their development process by maintaining a single codebase across different platforms.
Hiring and Training Rust Developers
The experiences shared highlight the challenge of hiring proficient Rust developers, especially as the market is still developing. Fiberplane has focused on attracting applicants with some prior Rust experience, along with an interest in the language, by emphasizing projects that allow them to explore Rust’s unique features. They recommend hands-on projects to familiarize candidates with Rust's complexities and the borrow checker. This approach ensures that potential hires not only gain theoretical knowledge but also practical experience, reinforcing their understanding through real coding challenges.
They discuss Fiberplane’s 3-years long journey with Rust, building an interactive observability notebook.
They touch on Benno’s experience switching from .NET to Rust and share insights on using Rust for a commercial product,
including the reasons behind Fiberplane’s Rust adoption. They then dive into the challenges of maintaining Fiberplane’s
codebase and conclude with a few tips for developers looking for Rust jobs.
Contributing to Rustacean Station
Rustacean Station is a community project; get in touch with us if you’d like to suggest an idea for an episode or offer your services as a host or audio editor!