I moved to Rotterdam at the beginning of February 2011 to start a two month internship as a software developer at Lunatech.
When you get to the Lunatech office (about twenty minutes distance form Rotterdam Central station), you will be struck by how much the site looks like a private home. It is located in a two storey building bordering a very quiet street sidewalk along a small canal.
Inside, the walls are decorated with artwork from local artists and it is very quiet. It is not the quiet of abandon, though, but the quiet of concentration. Lunatech is a den of first rate international software developers and product creators; if you join them, you will work a lot and you will learn a lot.
I was given a twin-monitor workstation in a spacious room on the first floor that I shared with three other team members and put to work on a real project, a very interesting Java web application that I cannot divulge too much of at the present. Suffice it to say, Lunatech is building it by trying to leverage the web architecture to the most and doing away with a lot of the trappings of classical Java enterprise applications.
My supervisors, Sietse de Kaper and Erik Bakker, sat in the same room with me, and were never shy to give advice when I needed it, contributing a sizeable amount of time to explain architecture choices and the why and how of the code. In any development work, especially at the junior level, a lot hangs on picking up the house style and getting a feel for the style of your team mates. Every developer at Lunatech is extremely above average, so you will improve your technique a lot just by going through this process.
Even though someone was always there if I needed advice, after the first days I was generally trusted to be able to work autonomously. That how things work at Lunatech: people are trusted to know what they are doing. This means you get lots of room, even as an intern, to take your own initiative, and that you must not shy away from responsibility. In fact, most developers interact with the clients directly and contribute to the development road map. You will learn the need to estimate and control the time spent on any given task. It is your job to deliver features in time.
At Lunatech, I experienced both a high level of software craftmanship and considerable commercial savviness; the combination was definitely illuminating. This does not imply that the homely first impression is contradicted. On the contrary, diligence and concentration go hand in hand with an easygoing style with scents of a well bred country household.
I want to thank everybody who made this experience possible, and in special manner Sietse de Kaper and Erik Bakker, who provided patiently provided me with advice throughout the period.