Course code: WEB-24
  • Years with company: 13
  • Years programming: 32
  • Primary programming language: C
  • Other programming languages: python
  • Unit test harnesses: ctest (Chuck Allison), Unity Test API
  • Something else: Wrote open source libraries http://bacnet.sourceforge.net/ and https://github.com/skarg Contributor to Wireshark
  • Test practice now: Using CTest and CI via github, bitbucket, travis, gitlab. Manual validation.
  • Target system: Typically ARM microcontrollers, Atmel AVR, PIC Microship, and others, usually bare metal, sometimes with RTOS. Some target systems are Linux or embedded Linux. Some target systems are Windows PC.
  • Dev tools: GCC, Make, IAR, Rowley Crossworks, Segger Embedded Studio, Atmel Studio, STM32 Cube IDE, MPLab X, and others.
  • Build time: 1-5 minutes
  • Coding standard: Wrote it based on Westinghouse, Barr Group, Ganssle, Robert Martin Clean Code, and Wireshark. Follow Ganssle Naming Convention. Follow Clean Code principles.
  • Function too long: When it is beyond my screen height.
  • Code reviews: Pull request or merge request online via bitbucket (or gitlab or github). Typically check for adhering to coding standard, and adhering to high-cohesion low-couple architecture for code placement.
  • Code time: 50
  • Test time: 25
  • Debug time: 25
  • Favorite thing about dev: Creative outlet, helping others, calming and enjoyable to write code.
  • Least favorite thing about dev: Managing changing API for releases in public open source software/firmware
  • Tdd knowledge: I started using TDD for embedded firmware 2000 after reading an article by Chuck Allison.
  • Why are you attending: Learn methods of applying TDD to legacy code, particularly separating GUI and other views from the process and presenter. I usually end up re-writing large amounts of code to add TDD.