Course code: MEDT-1
  • Years with company: 18
  • Years programming: 40
  • Primary programming language: C
  • Other programming languages: C++, Ada 95 (!), Assembly (rare)
  • Unit test harnesses: Home-grown
  • Something else: I have been developing on embedded systems & protocols nearly my entire career. I really enjoy it.
  • Test practice now: I use debug trace statements to follow the execution path and log variables. I use a tool to send messages to exercise the paths/features.
  • Target system: ARM M3/M4 MCUs controlling some discretes & peripherals (Bluetooth, USB, I2C, SPI). Soft real-time.
  • Dev tools: Keil MDK, Segger System View, VS Code, Coverity static analysis, MS TFS, custom tools.
  • Build time: 31-60 seconds
  • Coding standard: We use an edited version of MISRA C.
  • Function too long: When the cyclomatic complexity is over about 50. When I have to scroll the screen more than 3x.
  • Code reviews: Independently performed by one or two individuals, usually by diffing.
  • Code time: 55
  • Test time: 20
  • Debug time: 25
  • Favorite thing about dev: The creativity, learning something new, the challenge of doing it well. Documenting/specifying it.
  • Least favorite thing about dev: Getting into something over my head.
  • Tdd knowledge: Just the basics. I used to think it wouldn't work for embedded systems.
  • Why are you attending: I think TDD is a good way to combine test with development. I like that it's a process, not a tool.