Software Developer in Practice

Introduction

As of December, I have passed the 6-month mark in my placement; as such I thought it would be a good time to make an update as to how my placement is going so far and what I have been up to in those 6 months and the following months up to the current date.

My First Client Project

As mentioned in my previous post, upon joining Apexon (formerly Infostretch) in July, I was informed that due to a high demand for testers, I would be assigned my first client project working as a tester for an upcoming bank within the United States of America.

Within this role, I was tasked with performing black box testing on the majority of the systems which the bank will use to operate, from their customer facing system to their various backend systems. This was conducted by manually testing the various systems through executing test cases, testing the current systems behaviour to what the intended system behaviours should be. Alongside this, I had daily meetings with the client, discussing any defects we may have found within the system, and any further actions to take when required.

I was on the client project from July to when the project came to an end in December. While my goals and aspirations have always revolved around the implementation of code, working as a tester was an eye-opening experience and it provided me with various transferable skills which I will incorporate into my coding practices. More notably, over the course of being a tester, I had the opportunity to attend numerous meetings everyday with the client, articulating any bugs we found with the system and providing clear reproducible steps to recreate the bug.

Overall, while it is true that the first 6 months of my placement did not go as intended, the experience has been very informative, allowing me to develop crucial skills and gain experience, which I hope to carry on towards my software developer career.

Disclaimer: due to the client being an up-and-coming bank, many of the details have been omitted for security reasons.

Tech Track

With the end of the client project, it was time to properly start my software developer journey within the company. This kicked off through an in-house training scheme called ‘Tech Track’, which consists of an 8-week course with 3 projects to complete and many principles/standards to learn and adhere to throughout the scheme.

Note: the entirety of the Tech Track was done so using the programming language C#.

In the first week of Tech Track, I was assigned 1 of the projects to complete, following Test Driven Development (TDD) and SOLID principles. While the project was relatively easy, I found TDD and SOLID hard. This was my first experience utilising either, and I found myself writing the test cases first to then implement the code and discover that I indeed wrote the test cases wrong due to a poor understanding of what was required. However, as I progressed through the project, I started to become more confident in writing unit tests and I was able to successfully utilise TDD without the need to rewrite tests after implementing the code.

In the following week, I was assigned a much more challenging project where I was again tasked with implementing using TDD and SOLID principles. While this project was certainly more technically challenging, I found myself more confident in the project due to a better understanding of how to effectively use TDD and SOLID. In the end, I completed the project in two days, and I was very happy with the progress I was making.

CoderPad College

After completing both projects within Tech Track, it was time to start the new training program to do alongside Tech Track, called CoderPad College. While Tech Track is used to teach coding practices, CoderPad College is used to teach problem solving skills through coding interview like questions each week. Each week I was assigned a theme and given 5 coding questions to complete which follow a certain theme, such as Data Structures, Mathematics, Traversal and Sorting, etc.

During the first couple weeks, my confidence was at rock bottom. C# was still a relatively new language to me with only 1 month’s experience at the time. I found myself continually getting frustrated at my inability to solve the questions given to me. It was only until week 3 when I started to grasp LINQ statements and the commonly used built in functions was when I started to really enjoy solving the questions.

Where I Am Currently At

This leads nicely onto where I am currently at. As of writing this post, I am currently working on the third and final project for Tech Track, which involves working as part of a team for the first time, implementing the backend of an existing frontend codebase. The project is scheduled to last 3 weeks and we are currently on our last week, where we are to present our code to the senior developer who is running the Tech Track.

Alongside this, I am currently on week 5/6 of CoderPad College, where at the end of the program, I am to complete an in-house coding interview with a senior developer to showcase what I have learnt.

As I am currently participating in these 2 training programs, I will wait to share my thoughts and experiences on the final Tech Track project and CoderPad College final interview till I have fully completed both.

Summary

In summary, I have now completed 8 months of my placement, and time does indeed fly. I have had an amazing experience so far and I have learnt countless fundamental skills which has made me become a more confident software developer. I am excited to see where the next 4 months take me on my journey to becoming the best software developer I can be.

Thank you for taking the time to read this.

- Nathan