Course code: WEB-34
  • Years with company: 16
  • Years programming: 21
  • Primary programming language: Harbour (CA-Clipper)
  • Other programming languages: Python, C#, bash, learning C
  • Unit test harnesses: C# NUnit, python unittest, little bit of CppUTest, little bit of Unity
  • Something else: Since I'm 10, I've worked with my dad repairing cars, making cachaça and selling it in a bicycle. Then helped him making alembic used for distilling cachaça. Then I changed to programming, helped run an in-house internet provider. Always mostly self-taught with manuals. But I had to work so hard that made me forgot to study. also good books are pretty expensive here. All I learned was because some work required. I work in a small software-house with a POS software. Been there since 2005. Recently after a surgery recovery, I had some time so I've started to learn C because of your TDD for embedded C book. I bought it because of Uncle Bob's materials - where I came to know you. Fell in love with testing and clean code. Harbour, my main language, has it's roots in C. I can write C and assembly mixed with it. So I share many problems developers suffer with C. If I learn how to TDD in C, I might be able to do TDD, and SOLID in Harbour. At least improve vastly the code quality.
  • Test practice now: I have a small legacy project in C#, that I was able to recreate the core using TDD and NUnit, also tried to apply SOLID, TDD guided by ZOMBIES and other advises from you, Uncle Bob and Martin Fowler. My main project, who pays the bills, is in Harbour, which does not have a Test Harness nor Code coverage. I'm currently writeing a free, opensource test harness for it inspired by CppUTest, JUnit, NUnit and xUnit.
  • Target system: Mostly Linux and Windows desktop. For embedded I experimented with ESP8266.
  • Dev tools: JEdit, VsCode / Visual studio community, docker, subversion, git, virtualbox
  • Build time: 5-30 minutes
  • Coding standard: I don't have one. One reason is lack of study. I don't know good resource. I try evolve my code in a way easy to read and refactor. for example, Harbour and python does not have tooling to rename like Java, so I try to use prefix as a namespace.
  • Function too long: A year ago, I never paid attention. Now, if it have more than 7 lines (not counting data setup), and/or makes me thing when I read it.
  • Code reviews: I do a lot of pair, even before hearing about agile. So I avoid later code reviews as much as I can. And I always have a tight relationship to the user to avoid misunderstandings.
  • Code time: 25
  • Test time: 25
  • Debug time: 50
  • Favorite thing about dev: I like to learn and research. I find programming much fun and powerful, also it gives me a chance to create a product that will last and can sustain my family even if something happen to me.
  • Least favorite thing about dev: I only perceived what I did not like about a year ago, when I heard about Uncle Bob and TDD: I'm always tense, afraid of rotten, fragile code. It feels that only I could handle it. As I got ill (4 years in bed), this became even more dreadful.
  • Tdd knowledge: I know the basics. For me it's a way to ensure that my code is usable right from the beginning and keep all specs are written in executable form. It leads to better architecture. Sticking to it even when is really hard, it's worth.
  • Why are you attending: I need to get a better job for my family. I'm ill and I might not handle my current work for much longer. I need to try something that does not require working 10-14 hours/day. I'm confident that I can improve my life with this knowledge!