The embedded software and firmware domains present a set of unique challenges to the teams tasked with designing, coding, and delivering the software driving today’s modern electronic devices. These challenges include:
- Handling complex asynchronous device behavior.
- Real-time processing constraints.
- Implementing reliable interrupts and threads while avoiding common concurrency faults.
- Accommodating a family of related products and SKUs.
- 24×7 operational requirements – no crashes allowed!
- The undefined behavior pitfalls of the commonly used C and C++ languages.
- Engineering teams with a strong focus on electronics design, but perhaps not trained on software design and related best practices.
- Firmware teams are often very small, typically averaging below three team members. Small teams, and especially solo firmware engineers operating with no peer support, will benefit from expert guidance and peer source code review.
Given these challenges, an embedded software engineering team may need strategic help from experts in this domain. Tasked with an embedded software or firmware source code review, we will:
- Familiarize ourselves with top-level product requirements.
- Discuss with and interview the software engineering team to determine the areas of highest concern.
- Perform the source code review, applying automated tools to the task, but especially reviewing the code directly while applying decades of experience to the areas of highest concern.
- Deliver a formal (or informal) report with actionable short term and long term advice to improve the software.
- Iterate and repeat as desired.
If your team could benefit from a professional and expert level source code review, please contact us at: firstname.lastname@example.org.