Course code: WEB-31
  • Years with company: 1
  • Years programming: 36
  • Primary programming language: C++
  • Other programming languages: Rust (moving to this as primary) Clojure (for hobby projects, web/react stuff) Lua
  • Unit test harnesses: Google Test Catch / Catch2 CPPUnit Busted clojure.test test.check (Clojure version of QuickCheck -- limited) Rust Test (part of the language) an in-house embedded unit test framework in C++ lots of others along the way
  • Something else: I'm the R&D Director and have been doing high-reliability embedded systems since the early 1990s. I joined the company 15 months ago and have been encouraging the team to shift into modern development practices, including TDD, Clean Code, CI/CD, etc... I've been using XP since 1999 (added Kanban at some point, moved from pairs to mobs recently.) I gave a talk at Software Craftsmanship North America 2017.
  • Test practice now: We are using Lua Test to do acceptance testing of one legacy project. Using Rust Test on a starting out green-field project.
  • Target system: We make sensors and controllers for sensing properties in water. New systems are built on small ARM M-type processors, many older systems on MSP430. Lots of bare-metal, starting to use a small RTOS.
  • Dev tools: CLion, VSCode rustc, cargo, clippy, etc...
  • Build time: 11-30 seconds
  • Coding standard: Rust has an opinionated style checker built in, so we use that. (Team had no standard for its previous C coding.)
  • Function too long: If it is more than 5 lines long.
  • Code reviews: My preference is to use Mob Programming and code review as you go.
  • Code time: 5
  • Test time: 5
  • Debug time: 1
  • Favorite thing about dev: Everything.
  • Least favorite thing about dev: That I don't do it enough now that I'm in management.
  • Tdd knowledge: I've been using TDD since 1999 (XP Immersion III). This is almost exclusively in embedded systems and is layered with automated acceptance tests. I've read Kent Beck, Mike Feathers and Gerard Meszaros, plus GOOS and a few others along the way.
  • Why are you attending: Want my team better exposed and I'm looking forward to getting some insights along the way. (And I'm getting to play SW Engineer for a while, instead of the management gig.)