Course code: ZOO-1
  • Years with company: 0.67
  • Years programming: 2.5
  • Primary programming language: C++
  • Other programming languages: Python, Java
  • Unit test harnesses: Google Test, JUnit
  • Something else: I like working on performance critical code and would like it be a larger part of my day-to-day job
  • Test practice now: 1. Unit tests for non-trivial methods, classes and functions (unfortunately, not everything has unit tests) 2. Simulation tests for testing the entire code end-to-end 3. Hardware-in-the-loop tests, depending on the nature of the change 4. On-vehicle tests for changes that end up on the vehicle
  • Target system: It is a custom developed heterogeneous compute architecture
  • Dev tools: bazel, git, vim
  • Build time: Under 10 seconds
  • Coding standard: Our coding standards are based on Google's C++ style guide with modifications to suit Zoox's case. We currently use C++11 with exceptions disabled.
  • Function too long: A long method generally has one or more these characteristics: 1. Has a very generic name 2. Does more than what the name says 3. Has blocks of code in the body with comments explaining what each block of code does
  • Code reviews: Every PR must go through code review, testing and possibly CCB approval before it can be merged. There's tooling to ensure each step is done. Most of the reviews I've had have been useful but sometimes it's hard to find the right people for a review.
  • Code time: 60
  • Test time: 15
  • Debug time: 25
  • Favorite thing about dev: Software development is probably the only field where one can go from ideas to something material in a matter of hours.
  • Least favorite thing about dev: Dealing with code which is lacking documentation, is unmaintained, and has no tests.
  • Tdd knowledge: write test, write code, run test, fix if failure, repeat
  • Why are you attending: To learn about unit testing best practices, tools and hopefully learn about ways to follow TDD more efficiently