Course code: BARR-6
  • Years with company: 5
  • Years programming: 12
  • Primary programming language: c, c++, matlab, simulink
  • Other programming languages: assembly
  • Unit test harnesses: customized
  • Something else: I have been working as a software engineer in the US since 2004. I worked for 4 different companies and I have been mainly worked on application software, such as diesel engine control, transmission control, and crane control software. I also use c++ with Qt to write display software during the past 5 years. In all my jobs, I use water fall (V-model) development process for the software development. The unit testing is normally performed on the test bench or the real machine, for example, a crane, a tractor, or a truck. And I have never used TDD.
  • Test practice now: I use a simulator or the HIL (hardware in loop) in our software lab most time. And I have to use cranes to capture the faults that cannot be duplicated in the lab. The modules communicate to each other via CAN bus (CANOpen). I trace the data on the CAN bus to look for anything abnormal. I use Lauterbach debugger for debugging. The unit testing is done by our team in India.
  • Target system: mobile cranes
  • Dev tools: GCC compiler, Tasking C/C++ compiler, Qt, Lauterbach with Trace32, dSpace (HIL)
  • Build time: 5-30 minutes
  • Coding standard: Our company's c/c++ coding standards
  • Function too long: a function that does more than one thing; it has deep loops or deep nested if-else; or it duplicates the same logic as others.
  • Code reviews: We use Phabricator to do online review
  • Code time: 30
  • Test time: 20
  • Debug time: 50
  • Favorite thing about dev: Write code and watch it works as expected on a target system.
  • Least favorite thing about dev: Frequently changed the requirements and debugging.
  • Tdd knowledge: Very limited.
  • Why are you attending: To seek for a better software development approach to improve our software quality and meet deadlines.