Archive for September, 2008

My time at Gameloft

Posted on September 26th, 2008 in Work Experience | 1 Comment »

After my third year at the Polytechnique de MontrĂ©al, I went for an internship at a gaming company. I’ve always liked video games but I wasn’t sure if I would really like working in the domain so an internship was the perfect solution.

As some of you may know, Gameloft is a rather big player in the cellphone games market and is known worldwide. It is also affiliated with the giant Ubisoft. That makes Gameloft a good entry point for real gaming development positions (programming cellphone games isn’t especially thrilling).

My tasks consisted of porting a version of a game that worked (and was released or approved for release) on a particular cellphone to another very similar cellphone. Most of the time, it was very boring and didn’t involve much thinking from me. I must say that I didn’t learn a lot in terms of programming knowledge. However, I did learn a lot about project and team management, bug reporting as well as versioning.

The hierarchy was just right at Gameloft, porters worked under a team lead who was assigned a producer who makes the final decisions regarding bugs and features (to let a bug in the game if it is not worth fixing for example). The management overhead was not excessive at all, we only had meetings when it was really needed and I was not constantly monitored while working.

They used a few tools that I now find necessary for the success of a project or organization. The first one is their in-house bug tracking application which I used daily and helped tracking the progress of my projects. The second one was the company wiki. I will talk more about it in a future post, but this tool, as hard as it may be to get it started (because it needs contributors) proved itself very useful for documentation.

The last major skill I learned (I should say perfected) was versioning (or source control). They used a quite standard branches-tags-trunk process (well more of a tags-trunk process in practice) which I was not familiar with before working there. This is an important skill that should be taught in schools. The only thing I remember from University regarding source control was using one trunk where everyone commits its work (they did suggest not to commit breaking changes though).

Working at Gameloft might not have been the most thrilling experience and I did not learn a lot from a technological point of view, but the knowledge I got about everything orbiting around the coding tasks was immense.

Life in a startup

Posted on September 20th, 2008 in Work Experience | No Comments »

For a little more than a year, I’ve been working at a startup called Hint Innovation. I was their first employee and it has been a tremendous experience that I hope will continue for a long time. The two co-founders are actual computer/software engineers too and have a lot of expertise in the business and financials domains.

Since we were only 3 developers when we started, I had a lot of responsibilities and it didn’t take long before I had my own projects. I could take part of the design portion (probably my favorite one) of the software even though I was just fresh out of the University. I did not expect to have an impact on the design and architecture of the applications so quickly after graduating. Even though I knew I could bring something good, I just thought the corporate world would have me wait for my turn. The startup life is really something to look for if you want to do more than just programming.

Together, we’ve been working on developing software products using the latest trend in software engineering, domain-driven design. Before working there I had never heard anything about the concept, but I can assure you that this is what OO programming was created for. The main aspect of domain-driven design is that it helps manage complexity. The applications we build are very complex, yet it’s very easy to understand how it works underneath and fixing bugs or adding features is a breeze.

At the beginning of this summer (2008), I had the chance to experience managing and leading for a small project. We had an intern for the summer (who just renewed for fall) and, because of some time constraints, I was the one who would teach him and give him assignments. This was an amazing experience, the (internal) project turned out really good and we will be using and improving it for a long time.

Finally, I just want to say how glad I am to have decided to take the risk with the company (there’s always a risk when going for a small 2 people company), I have learned so much in that year and I can truly say that I love my job.