Course code:
WEB-34
Years with company:
6
Years programming:
20
Primary programming language:
C++
Other programming languages:
C,C#,Java
Unit test harnesses:
Google Test
Something else:
I am currently in a position where I no longer develop much code but I am a technical lead for embedded code development.
Test practice now:
Some level of unit testing, white box testing (single stepping) and functional testing
Target system:
Mostly work on developing autopilot systems for small drones. Largely use STM ARM Micro-controllers running u-COS. Also embedded Linux
Dev tools:
Visual Studio, Eclipse, Keil uVision.
Build time:
31-60 seconds
Coding standard:
Mostly following MISRA guidelines with a set of exceptions and additions. Currently don't use a good mechanism to enforce the standard. Have used tool like PC-Lint but they are cumbersome. It is also difficult to deal with legacy code
Function too long:
If it can't fit in the length of a standard screen. If its purpose cannot be understood on a single read through. If it is not providing a concise single function.
Code reviews:
Use Crucible and Git for code reviewing depending on the code base. Crucible is most widely used but we are trying to migrate from SVN to Git
Code time:
50%
Test time:
20%
Debug time:
30%
Favorite thing about dev:
The ability to influence the functionality of a product. Software is the central piece in robotic systems. I like having the ability to experiment with algorithms and be able to quickly test and iterate on them
Least favorite thing about dev:
Developing prototype code is easy. Developing production code is hard as it needs to meet certain standards. All the processes associated with developing code to a certain level of quality are a burden to developers when they cannot be streamlined
Tdd knowledge:
I know that you first develop a test and then you code to the test but I have never developed under this paradigm
Why are you attending:
We currently don't practice TDD for embedded software development. I am interested in this course as a way to learn about TDD and see if this is something that my team should move towards