Course code: WEB-28
  • Years with company: 8
  • Years programming: 16
  • Primary programming language: C
  • Other programming languages: C++, Python, Java, C#
  • Unit test harnesses: Custom unit test harness loosely based on junit
  • Something else: I started my career doing mostly HDL but have moved now to mostly doing embedded software. I enjoy the faster turn around for software.
  • Test practice now: CI testing using Jenkins. General unit tests for non hardware dependent code. Hardware unit tests running on hardware with PC commanding the tests using python scripts. Integration tests running on hardware as well.
  • Target system: Several embedded systems communicating and performing various different functions. It is a high reliability environment.
  • Dev tools: Visual Studio Code, Green Hills Software
  • Build time: 11-30 seconds
  • Coding standard: Usual formatting of header and cpp files, naming conventions, etc.
  • Function too long: Generally, when it is trying to do more than one thing, but there are certainly exceptions.
  • Code reviews: We use Gitflow and require at least one other team member to review and approve pull requests before they are merged into the develop branch.
  • Code time: 20
  • Test time: 40
  • Debug time: 40
  • Favorite thing about dev: I like debugging complex issues in embedded systems (race conditions, hardware problems, etc.). I typically like writing drivers.
  • Least favorite thing about dev: Many devices have poor documentation.
  • Tdd knowledge: I know the principles behind it and have tried it occasionally, but don't use it regularly.
  • Why are you attending: I'm curious to know how to better apply tdd to embedded systems. I've run into problems applying tdd to embedded code and I'd like to know if there are some other ways I can apply it to provide value.