Seeing as how my time in Cape Town has expired (for now at least), I thought now would be a good time to write about my experiences as a Software Developer in Cape Town. With a good cup of coffee, and free from any distractions, this is what I have to say. 

During the June/July university break, I had the privilege of interning as a Software Engineer at a well-known IT company in Cape Town, South Africa. I was thrilled to hear I had been accepted for this opportunity – I thought I tanked the interview because the questions asked were tough, interesting questions.

The Interview

I thought the interview would consist of a 3-person panel, where questions asked would be tough. To my surprise, the interview felt more like a chit-chat session – all that was missing was a cup of coffee and some rusks. I was asked tough technical questions – the questions asked were mostly on things I had easily overlooked. In any case, I was able to answer the questions, with the Interviewer adding on to my answers. This led me to believe the interview was not really about getting everything right, it was to see what kind of character you are and if it sits well with the interviewer. When the interviewer said “I am sure you will get to work for us”, I thought he was joking; I thought maybe he says this to everyone so they feel a little better about the interview. Turns out he was not joking…

When that e-mail came through, I called my parents and informed them of the great news – they were pleased. My folks said Cape Town can get really cold, so they came down the following weekend and bought me some warm clothes and a blanket. After calling my parents, I called a friend, who was very pleased with the news. He mentioned I should consider studying part-time and working at the same. After the call with my parents and friend, I felt I was ready for Cape Town.

The Day Arrives

Before heading off to Cape Town, I had a week free, which I spent at home. I wanted to pass home before going – just so that I can say I have been home, I have seen my parents, bother and sisters.

The first part of the journey (let us call it the “pre-journey”) was travelling from East London to Port Elizabeth. There was no flight available on that Saturday, so we had to drive. My dad was away from town, so my mom had to drive me to the Port Elizabeth airport. We left East London at about 6:00 AM… after hours of driving and drinking coffee, we got to Port Elizabeth at about 9:00 AM. Before heading for the airport, we decided we would have breakfast at the Mugg n Bean at the Greenacres Shopping Centre.

The flight was scheduled to leave at 12:40, so we had to wrap up business at Mugg and Bean quickly. We left the shopping mall and drove over to the airport. After checking-in with SAA, it was time to go to the waiting area. I said my bye’s to my mom (I do not know why it felt so sad). As I sat at the waiting area, my classmates who were also selected for internship started coming in, one by one – the wait started getting less dreadful. It was 12PM, and it was time to board the plane.

After a 1 hour 20 minute bumpy flight, we arrived at the Cape Town airport. From the airport, we were taken to a residence, where we were going to stay for the next 3 weeks. I loved the beds so much; completely different to the rock hard beds I sleep on in Port Elizabeth (we are fighting the landlord for better beds). The breakfast was okay; I felt it could have been better. Besides the cold eggs, and the cold option being warmer than the hot option, it was okay. I made some memories in Cape Town. Let’s just say, what happens in Cape Town, stays in Cape Town 🙂

The First Day at Work

The first day wasn’t packed with tasks that need to be done – it was mostly a formal welcome to the company. We were briefed about the company structure, the products the company is working on, source control tools used, practices and standards used, and more. We were also taken to the company’s data center. It was not as cold as I thought it would have been. I could have taken pictures but I was afraid I might break some rule. Just before the briefing ended, we told which development teams we have been allocated to. At about 1pm or so, it was time for me to start the job.

I was so awkward on the first two days of the job! I honestly believe the way I presented myself to my team was awkward (throw in the awkward turtle here). I was as quiet as a church mouse on my first…. actually, scratch that – the church mouse was louder than me on my first day. I remember simple things like logging in to my computer and installing the needed software was not so simple. I stressed, thinking “oh goodness, the big guys in here must be wondering how is it that I am tripping on easy things”. In any case, that day was spent installing the needed software and getting used to the environment.

I miss my work PC – firing her up took less than 20 seconds! She ate Visual Studio 2015 and Microsoft SQL Server 2014 Management Studio for breakfast! My laptop takes a good 2 – 3 minutes opening these. That Full HD screen made split-screen so much better!

Executing The Job

As time passed, I was loosening up more and more, I got so much louder than the church mouse, he suddenly had no place in the work environment (sorry church mouse, your vacation got cancelled). I was asking questions now and then, fighting through my tasks, throwing or adding onto office jokes now and then (I am not eating Marie biscuits anymore thanks to the jokes).

At about 9AM each morning, we would have a scrum meeting. People on the current project team, as well as people on other project teams would take part in this meeting. Each member in the current project team stands up provides an update to task(s) they did yesterday, and an update on tasks they plan on tackling today. You could take up more tasks if you wanted to. The scrum meetings weren’t so much of train smash to me… I guess I just felt a little weird about them because my tasks looked like a drop in the ocean compared to tasks members of the project team took (Hopefully I will reach that point where my programming skills allow me to take massive tasks… #WishfulThinking). Other events that happened were planning sessions and a showcase session. In planning, a “breakdown” of tasks that need to be done are displayed on the projector. Members of the project team would thoroughly discuss each task and give a rating for each task. The ratings were a measure of intensity for each task. When the votes came through, mine were a little inflated :). At about 2pm, on Friday, my project team had a showcase session, where you will show the project team what you have worked on. Here, other members in the team can give suggestions, and tips on your work. I presented the admin app I was working on, as well as some CSS I tweaked.

I got to use tools like CCBuild (I had a build that broke… yay!), FinalBuilder, and the project leader showed me Fiddler and ILSpy. As far as tasks are concerned, most of them were around extending system functionality – I had to create the needed tables, updated the script that recreates all the needed tables, create the needed stored procedures (these stored procedures made my second year stored procedures look like a litter box in creche), update the data access layer, and make user interface updates to support the extended functionality. I told myself if there is something I do not get… keep calm and ask someone on the team.

The moral of the story was clear… I still have a long way to. Is coding something I would want to do as a job? I still believe so – I just need to work on polishing up my skills around C#… (It is pretty shocking I last touched C# in June 2016). Perhaps my strategy should be that I develop my skills in Web, Mobile and Desktop. The 3rd Year software development project has really helped in growing my skills in Android app development… while that happened, my web skills sat at the basic level… will need to panel-beat that this holiday 🙂

This was the funniest day in the office! I even added fuel to this bandwagon...
This was the funniest day in the office! I even added fuel to this bandwagon…