Course code:
MEDT-1
Years with company:
18
Years programming:
40
Primary programming language:
C
Other programming languages:
C++, Ada 95 (!), Assembly (rare)
Unit test harnesses:
Home-grown (my own)
Something else:
I have been developing on embedded systems & protocols nearly my entire career. I've been so focused on work the last 10+ years and been surprised by Git, DevOps, and Rust, e.g. I have some catching up to do - including with test frameworks and TDD.
Test practice now:
I use debug trace statements to follow the execution path and, when needed, log variable values. I use a tool to send messages to exercise the paths/features I'm interested in. Such testing is not readily repeatable.
Target system:
ARM M3/M4 MCUs controlling some discretes & peripherals (Bluetooth, USB, I2C, SPI). Soft real-time.
Dev tools:
Keil MDK, Segger System View, VS Code, Coverity static analysis, MS TFS, custom tools.
Build time:
31-60 seconds
Coding standard:
We use an edited version of MISRA C. We need to adopt the updated MISRA C now.
Function too long:
a) When the cyclomatic complexity is over about 50. When I have to scroll the screen more than 3x.
Code reviews:
Independently performed by one or two individuals, usually by diffing versions.
Code time:
55
Test time:
20
Debug time:
25
Favorite thing about dev:
The creativity, learning something new, the challenge of doing it well. Documenting/specifying it.
Least favorite thing about dev:
Getting into something over my head.
Tdd knowledge:
Just the basics. I used to think it wouldn't work for embedded systems.
Why are you attending:
I think TDD is a good way to combine test with development. I like that it's a process, not a tool.