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