Course code: WEB-30
  • Years with company: 24
  • Years programming: 46
  • Primary programming language: C++
  • Other programming languages: C, Matlab,bash script (in the past I used FORTRAN, Assembler, Pascal, BASIC)
  • Unit test harnesses: None
  • Something else: I studied electronic engineering first and then I got a PhD on robotics. So my education is not on software development. I studied FORTRAN, Assembler and Pascal during my master at the University. Then I studied by self-taught C and C++ and perfected it. Because of this history my C++ skills are not "canonical". My expertize area is on scientific programming and, in particular, in optimization of the code. Optimization is obtained choosing the fastest mathematical algorithms and parallelizing and vectorizing the code. Because of bad experiences in the past I have decided to take this course. I am now mostly working on a 1.8 Mb long code: and I just discovered TDD. I have to implement a testing for this code and learn how to use TDD when I will start to work an a new code.
  • Test practice now: I just test the lines of code I write (trying to do the more exhaustive possible set of conditions) and then I keep the code. I realize this produces, especially on a large software, a code that fails easily and it is difficult to maintain.
  • Target system: x86_64 Linux. Code I develop normally needs at least 4 cores to run in real-time (lot of calculations).
  • Dev tools: gcc, cmake and eclipse for C++ (now)
  • Build time: 11-30 seconds
  • Coding standard: I don't understand the question.
  • Function too long: I try to implement a single mathematical algorithm or a single initialization in a routine. But I do not have a criteria. I just know that I do not like to reduce to much the routine length since I found "minced code" difficult to understand.
  • Code reviews: I don't understand the question. Maybe the what follow answers: usually the result of my code are data processing or model software whose results are used on our experiment and/or presented at a conference. I do not have a formal reviewing process.
  • Code time: 40
  • Test time: 40
  • Debug time: 20
  • Favorite thing about dev: I like to get a problem from a scientist and solve it with an optimized software. I often get a matlab or a C++ routine and make it run very fast, possibly with more accurate algorithm and results.
  • Least favorite thing about dev: Re-working many times on the same code (for big changes). This often break the code (now developed without TDD) and the bugs can appear in the worst moments.
  • Tdd knowledge: I only read the googletest tutorial.
  • Why are you attending: During an esperimental cruise I got a nasty bugs due to new addition to a code that caused ALL the algorithms, which was running well beforehand, have problems. After asking him, my new software development boss told me about TDD.