Course code: BARR-13
  • Years with company: 5
  • Years programming: 12
  • Primary programming language: C++
  • Other programming languages: C#, Python, Javascript, Java
  • Unit test harnesses: JUnit, NUnit, googletest, mocha, unittest (python), jest
  • Something else: I maintain our company's CI/CD infrastructure and act as an adviser for other teams looking to get started with testing.
  • Test practice now: A combination of unit tests and functional tests run on target. We also have some dedicated test engineers who test specific hardware requirements that can't be covered by software tests alone.
  • Target system: Industrial sensors powered by Cortex M4 microcontrollers.
  • Dev tools: IAR, Visual Studio, GCC, Clang, CMake, Docker, GitLab
  • Build time: 11-30 seconds
  • Coding standard: Informal for now. We're slowing adopting the use of clang-format and clang-tidy in some projects.
  • Function too long: If it can fit one one page, but it depends on the cyclomatic complexity. 15 lines of serial math computations is different than a dozen nested 'if' statements.
  • Code reviews: Didn't exist 2 years ago, now gradually adopting pull-request, peer-review workflow using GitLab.
  • Code time: 60
  • Test time: 30
  • Debug time: 10
  • Favorite thing about dev: Solving complex business problems.
  • Least favorite thing about dev: Hardware limitations. When you write well-designed modular software, but it ends up running 10us slower, which can negatively impact high-speed sensors.
  • Tdd knowledge: I've read your book :) I practice it judiciously.
  • Why are you attending: I want to learn from the best.