Course code: BARR-5
  • Years with company: 4.5 years
  • Years programming: 20+ years
  • Primary programming language: C (microcontrollers) and Python (host code)
  • Other programming languages: C++, have used many more in the past, starting to learn Elixir
  • Unit test harnesses: cpputest, cmockery, unity, Google Test, Boost Test, unittest (Python)
  • Something else: I am currently working my own toy programming language and writing a compiler from scratch as a learning exercise. I started with ply and lex/yacc, but neither really supports my chosen language syntax (white-space significant).
  • Test practice now: Unit tests using TDD where practical and system-level feature/regression tests. For full system development, I often perform system-level fuzzing tests.
  • Target system: Varies by customer, but often Cortex-M class microcontrollers
  • Dev tools: C: gcc + openocd + eclipse, Python: PyCharm, cmake. Visual Studio on Windows.
  • Build time: Under 10 seconds
  • Coding standard: Varies by customer
  • Function too long: When you cannot explain its purpose on one line or when it needs comments in the body to explain how it works.
  • Code reviews: Infrequent by others as my consulting is often sole-developer for a product or specific features. Lint and -Wall -Wextra -pedantic are my friends.
  • Code time: 35
  • Test time: 35
  • Debug time: 30 (including system testing)
  • Favorite thing about dev: The challenge and continuous learning. Working with people to create great solutions.
  • Least favorite thing about dev: Fighting with tools and poorly written code. Bureaucracy. Solving the same problem over and over.
  • Tdd knowledge: I use it frequently.
  • Why are you attending: Possibly teaching it in the future!