17 August 2021 DTS Summer Internship at Centrica
An overview of what I learned in my time as a Centrica tech intern
Product Engineer Intern
17 August 2021 - 3 min read
Starting my internship as a product engineer, I was excited but also curious as to how it would be since it was fully virtual. Although this was a new experience, it did not limit my learning in any way. I learnt to use new services such as AWS, CloudFront, API Gateway, Lambda and DynamoDB. As well as this, I took on various roles including product owner, developer and tester as part of an agile development cycle.
One of the first things I did on my placement was a prioritization session with my team. We went over a list of proposed features, giving them effort and value scores. This exercise allowed me to discuss these topics with my colleagues and conclude what features were achievable and have a useful purpose. My main takeaway was the importance of prioritizing features as a software engineer to ensure that what you are working on is a solution to an existing issue and not something to solve a problem which doesn’t exist. The feature I focused on implementing was a like button which appears on each blog post along with the number of likes and this can be seen in action at the end of the blog post!
Implementing the like button
To start working on creating the like button, I first had to familiarise myself with Jekyll and AWS. I implemented a DynamoDB which I used to store the likes on each blog post. With AWS, it is extremely important to understand how the different services offered can be used together. In my case, I wrote create and get handlers for my Lambda functions which are responsible for adding and retrieving likes from the database. The get function also allows there to be an up-to-date count of likes on each blog post. To get these Lambda functions to work with the button on the user interface, I used ‘fetch’. This allowed me to access the API and its methods. An important requirement to remember was to make sure the button can’t be spammed. I also spent a bit of time researching differed designs of like buttons before finalising a design for my own. I think it is important to carry out research such as this as it allows you to see if there is anything you like but might have missed which can improve the experience for the user.
Carrying out a development process from start to finish has been extremely insightful and has made me think about all the different stages that go into it. It really is a different experience carrying out a project in the workplace. Overall, everything I have done during my placement has broadened my knowledge on both things I did and didn’t know before joining.
Working at Centrica
Centrica prides itself on its values, with one of them being collaboration. I can say first-hand that the company honestly does uphold this and all their other values. One of the highlights of my internship was getting to work with some brilliant people within the department. I collaborated with senior engineers as well as professionals in testing at various stages in my placement. This allowed me to expand my knowledge by learning from colleagues with more experience as well as experiencing teamwork in an actual workplace.
I am extremely happy that by the end of my placement I created a full stack feature to production. Using services that were unfamiliar to me was a challenge at first, but I was well supported by my colleagues. It is also very important to remember never to give up and that even if something seems hard at the time, to keep trying to learn as much as you can about it.
In my time here, I have also been able to experience the work culture at Centrica and it really is a great place to work. Even though the current situation means we are all working from home, I was able to meet up with other members of the department at a climbing wall where we got to work and socialise.
I am grateful that I had the opportunity to do this internship as I have learnt so much more than I was expecting to. For anyone wanting experience in software engineering, I cannot recommend Centrica and the Digital Technology Solutions department enough. They were truly invaluable in making my experience here a great one!