Course code: BARR-13
Years with company:
Primary programming language:
Other programming languages:
Unit test harnesses:
I'm an Embedded Software Engineer developing firmware for Bluetooth Low Energy chips.
Test practice now:
We usually test the firmware on the device, either using the debugger, oscilloscopes, DIOs or checking the final behavior of the device using manual tests.
We are starting to deploy automated tests with Python + JLink, using SEGGER RTT to output traces and parsing the log on the host PC.
JLink, Eclipse, GCC, Keil, IAR, Python
We code in C and use the most of the basic rules. We have our own internal company standard which specify some extra rules.
Function too long:
I use a few subjective ways:
1. when the function does more than it names says it does;
2. when there is repeating code inside that could be abstracted in another function;
3. when you have to scroll multiple times
We do code reviews in Crucible, linked to Jira for every code change. They are usually very useful.
Favorite thing about dev:
It's fun! I like how you can resolve the same problem in different ways. In other words, I like to spend time designing generic solutions for problems that arise in different areas/devices, etc.
Least favorite thing about dev:
Maintaining legacy/badly designed code.
It seems to focus on writing tests first and then writing firmware to pass the tests, instead of the other way around. I hope it can be be helpful to improve code quality and testability.
Why are you attending:
I want to learn more about TDD. As the teach lead of my team, I would love to bring in a new way of developing software and hopefully improve the quality, maintainability and testability of what we deliver.