How it all started
In this blog post, I will take you through my journey to a company that I was chasing for 5 years since I was an undergrad. It all started in my first year of studies in Computer Science in Greece. I was passionate about software when I was doing my BSc so from day one I was searching for people that share the same passion. I found out that there was a thing called meetup.com where people were gathering to share ideas, tools, technologies around the software. I was participating almost in every event after my classes. One of the downsides of living In Greece as a software developer is that the community is not that big and hence we didn't have many conferences specific to software. However one of the biggest ones was VoxxedDays Thessaloniki. When I learnt about this conference I immediately applied for a volunteer so I could get the chance to watch the sessions and meet new people (since I could not afford a ticket as a student). Luckily I knew Patroklos (from the meetups I mentioned previously) who is the organiser of this conference and he kindly accepted my request. I was so hyped that I would participate in my first conference and meet great people from the software community. That's when I heard for the first time the name "Sandro Mancuso" (one of the Co-Founders of Codurance). Sandro was doing the closing keynote on that conference and a workshop one day before the main event regarding Test-Driven Development. Patroklos was so kind that he registered me in the workshop as well, and that's when it all started.
Going to the workshop as a first-year undergrad was weird as the rest of the people were far more experienced than me and had already worked for many years in the software industry. In the workshop, we were introduced to concepts like TDD, pair programming, feedback loops, and refactoring, (some of the core practices we are using now in Codurance day-to-day with our clients) which of course I never heard before. Back then I did not even know what tests were. We switched pairs regularly after each kata and we were discussing at the end of each kata our solutions, difficulties and ideas. I remember I was having a hard time following, but at the same time I was feeling so grateful to be exposed to this kind of knowledge that young.
When the workshop ended I immediately went home and searched for articles and videos regarding TDD. The next day, Sandro gave a talk called "The Long Road", which changed my mindset completely. At that day I knew I had to work for Codurance because a lot of the things Sandro presented were appealing to me. On that talk, I learned what "Software Craftsmanship" is, and at that moment I decided to be a software craftsperson. The main point of the talk was having a “career” and having a “job” is two different things. I was really influenced by that talk. Every argument that Sandro made was appealing to me. so from that day, I took my career more seriously. For two years I was following up on Codurance, their people, their clients, their youtube videos and I watched all Sandro`s talks. I also checked out their website in the "Careers" section and started learning every unknown software concepts like macro design, DDD, SPA, N tier layers, Hexagonal Architecture etc. The goal was to learn everything those people knew and the practices they use with their clients so that I could join them. Throughout my research on these new concepts, I learnt about Uncle Bob, Kent Beck, Martin Fowler, Grady Booch, Jim Coplien and all the well-known people in our industry. Learning about these people, reading their books, and articles was a huge boost for me as a student since college did not provide me with any of this information.
Codurance has a position called "Craftspeople-in-training" which is a position where they teach newcomers for 4 months all the principles and practices that you need to be a software craftsman. To be a "Craftsperson-in-training" around 3 years of work experience was recommended. In my third year of studies, I sent them an email on the “Contact us” page asking if they supported an internship position since I had 0 years of experience. Jim Bourke (who I met 3 years ago in person) came back to me saying that they did not support an internship position and he advised me to check out the “Craftspeople-in-training” position. That year Sandro gave an opening keynote on the same Conference in Greece which of course I was a volunteer again. I was waiting for him to finish his presentation so I could talk to him. I didn’t have anything specific to say to him, I just wanted to express my interest to become a software craftsman and work for Codurance. I managed to talk to him and told him about the email I sent to his company for the internship position. To be honest, I was so stressed at that moment that I don't even remember his response.
Flying to London
After graduation, I worked for two years in the biggest companies in Greece. I was still practising and studying practices and principles relevant to Codurance. I even gave talks about Clean Code and presented myself as "an aspiring software-craftsman". One day I found out that Codurance is organizing a conference called the London Software Craftsmanship Conference (LSCC), so I applied for a volunteer position. I thought I could get the chance to get closer to Codurance people and build some connections. I got accepted by the organizers and immediately booked my tickets to London. I couldn’t believe that I would be part of that conference and visit London for the first time. I met a lot of craftspeople working for Codurance and I was so happy that I had the opportunity to talk to them. The conference itself was amazing. While I was helping with the conference I tried to make clear to every craftsperson how excited I was to be there and how much I wanted to work for Codurance. Anne-Marie (Head of People in Codurance) seemed to hear that I was looking to join Codurance and came to talk to me. She introduced herself and we met each other. We had a quite good discussion talking about my background, the conference, Codurance and other stuff I cannot recall. However, I do remember that I was really stressed while we were chatting because I knew that it was my chance to give a good first impression. We changed Messenger numbers and after the conference, she was kind enough to invite me to a pub with Sandro, Mash, Steve, David, Daniel, Christina, and Chris. Before I went to the pub I was so nervous but excited at the same time for the invitation as I was admiring those people. I still remember my face when I left the pub and went home, I was so excited that I cannot even describe it. I knew that after our night together I had already built a good connection with Codurance and I was more close to achieving my goal.
After I came back from the conference Anne-Marie sent me a message asking if I was interested in an interview. I could not believe it. I definitely wasn't ready for this. We scheduled the first interview two weeks later. During those two weeks, I put a lot of effort to recap everything I learnt all those years and prepare for the interview. Codurance has an awesome recruitment process which I really enjoyed. They do their best to make the candidate feel comfortable, and they definitely succeed. They always interview people in pairs and it makes it more like a discussion than a question-answer interview. The pair-programming session is a two hours hands-on interview where you solve a kata using TDD, design patterns and refactoring techniques. At this point, I had already solved many different katas, such as the Bank-Kata, the Bowling-Kata and many more. I was asked to solve the Mars Rover Kata which I haven't done before. It was tough but I managed to provide a solution. When the interview finished I was hard with myself as I thought I could have done better. I was not sure of the result and I was really worried that I might have failed. Anne-Marie called me later that week and announced to me that the feedback was pretty good and I was able to move on to the final interview.
The Final Interview
We scheduled the final interview, a two-hours session where we discussed architecture, agile, macro-design, OO principles and many more. Like I said previously, the interviews in Codurance don’t feel like question-answer interviews, it's more like sharing ideas, and discussing and this one was not an exception. I was well prepared for the final interview as I was studying a lot of practices Codurance was using. Although, I cannot deny the stress I had before and during the interview.
After the end of the interview, Steve gave me his feedback that I passed. He actually considered offering me a software-craftsperson position, but I was lacking some knowledge in certain areas like DDD. I was stunned, I was full of emotions that I could not express myself. I still remember Steve's words: "Congratulations man, you deserve it, you can relax now. Go grab a beer and celebrate!", and that's what I did! After 5 years of practising and studying, my dream came true. I instantly replied to the email offer and booked a one-way ticket for London two months later. I am now working for Codurance for almost a year, and I must say that the culture, the people and the organisation as a whole are as expected!
The journey was hard, it required a lot of studying, practising and commitment but it was totally worth it. I learned a lot throughout that journey, and not all of them are tech specific. Having that goal in the last 5 years exposed me to great people and knowledge that I wouldn't otherwise be exposed to. That's probably one of my biggest successes in my life until now.