François Baldassari, Founder and CEO of Memfault and an expert in embedded software from Pebble and Oculus, shares insights on engineering practices in the tech sector. The conversation covers the evolution of embedded systems, emphasizing the shift toward a software-centric mindset. François highlights the critical role of code reviews in improving quality and collaboration within teams. He also discusses strategies for navigating change in technical environments, the importance of coding standards to enhance team cohesion, and the value of consistency in practices.
François Baldassari stresses the need for embedded developers to adopt traditional software engineering practices like continuous integration to boost productivity.
The podcast discusses the cultural challenges in evolving engineering practices, emphasizing social dynamics as significant hurdles compared to technical ones.
François highlights the critical role of documentation in engineering to align team efforts and facilitate smoother communication among members.
Deep dives
Introduction to Memfault and Embedded Development
François Baldassari, founder and CEO of Memfault, elaborates on how the company creates developer tools tailored for hardware teams, addressing issues related to identifying device problems in the field. His extensive background in embedded software engineering, including notable roles at Pebble and Oculus, provides him a unique perspective on the integration of software engineering practices within hardware development. He emphasizes that while developing embedded systems, the practice often mirrors the methodologies of traditional software engineering, such as continuous integration and frequent updates. This highlights the necessity for embedded developers to adapt proven practices to enhance productivity and outcomes.
The Importance of Collaboration in Engineering Practices
The conversation reveals how Francois initially felt isolated in the realm of embedded development, particularly during his time at Pebble, where the practices he valued were not widely adopted. A collaborative meeting with James and other embedded developers led to significant discussions about the missing elements in software engineering practices at that time. They identified best practices such as build systems and unit testing as crucial for improving overall embedded software quality. This meeting not only opened up new avenues for improvement but also inspired a community that could advocate for these practices across the industry.
Uniting Safety and Reliability in Embedded Systems
François discusses the essential overlap between safety-critical industries, such as avionics, and consumer electronics with regards to software reliability. He explains that both sectors ultimately desire high-quality outputs, yet the approaches to achieving that differ significantly based on their end goals. In avionics, rigorous testing is a regulatory requirement, while in consumer devices, maintaining security and achieving rapid iteration cycles drive the need for quality assurance. By blending practices from both domains, François advocates for an enhanced framework for embedded development that ensures robust and reliable systems.
Navigating Change in Engineering Teams
François reflects on the challenges he faced when trying to implement modern engineering practices within teams resistant to change. He shares his observation that the biggest hurdles are often of a social nature rather than technical ones, where entrenched engineers and management may resist adopting new methodologies. Strategies to overcome these challenges include leveraging external consultants to provide authority and rationale for change, identifying internal champions for new practices, and initiating low-risk experiments to demonstrate the effectiveness of these methodologies. Ultimately, encouraging an environment of continuous improvement is key to evolving outdated engineering processes.
The Vital Role of Documentation in Software Development
The significance of documentation in engineering practices stands out as François discusses its role in aligning team efforts and enhancing performance. He highlights the importance of keeping documents concise and up-to-date, serving as a shared knowledge base that can expedite team onboarding and clarify requirements. François suggests starting with informal methods like Markdown files to write down requirements and agreements, facilitating communication between teams. He points out that formalizing this knowledge allows teams to avoid conflicts and minimize misunderstandings, leading to smoother project progression and better technology outcomes.
James chats with François Baldassari to discuss embedded systems, engineering practices (and where the industry is lacking), and the social side of improving the skills of embedded systems teams.
Get the Snipd podcast app
Unlock the knowledge in podcasts with the podcast player of the future.
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode
Save any moment
Hear something you like? Tap your headphones to save it with AI-generated key takeaways
Share & Export
Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more
AI-powered podcast player
Listen to all your favourite podcasts with AI-powered features
Discover highlights
Listen to the best highlights from the podcasts you love and dive into the full episode