Course code: WEB-18
  • Years with company: 1
  • Years programming: 2
  • Primary programming language: C
  • Other programming languages: python, C#, c++
  • Unit test harnesses: python unittest, ceedling/unity (for C)
  • Something else: Went to school for electrical engineering, but found towards the end of school that I liked programming more than the core EE coursework and enjoyed the programming work I intermittently got to do on co-op, so after my first job, wanted to transition to embedded programming.
  • Test practice now: A combination of unit testing and manual testing, with manual being more common.
  • Target system: Avr 8 and 32 bit systems, and embedded linux
  • Dev tools: Atmel studio, pycharm, visual studio code, visual studio, yocto.
  • Build time: 30-60 minutes
  • Coding standard: Company doesn't have any formal coding standards, but I try and make sure the code is consistently formatted, descriptively commented and the comments accurately reflect the code/intent. Code has unit tests written for critical/complex portions.
  • Function too long: If a function starts making more than one or two levels of decisions, especially if they are not closely related.
  • Code reviews: Code reviews are rather informal and mostly involve demoing the working firmware to colleagues.
  • Code time: 2
  • Test time: 3
  • Debug time: 5
  • Favorite thing about dev: I've always enjoyed working with computers, Its creating something new, though the math involved tends to be a little less arduous than required be EE, which is what my formal training is in.
  • Least favorite thing about dev: Working on poorly documented/commented software written by someone no longer at the company.
  • Tdd knowledge: TDD got its start in higher level weakly typed languages like java script, but has been moving into more parts of the programming world.
  • Why are you attending: I don't have any formal training for writing unit tests (or all that much formal instruction for programming in general), but feel it would benefit me to better learn the tools and theory behind unit testing and TDD.