In this engaging discussion, Sylvan Morris, a South African embedded systems engineer at Plentify, shares his journey in tech, focusing on introducing Rust into a startup environment. He highlights the hurdles of integrating new programming languages and the importance of team collaboration. Sylvan delves into the advantages of over-the-air updates through bootloaders, enhancing software deployment efficiency. He also explores the evolution of embedded systems, underscoring the need for better debugging education and communication in engineering to tackle project challenges.
Gradually introducing Rust into a team by starting with tooling can enhance acceptance, especially for non-critical tasks.
Effective risk management through quantification and clear communication between engineers and management can lead to successful project outcomes.
Deep dives
Introduction to Embedded Work and Rust
The speaker shares insights about embedded development focusing on the integration of Rust as a programming language. With a background in Mechatronics Engineering, the speaker has been applying knowledge from the Rust programming language in their work at a startup. They emphasize the importance of gradually introducing Rust to a team, suggesting starting with tooling before fully transitioning to the language, especially for non-critical tasks. There is a discussion regarding the challenges and advantages of using Rust versus Python, particularly as they relate to team familiarity and project deadlines.
Innovative Solutions for OTA Updates
The speaker narrates a significant project involving the design of an over-the-air (OTA) update system utilizing Rust. Faced with a need to rapidly deploy a device in homes, they reverse-engineered a serial protocol to create a TCP UART bridge. This server, built with Rust's capabilities, allows for seamless updates of devices installed in difficult-to-access locations. The successful implementation makes it possible to send firmware updates wirelessly, dramatically improving the efficiency of their product management.
Team Dynamics and Technology Adoption
The challenge of integrating new technologies like Rust within an existing team is highlighted, focusing on the balance of innovation and practicality. The speaker discusses the organizational risks associated with transitioning to a new programming language, particularly concerns about team members’ ability to maintain code written by someone else proficient in Rust. They underscore the importance of team buy-in and training, suggesting that providing accessible tooling can facilitate acceptance of new technologies. Overall, there is a consideration of the trade-off between adopting advanced languages for efficiency versus the immediate need for solutions in a fast-paced work environment.
Risk Management in Software Development
The conversation shifts to the theme of risk management in software development, particularly for startups with tight deadlines. The speaker reflects on how framing discussions around risk can facilitate better communication between engineers and management. They emphasize that although new programming approaches may introduce uncertainty, quantifying potential risks can lead to informed decisions that balance speed and quality. By reducing risks through proper testing and analysis, teams can increase confidence in their deliverables, ultimately leading to successful project outcomes.