Course code: MEG-1
  • Years with company: 6
  • Years programming: 20
  • Primary programming language: C++
  • Other programming languages: Bash C C# GML Java Matlab
  • Unit test harnesses: Custom frameworks
  • Something else: Outside of work, I also enjoy writing software. I have recently started experimenting with the game programming. I hold the code written in my personal time to the same high stanadards that I hold the code written at work, and share many techniques and processes between the two. Working in different problem domains gives me new perspectives which can help me solve new problems. When I'm not writing software, I enjoy camping with my family, and snowboarding with my friends.
  • Test practice now: A combination of automated unit tests and manual testing on hardware. Historically, this has skewed mainly towards the latter, but in the last couple of years I have begun to test as much as possible via unit tests. As a project team, we are looking to perform more automated testing on hardware. This is not something I have been involved with personally yet, but am looking forward to learning about it.
  • Target system: We typically develop hand held products used for electrical test. These products often involve multiple processors, and need to be designed with safety in mind.
  • Dev tools: Hstorically, IAR tools, but we're moving to GCC and other open source tools that play better integration with CI tools. We develop primarily on Windows, although there is some Linux/WSL work (particularly with CI). We also use Matlab/Simulink.
  • Build time: Under 10 seconds
  • Coding standard: We had some vague coding guidelines that were mostly suggestions, and mostly ignored. I developed a coding standard with input from the whole software team. This new standard is followed more closely than the old one. It is overdue for a review.
  • Function too long: If it's performing multiple distinct tasks it should be split. If it doesn't fit comforatbly in the editor window on a small monitor with other tabs and editor panes open, it should probably be split.
  • Code reviews: We try to review all code that is integrated with the develop branch. There is no formal process for how. Sometimes it is done via screen share, sometimes via Bitbucket pull request. Reviewees nominate a reviewer familiar with the subject.
  • Code time: 70
  • Test time: 20
  • Debug time: 10
  • Favorite thing about dev: Solving problems Creating clean/flexible solutions Seing a project come together
  • Least favorite thing about dev: Hunting for bugs in poorly written code Weighing up the pros and cons of tidying up poorly written code Making the same points over and over again in code reviews
  • Tdd knowledge: I know about the basic cycle of test-code-refactor. I have tried to practice this where possible, however, we currently have a lot of legacy code that cannot easily be unit tested. I am trying to refactor this code so that it can be unit tested.
  • Why are you attending: The company is looking to adopt Agile processes for software development. TDD is a crucial part of this. I have shown an interest in the subject, so was nominated for the course.