Course code: TAN-001
  • Years with company: 4
  • Years programming: 4
  • Primary programming language: C
  • Other programming languages: Python
  • Unit test harnesses: Custom in-house harness for embedded C
  • Something else: My background isn't computer science, I studied EE back in undergrad and worked in the industry for it. My current job is my first real exposure to software engineering.
  • Test practice now: We unit test our embedded C code on the host using a custom harness with type-specific assertions. Tests run via CMake/CTest with gcov coverage tracking. CI runs everything automatically on every change.
  • Target system: We have ARM and NRF processors.
  • Dev tools: IAR Embedded Workbench, CMake, GCC, Git, Python scripts, gcov/lcov, Bamboo CI, JTAG debuggers.
  • Build time: 1-5 minutes
  • Coding standard: Fixed types, null checks, short functions, no magic numbers, zero warnings, consistent formatting.
  • Function too long: When it's hard to understand, has multiple responsibilities, or becomes difficult to test.
  • Code reviews: If a code change is large, we have PR review to go over ti changes.
  • Code time: 10
  • Test time: 5
  • Debug time: 20
  • Favorite thing about dev: Seeing code work properly on the hardware.
  • Least favorite thing about dev: Maintaining legacy code without clear documentation.
  • Tdd knowledge: I don't know much except it's a type of development where we write tests first.
  • Why are you attending: I want to become a better software engineer.