Programmer Wanted

by pieterh on 14 Oct 2009 18:31

Good news and bad news. Wikidot has a new developer - me. We're also hiring a new team member, and we're really close to choosing our candidate. But, for one time this blog posting is up-close and personal, and about my very favorite subject, namely me.

I've been writing code since I got a VIC-20 for my 18th birthday. I've been selling my work since about three months later, when people began sending me cheques and cash in exchange for cassettes loaded with little BASIC games.

Although I've done a lot of different stuff over the years, from political activism to writing and music, my real job is programmer. There is nothing quite like ripping open a body of code, chopping and cutting out the bad pieces, creating new ones, fitting it all together and watching it run like the six million dollar man. Or, simply, creating useful things out of raw mindstuff.

So it's been somewhat frustrating to remain, for the last three years, on the outside of Wikidot, as a user, knowing that there was a mountain of work to be done on the other side of the fence, that I was capable of helping, and being unable to.

Over the last months, we've done a total reorganization of how we build Wikidot. You've already seen the external signs of this. Like the design section on this wiki. This is now fully part of our process. When we built the new Join module, we wrote a design sketch, asked for comments and took those into account. The design sketch became a contract between us and you. We then made that design, exactly as documented.

When Michal pushed the Join module live, yesterday, I copied/pasted the design sketch into the module documentation. This is how it should be: not a single important thing gets made that is not reviewed by everyone who cares, before. No black boxes, no surprises, no dancing pink unicorns.

Internally, the changes are total. We've moved to Git, which is a flexible modern source control system. We've turned what was originally a one-man development process into a scalable team effort. We use an issue tracker for every single change (redundant to say that tracker is built using Wikidot and became an Iron Giant template). We push every change through a clear path from design to production, documenting every step.

It has become such an easy, explicit, and reliable process that even an old fool like me can join in, and so this is what I've started doing.

Actually, the first change I made was to fix the English on most of the texts and error messages, buttons, and menus. This caused such a massive number of changes that I was temporarily banned by my co-developers for smashing the test branch… :-) So now I'm politely making small and discrete changes, and will do the English fixups in smaller batches.

If you reply to a comment and no longer see that annoying "Re:" in the subject, that was my work. It's a small change, just a few lines, but it is deeply satisfying to have jumped over the wall and started to pull out weeds in the garden on the other side.

Oh, and the bad news: more people making changes in the code means more risk of errors and mistakes. So when, not if, I mess up, please forgive me.

Comments: 16

Add a New Comment