Course code: WEB-19
  • Years with company: 8 months
  • Years programming: 12
  • Primary programming language: C++ at work.
  • Other programming languages: C Python
  • Unit test harnesses: Tried a little GoogleTest, Unity, and CPPUTEST in my own time. Previous employer's attempts at test harnesses.
  • Something else: Sole embedded software engineer of a small start-up (6 people). I will be inheriting firmware responsibility, of a prototype and initial product, from my CTO and would like to apply some process to keep legacy code working, and new code clean and tested.
  • Test practice now: Manual testing is the current method. Strongly want to get TDD and unit tests as standard practice.
  • Target system: ARM Cortex PWM, I2C, CAN, UART, and Wifi.
  • Dev tools: CLion Segger JLink Plus
  • Build time: 1-5 minutes
  • Coding standard: Non yet, although CLion's built in code cleanup and analysis tools are used to apply some uniformity. There is potential for coding standards to be required on future products.
  • Function too long: In theory, if it does more than one thing. In reality, if you have to scroll ;-)
  • Code reviews: Due to small team it ammounts to me reviewing and cleaning my own code before committing to version control. Code is altered by two other team members, currently without review. I'm currently introducing new code processes into the company.
  • Code time: 40%
  • Test time: 10%
  • Debug time: 50%
  • Favorite thing about dev: Solving problems. Making things. What I love about embedded software as apposed to desktop software is causing an effect in the physical world rather than the virtual world. Who doesn't like making an LED blink?
  • Least favorite thing about dev: Bug fixing. Bug fixing. Bug fixing. .... Oh, and bug fixing.
  • Tdd knowledge: Red, Green, Refactor. Write a test, make it fail. Make that test pass in the simplest way possible. Clean up that code. Repeat until your task is complete.
  • Why are you attending: I have been reading a few dev books recently (including your own) and the use of TDD makes a lot of sense to me, but I get stuck on an embedded level, and when working with legacy code.