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.