Today marks my last day in Gütersloh. My bags are packed, my stuff is sitting neatly packed in boxes in my apartment, waiting to be hauled into a big van. I’m sitting in my office near the Autobahn in Gütersloh, on the same floor I’ve been working for the past five years. I’m sitting here, cleaning up my stuff, waiting for my colleagues to show up for the cake my girlfriend baked for my farewell. Sitting here on my last day and waiting in my office led me to think about the whole journey that brought me here in the first place.
My journey as a software developer started mid-2008 after finishing school. I’ve always had a hand for ‘computer stuff’ and healthy interest in exploring the possibilities I had using computers, operating systems and programming languages.
My parents got their first computer when I was about five or six years old. I vividly remember how my Dad showed us kids this magical device with which you could do all kinds awesome stuff (his demonstration of Prince of Persia completely blew my mind). The following years my brother and I tinkered around with every single computer our family got. Our main goal always was to get our computer games running which often required a massive amount of messing with the operating system. Our early efforts mostly didn’t work out as expected and we ended up with a broken system and annoyed parents. But it was worth it. Both of us had fun tinkering around and the incentive of getting a computer game started was enough for us to spend hours finding out a way run it. I loved the spirit of tinkering around, even though neither of us truly understood what we were doing (we were about 8 or 9 at that time after all).
In my teenage years (I must have been around 13) I got my first personal computer. I remember spending a great amount of time in a couple of IRC channels, having a great time with several other folks I met through forums on the www. These were the days that got me hooked on programming. Inspired by my IRC mates I wanted to write my own website without having a clue how to do so. It was the time of hosting services like Beepworld and Geocities that were notorious for hosting furiously blinking, seizure-provoking websites assembled with WYSIWYG editors. But that was not what I wanted. I wanted to create a website professionally. I wanted to learn how to do this by hand. WYSIWYG editors were out of question. I figured out I had to learn HTML first. So I studied everything I could find on SELFHTML, a very popular German resource about HTML at that time (and apparently it’s still going strong). My first attempts using HTML and CSS were obviously crude and not really successful, but after a couple of weeks of intensive learning and writing, I launched my first website. Without relevant content and no concept beyond “that’s my website!” I quickly came to the conclusion, that I needed to do something more with my website. One of my IRC mates told me about PHP and that this was the way to go, if I wanted to create “real” and “dynamic” websites. I bought my first book on PHP at age 14 and with extensive coaching of the same guy in IRC I finally had my first website running using PHP and a crudely written CMS with very basic features and a MySQL database as backend. To this day I own this domain and I feel quite nostalgic about it. There’s nothing left on there, however.
I kept my curiosity and learned more and more about programming languages, especially Java and object oriented programming as well as computer graphics and web design in the following years. I voluntarily took an extra computer science course in school where we would learn object oriented programming and the Java language from scratch. During that time I did several web design tasks and consistently hacked away on my personal homepage.
After finishing school in 2008 I stumbled upon a job ad from Bertelsmann in Gütersloh. They were looking for people to work at Bertelsmann, do a training as IT specialist (Fachinformatiker) and make a Bachelor’s degree in Business Information Systems (Wirtschaftsinformatik which is a quite popular German major combining Computer Science, Information Systems and Economics, to name a few). The opportunity to study at university (i.e. university of applied sciences) and work on a rotating basis seemed a great idea to me, so I applied. After an assessment as you would expect from a big enterprise such as Bertelsmann I got a letter offering me a job for the Bachelor of Science program. I was overjoyed and agreed on the offer. This was an opportunity to get a solid professional foundation for all my amateurish hacking efforts the years before. I would be taught a broad spectrum of knowledge at university and have the opportunity to work on real projects with real people and real customers. How cool was that?
And so it happened. I learned tons of stuff about programming languages, databases, networks, operating systems but also project management, economics, marketing, logistics, statistics and much much more. During my time at work I would work as a software developer using the Java platform. In my department we developed Customer Relationship Management software, broadly speaking. Our customers were well-known companies from different backgrounds and every project was a great challenge for itself. In my first years as a developer I would rather work on internal Java frameworks, providing bug fixes and implementing new minor features. But I soon made progress and was glad that I could help my colleagues working on the real projects providing direct business value for our customers. It was a nice feeling. And on top of that: I would get a fair amount of salary at the end of each month, regardless of whether I was studying or working.
After finishing my Bachelor’s degree, I got a new employment contract with the department I worked at the whole time. I was no longer a corporate student but finally a regular, internal employed software developer. My tasks would remain roughly the same but the salary was no longer that of a corporate student. For my accomplishments in my Bachelor’s degree, Bertelsmann decided to give me a scholarship to finance a subsequent Master’s degree of my choice. Given this opportunity I decided not to waste my time and started looking for a Master’s degree that I could do simultaneously to my work. I found out that the University of Münster was offering a major that fit to my expectations, called Information Management (which is close to their regular Information Systems major). I enrolled and was very busy working on my Master’s degree while coping with the increasingly complex tasks and the extra responsibility at work. In the end everything worked out and I got my degree.
The last 10 months have been very exciting, to say the least. I finished my Master’s degree, wrote my Master’s thesis about Continuous Delivery and how we could use it in our department and also implemented a working prototype for a deployment pipeline. Focusing on the topic of Continuous Delivery intensively for half a year was fascinating. I’ve read Jez Humble’s and Dave Farley’s Continuous Delivery and was hooked after a few pages. I read it from cover to cover in a couple of days. It got me excited to work on a concept for using Continuous Delivery at work so that we could deliver our software more frequently and more securely. The results of my Master’s thesis got some of my colleagues interested in this topic as well and you could feel a certain momentum build up in our department.
Nevertheless, I felt that there was something lacking in my current position. I had seen quite a few projects and worked with talented people. But I had the feeling that even though there was still a lot I could learn, I had no real perspective left at Bertelsmann. Our projects were basically the same, I missed real innovation, technology-wise as well as from a business perspective (besides that, there were several other factors as well but this was my major gripe). In January 2014, at the last day of my winter vacation, I discovered that ThoughtWorks, the company that basically brought up the idea of Continuous Delivery, was looking for someone with experience in Java development and Continuous Delivery for their office in Hamburg. Being quite a northerner myself and having no roots in Gütersloh, I decided to apply for this job. I had written a fair amount of Java code and spent the past six months studying the topic of Continuous Delivery intensively after all. I got lucky. Only a few hours after sending in my application I got a call from a lady of ThoughtWorks’ HR department. They told me they were interested and we chatted nicely for about 45 minutes. I managed to pass the rest of their application process and got an offer for a position in Hamburg sometime late February. I handed in my notice of termination at Bertelsmann directly afterwards.
And here I am now. Six months after I handed in my notice my cancellation period is over and my last day at Bertelsmann has come. It was a great experience, I had the chance to learn a lot, was paid a fair salary, got the chance to work with smart and talented colleagues and got to know many nice people. Nevertheless, six years into my career I felt it was time to move on. I am excited to start at ThoughtWorks next month and I’m sure that this is the right company to offer me what I’ve missed before: Learning even more, working on exciting and diverse projects and experiencing a great work culture.
Let’s hope for the best!