Course code: ETA-1
  • Years with company: 2.5
  • Years programming: 8
  • Primary programming language: C
  • Other programming languages: Python
  • Unit test harnesses: Unity + CMock + Ceedling, Python unittest
  • Something else: Embedded dev in watch manufacturer company Bachelor degree in embedded and automated systems In love with Python, always looking for a new script to write. 2nd most ancient team member although it's my first job and I've got my degree only 3 years ago.
  • Test practice now: I currently test my code by playing with the target and sometimes modifying the internal states with the debugger.
  • Target system: Mostly 32 bits ARM Cortex-M (M0-M4)
  • Dev tools: gcc toolchain, Makefile + Eclipse. Sometimes Ozone for debugging.
  • Build time: 1-5 minutes
  • Coding standard: Many MISRA principles make sense to me and my golden rule is to write code for others, not just for me. It has to be quickly understood.
  • Function too long: It's too long when it does too many different things and/or does not fit on a screen. I can tolerate a long function consisting of a single large switch dispatching to multiple functions, if the switch contains no logic.
  • Code reviews: We review every branch before it's merged. We pay attention to readability, standards, function size, and try to spot weak points, although we know we're never able to get enough understanding of the code reviewed to spot real logic issues.
  • Code time: 10
  • Test time: 20
  • Debug time: 70
  • Favorite thing about dev: I like the fact that without SW the target is inert, with SW it comes to life. I like when we know the SW well enough to be able to change it really quickly. I like the feeling we have when we understand the root cause of a complex bug.
  • Least favorite thing about dev: I don't like having to work with third-party code because it usually means that any issue found will take ages to be fixed. It's also always harder to debug because it has no consistency with the company code.
  • Tdd knowledge: I've read "TDD for Embedded Systems", I've contributed to the introduction of Ceedling/Unity/CMock in the team. I've written unit tests for a personal Python project, which were executed on a CI server.
  • Why are you attending: I want to experience TDD (writing test first) to see the impact it has on the design. I want to see if we can make mocking easier. I'm curious about the answers to the questions we've had while trying to add unit tests to our code.