Course code: CIT-1
  • Years with company: 4
  • Years programming: 20
  • Primary programming language: C++
  • Other programming languages: Java, Kotlin, Ruby, JavaScript
  • Unit test harnesses: Google Test, CppUTest, JUnit
  • Something else: I see a trend that most mainstream programming languages are adopting functional programming features into their languages. I'm in the process of trying to learn more about functional programming and think it might be good to use in combination with TDD.
  • Test practice now: I spend most of my time testing by writing unit tests to verify the code under test is doing what I expect. Next I test the code in production to verify it's working as expected when integrated with the rest of the system.
  • Target system: Currently writing software that runs on multiple platforms. We have to make sure we can write as much cross platform code as possible so that the same code can be reused on all platforms.
  • Dev tools: Visual Studio, Visual Studio Code, Android Studio, Clang, CMake, Git, Windows Terminal, Docker, Windows Subsystem for Linux
  • Build time: 11-30 seconds
  • Coding standard: We try to keep our tools up to date with the latest standards and use C++17. We encourage our developers to use the modern features of the language to improve code clarity, such as using smart pointers instead of manually managing memory.
  • Function too long: I feel like a good way to tell if a function is too long is if it violates the Single Responsibility Principle.
  • Code reviews: Everyone on our domain team gets added to the code review and is free to comment any suggestions. Two developers need to approve the code review before it gets submitted into main branch.
  • Code time: 40
  • Test time: 20
  • Debug time: 40
  • Favorite thing about dev: I like that programming gives us the ability to create so many great things and all you need is your computer.
  • Least favorite thing about dev: Trying to figure out the root cause of a software bug that is intermittent can be frustrating.
  • Tdd knowledge: TDD is a test first approach to writing software. You write the unit test first before any production code is created. This has the advantage of never having to submit production code without tests and also improves the design of the code.
  • Why are you attending: I've taken this TDD class, but many years ago. I think taking this class again will remind me of the all concepts I learned in the past and give me extra insight to apply them better.