My first project as a full time Junior Developer

Introduction

The title of this article may be a little misleading, I had been contributing in small ways to the Pitchero codebase from mid 2019, however this was usually small changes like text changes and links to help centre articles to help in my role in support.

Throughout 2020 we had been in various stages of lockdown due to COVID-19, and some members of the team had been furloughed, I wasn't furloughed, but I was working from home. I was still working in support 90% of the time, but I was contributing to the codebase more and more, and I was learning a lot.

I had great support from members of the development enabling me to learn and grow as a developer, closing out 2020 Pitchero was looking to hire a new developer to join the team, I put myself forward for the role, and I was successful. I would start full time in January 2021.

The project

The project I was given was to implement a third party facility booking system into the Pitchero platform. The system was called 'Bookteq' and it was a system that allows clubs to manage their facilities and allow members to book them.

Understanding the scope

The first task was to understand the scope of the project, I had to understand the Bookteq system and how it worked, I had time to read through their documentation and use the product directly to get a feel for how it worked. This enabled me to understand how we could implement the system into the Pitchero platform.

Database Structure

Being the first major project I had worked on, database structure was something I had never had to think about before. I consulted with a number of colleagues to help me understand how to structure the database, and I was able to create a database structure that would work for the Bookteq system.

Auth Flow

Pitchero up to this point had no way of allowing users to communicate with third party systems, so the first task was to enable users of the Pitchero platform to be able to access the Bookteq system without having to log in again. This was achieved by OAUTH, Laravel Passport was used to create an OAUTH server. Users could now authenticate using their Pitchero credentials and access the Bookteq system.

Dashboards and frontend views

The next task was to create the ability for club administrators to add a booking system to their club, this was managed by a React frontend, I had never worked with React before, so this was a steep learning curve and the vast majority of the work was completed by a colleague, I was able to learn a lot from this and understanding how we manage state, make API requests and use our internal components to create a consistent look and feel across the platform was a great learning experience.

Unexpected deployment issues

I had been working on this project for a few months by the time it came to a fully ready to deploy state, I had been A number of colleagues had helped me along the way and had tested the system with Unit tests, and functional testing via the staging environment.

The time came to deploy the new system to production, we deployed and tested the system, everything seemed to be working as expected, until we attempted to use the Pitchero Apps.

During our OAUTH implementation we had unknowingly updated a dependent package which changed out JWT token structure, this broke the Pitchero Apps, and we had to roll back the change and fix the issue.

This was a great learning experience, and I was able to learn a lot about how we manage our deployments and how we can avoid breaking changes in the future.