Course code: TOP-1
  • Years with company: 7
  • Years programming: 38
  • Primary programming language: C
  • Other programming languages: C++ Python VERY limited C# & Java ASM (when necessary) Ladder Logic (PLC)
  • Unit test harnesses: none - unless you count NI's TestStand, which I've used a little bit for functional-level testing (black box and white box)
  • Something else: Most of the code I have developed has been from deeply embedded applications, frequently with no OS.
  • Test practice now: The hard way! Depends on the system/application, during development I will try to construct different conditions (HW signals or comm messages) to verify expected operation including error handling (not doing what it should not do)
  • Target system: Current target is STM32 Arm M4 processor running FreeRTOS. Development includes C & C++. Primary function as a weight/force sensor. Primary interface is CAN comms.
  • Dev tools: IAR Embedded Workbench
  • Build time: 11-30 seconds
  • Coding standard: We have one! :-) It has been poorly enforced/policed. :-( Primarily focuses on format, file & function comment styles, code comments, and some name conventions.
  • Function too long: If there is a comma in the number of lines long a single function is ... definitely too long. :-/ MY opinion, if it is more than a few pages on the screen, it should be considered for further breakdown into helper functions.
  • Code reviews: We used to do them! :-/ We had tried the free-form throw it on a projector and everyone talk about it, give comments. Very limited success at trying to methodically walk thru line by line as a group. Also tried a code review tool but not used now
  • Code time: 25
  • Test time: 10
  • Debug time: 15
  • Favorite thing about dev: Times above total 50% because that is about how much of my time I get to use for coding. I like making things work / DO something useful.
  • Least favorite thing about dev: fighting tool chain issues
  • Tdd knowledge: Have heard the term, even exposed to some flavor of it a long time ago. At a high level, I believe it is thinking about how you're going to test an app/product BEFORE starting development, and integrating tests into the development process.
  • Why are you attending: Because others thought this was the right time to introduce this training while a geographically disperse group are at our sight for other internal training.