Tim Penhey made an excellent post this morning where he took some of his time to thank those who contributed to who he was an his professional development. I think that his post makes a very good post that us software engineers don’t become who we are in isolation - we are part of a much broader network of other people and our development is often shaped by the activities and advice of those around us. I wanted to take this post to share a few thank-you’s of my own to former mentors and coworkers who showed me a lot.
First of all, thank you to the original compiz team - Danny Baumann, David Reveman, Dennis Kaspyrzk, Jigish Gohil, Erkin Bahceci, Guillaume Seguin. You were all my original mentors who got me into programming in the first place and its been a wonderful ride ever since. Thanks for putting up with fifteen-year-old me and some of my dramatic behavior at times! But thanks even more for believing in me and giving me a chance to go on and make further contributions to compiz and other projects. It was something I really needed at the time and gave me a real head start.
Further thanks go out to some of the people I worked with on some of the hobby projects I did. Rodolfo Granata - thanks for writing the original Freewins plugin and thanks for taking my (massive) patches to make it do even more. Kevin Lange - thanks for working on the original wiitrack Wii-remote headtracking plugin and thanks even-more for working with me to get it working with actual hardware.
To my buddies at Canonical - thanks Jason Smith for being an all-round awesome dude and putting yourself on the line to recommend me for working at Canonical. I enjoyed working with you on every single damn project we worked on together, whether that be Compiz, Nux, Unity or whatever. Our late-night debugging sessions were awesome and you were supportive all the way. I always loved geeking out and talking about OpenGL and such with you.
To Neil Patel - thanks for being an all-round awesome technical lead. Neil was the one who stood up for us when we had a “massive axe placed over our heads” to deliver a newly rewritten based-on-compiz-and-nux Unity for Ubuntu 11.04.
To Didier Roche - thanks for showing me the ins and outs of Ubuntu and Debian packaging, a world that I totally would not have been able to understand without you. Thanks for always giving me another chance, especially when there was a last minute bug or tarball that wouldn’t build or whatever.
Robert Carr - thanks for being a general all-round awesome hacker who showed me that you could always do something in novel ways, and furthermore, thanks for being an awesome friend.
Tim Penhey - you didn’t think I was going to leave you out did you? Tim was an awesome line manager. Not only did he stand up for his engineering team (which was massive), he also worked with all of us to turn us into really smart engineers. I’ve got about 12 books (and counting!) on software in my library now and its all thanks to Tim’s recommendations. Tim taught me how to go from a hacker to a software craftsman by writing good, clean and lean code, test driven development and consistent (i.e. non chaotic) development process. I could always rely on Tim for advice on how to tackle a particular problem or improve myself.
Alan Griffiths - I was incredibly privileged to work with you, and the people whom you work with at Canonical still are. Alan taught me the fine details of getting tests in place around almost everything and his “you touch it, you test it” mentality really changed the way I thought about writing code. Alan also helped me to write a lean C-based object system for compizconfig, which is the very reason why things like the compizconfig gsettings backend (along with its desktop integration code and others) has 98% test coverage, which is remarkable for software written in C.
Daniel van Vugt - thanks for showing me that there was always another way of doing things. We may not have agreed on everything, but that is certainly a good thing. Daniel showed me that there are ways to write good, clean, testable software without it becoming enormously complex and hard to read.
Marco Trevisan, Andrea Azzarone, Brandon Schafer - thanks for being awesome colleagues and working with me to produce great stuff. We were in the same boat for a lot of things and all learnt new stuff together.
Of course, this list doesn’t encompass everyone. There are people whom I worked with from time to time both at Canonical and on compiz which definitely had an impact upon my professional development as an engineer and if I listed all of you I’d end up with a blog post several pages long!
The end result of years of engineering process isn’t just a final product that you see on a screen. Its also strongly-forged friendships of all the people who were there every step of the way.