Course code: CARBON-2
  • Years with company: 1
  • Years programming: 50
  • Primary programming language: C++ (or C in C++)
  • Other programming languages: C, assembler (10 architectures), bash, Python, perl, LISP, FORTRAN, SNOBOL
  • Unit test harnesses: CppUnit
  • Something else: While blindly single-stepping instructions with no symbols on a new architecture at a new company, I once recognized that that the code had been compiled from C code that I had written 3 years previously.
  • Test practice now: Some unit tests, some integration tests, some end-to-end tests, some manual tests, some automated tests, some regression tests, some code checkers (valgrind etc.), some beta deployments, ...
  • Target system: Linux-on-PC
  • Dev tools: vi/vim, GNU toolchain, gdb, printf, bash, Linux utilities
  • Build time: 1-5 minutes
  • Coding standard: Linux kernel, modified by personal experience, sometimes coerced by legacy state
  • Function too long: when it cannot be followed from reading the code
  • Code reviews: It is hard to get the right level of communication. Either nIt-picking or glossing prevails.
  • Code time: 40
  • Test time: 10
  • Debug time: 50
  • Favorite thing about dev: finding the limits of complexity, development time, execution time and size
  • Least favorite thing about dev: Bureaucratic bean-counters who apply metrics without understanding.
  • Tdd knowledge: There's enough hype. The overall environment has a strong influence on how well tdd succeeds.
  • Why are you attending: To learn the present state of tdd, the costs and benefits, and how it might fit for our projects.