Wow can’t believe it has been a year already! It has really flown past, and in this time I have learnt and levelled up a lot as an engineer. I thought I would reflect on my time here and what I have accomplished.
When I first joined I kept wondering if I’d be able to know what I need to know and learn fast enough to provide value to the team? It took me a good 3 months to ease into the codebase, know where to look and who to ask for more information depending on what I’m working on.
To give a bit of background, I am in the ‘A La Cart’ team for LEGO.com working on making our checkout process seamless for customers.
Here are my major accomplishments:
Picking up tickets I knew nothing about
This was scary at first as for the first 3 months I only picked up what I had confidence in. I then came to the realisation that I needed to challenge myself in order to grow and learn more about the codebase. So one day I just decided I will pick whatever it is first on the JIRA board and have come a long way since. I am now confident in picking up tickets whether it is easy or difficult.
Rewrite of the sales tax service
This took about 2–3 months of work as this was my first time jumping into the backend to write a serverless service from scratch. It was also the time in which we were changing the way we were deploying our services so that each person could deploy the service to their own staging environment providing a nicer way to test the service.
Rewriting the first ever serverless service in our backend which went to production was nerve-wracking. The pressure to make it better and efficient made it more motivating as well as challenging.
First time being an on-call engineer for Black Friday and deploying a hot fix
Black Friday is a yearly important event for most e-commerce businesses and the LEGO Group was not an exception! I decided to join the on-call group to experience what it is like when we have a heavy load on the website. It was actually fun coming into the office for 5am and seeing the traffic increase in the USA when it hit midnight on Black Friday. It was an intense day but I learned a lot from this. The next day we had a few issues which were interesting to discuss in terms of what would be the best solution to get it out to the customers at that moment. Later in the evening I also made a code change to fix another issue we had. It was great to have been able to go through the process of making the change, QA-ing it and releasing it to prod all with the help of other on-call engineers including infrastructure and QA.
Getting involved in post-mortems
As I have been involved in recent incidents, I started to get involved in writing post-mortems and running some meetings for these so we can get feedback on how to prevent these issues from happening again.
Added Flow and ESlint to precommit hook and CI for backend code
We had Flow and ESlint for our frontend code but not the backend. As part of technical debt I decided that we need to add this in to identify errors early on — specifically during commit so that we don’t have to wait for CI to run before we see the errors. I had to make sure that Flow and ESlint only ran for the code that was changed and not for the whole codebase otherwise there would be a lot of errors to fix, stopping the developer from progressing with their work. The idea to only run this on code changes was so that we can progressively fix the errors.
Worked on internal asset publisher saving the LEGO Group £millions
The LEGO Group was moving away from our old CMS system and the contract was ending soon so we had been given work to create an internet asset publisher instead. There was a bit of logic involved where we had to make sure the assets were uploaded in the correct order and automatically publish these to a correct content type entry. I worked on this with two of my colleagues and we managed to finish the bulk of the work ahead of schedule.
Fixing a bug which was preventing customers from checking out
We had an issue where some orders got stuck and were not submitted to our order fulfilment system. This was a challenging problem but I decided to take this on in order to learn more about the codebase. After a thorough investigation and testing I found the root cause and it took 3 PRs both backend and frontend and a lot of thorough QA-ing to fix this. It felt rewarding that I was able to provide this value to our customers.
To summarise, this has been a very successful year for me as an engineer. I feel that I have grown and learned a lot alongside my amazing team. Now I am looking forward to working with Amazon EventBridge and StepFunctions in my next assignment.
If you have found this helpful please hit that 👏 button and share it on social media :)