Factomize Core Dev Update 3

It feels good to be able to say: I finally understand how factomd and the factom protocol works.

After almost forty calendar days, I have reached a point where I’m comfortable with the internal processes of the code. It’s not a perfect mastery, that will likely take years to achieve, but it’s enough to know how all the pieces fit together, how changing one impacts the others, and most importantly of all, where to look to find out more.

To recap what I have been doing: instead of diving into the code by trying to implement something and learn by doing, I wanted to understand how everything works first and in the process create documentation. It’s a departure from the … Read the rest

Factomize Core Dev Update 2

What’s the best way to learn a new codebase? That’s a question I have asked myself many times leading up to this project. I’m used to working in already established areas, like Symfony, Node.js, vBulletin and XenForo systems, that have vast and readily-available documentation, whether it’s from the original developers or user-generated. This is the first time I went delving mostly blind.

This is roughly the process I laid out for myself:

  1. Get accustomed to working with the product
  2. Gather all available documentation
  3. Read code
  4. Attempt to explain my understanding and have that reviewed by the experts

Point One:

This happened over the span of a couple of months as I worked on procedural solutions for the Factomize forum, including … Read the rest

Factomize Core Dev Update 1

Five months ago, when I was rehired by David Chapman, I’ve never done any work with blockchains or Golang. I was familiar with the basics of the technology, but nothing intricate. It feels like years ago already. The goal from the start was to eventually end up doing core development but the path to get there was very steep.

At first, it was just reading the Factom white paper and learning Golang while working full time on the Factomize forum, then figuring out how to set up a developer sandbox for my own testing. Some of the solutions for the forum required me to become familiar with interacting with the blockchain via factomd, and so I became familiar with how … Read the rest