Course code: BARR-10
  • Years with company: 11
  • Years programming: 13
  • Primary programming language: C
  • Other programming languages: structured text (PLC), C#
  • Unit test harnesses: NA
  • Something else: Myself and the firmware discipline within our company have slowly migrated from electrical hardware to the Software group. If I'm not with family or in at a church function, I'm probably working on my house (which I suppose makes it my unintended hobby).
  • Test practice now: Machine system/regression tests.
  • Target system: Mail processing equipment controls. Specifically Atmel ARM (AT91 and ATSAM) using GPIO, CAN, Serial etc. Lots of control state machines.
  • Dev tools: Rowley Crossworks, AtmelStudio, B&R Automation Studio (PLC)
  • Build time: Under 10 seconds
  • Coding standard: Roughly based on Barr Group's standard
  • Function too long: More than one screen.
  • Code reviews: I'm the only experienced embedded developer, so code reviews are essentially, me explaining my code to the very junior C developer or to experienced C# developers.
  • Code time: 50%
  • Test time: 15%
  • Debug time: 35% (debugging before release, very few errors make it to the field)
  • Favorite thing about dev: I enjoy the design stages and figuring out how to solve the problem. I enjoy the actual coding of course and creating clean interfaces.
  • Least favorite thing about dev: Coming up with and documenting test plans isn't much fun. I also become extremely grumpy when all the other groups make unscheduled, undocumented and unannounced changes to my test machine when I'm trying to qualify brand new code functionality.
  • Tdd knowledge: I know what it is supposed to be. I've been to several short talks about TDD/unit testing for higher level languages. I purchased TDD for Embedded C a year ago and started through it. But progress slowed to a halt as project priorities picked up...
  • Why are you attending: I am convinced that TDD is the way to go. My new boss, Vanessa (attending the class with me) seems dedicated to the cause. I think I just need a jump start in how to practically implement TDD and how to setup the tools for our environment(s).