Everything I Learned Working as a Software Engineer at Tesco

Apr 21, 2022
hackajob Staff

Part of a Transforming Tech with Tesco series.

With billions of transactions each year, Tesco is one of the biggest tech retailers in the UK, as well as globally. And with so many of their engineers loving what they do, we wanted to take an in-depth look into what it's actually like working as part of their engineering team, and most importantly, how you could join too. Let's get into it with Vladimir.

Hi Vladimir, tell us more about yourself/your journey into tech and your current role at Tesco.

Hi, I'm Vladimir Badiuc and I’m from Moldova. Like most developers, I've always been really interested in computers ever since I was a child. For me, it started with creating websites to inspire my friends and I guess that’s what technology is all about - inspiration. I came across Tesco entirely by chance. At a previous company, I’d go to lunch with friends and bump into engineers from Tesco and ask how their tech was developing, what the culture was like etc. Honestly, the culture that came from their engineers was so positive and genuine that it drew me to want to try it for myself.

After working at Tesco for 4 years - they've been on a huge transformation journey, and they're not slowing down

When I first joined Tesco, one of the most interesting parts of Identity was written in .NET and the deployment was manual, meaning you had to do the blocker, create the artefact, take the specs out of the service, stop the service, replace the artefacts, run the tests – which were built separately – start the service, resume the steps, and even more. It took almost a whole day to deploy and ended up with many incidents. The challenge was to automate this and move toward continuous deployment. We managed to deploy it in one hour. The difference is that at first we were deploying once or twice a month, and now it was once or twice a week.

As a result of the authentication process, users get an access token which they use to access all kinds of APIs to action something or receive info. In the beginning, it was all by access tokens, and downstream services had to validate it. At some point as our customer base grew, we had huge traffic and wanted to streamline this. So we found a way to validate the services offline which gave us extra flexibility. And this was less resource consuming for us. We moved to something called JWTs (JSON Web Tokens). It also gave us more opportunities and surface to scale, meaning we could deliver a better service to our customers.

You will be challenged with new technologies, but you will also learn from them.

Initially, when I joined Tesco I joined as a .NET developer as I was brought on to help with the .NET Codebase. That was my realm of expertise but later on, when we started to build more scalable solutions using Java, for example, I embraced the VertX, which was an event-driven single-threaded, embedded framework that has more flexibility to scale our microservices. So moving to Java was actually an amazing journey.

There's also using more microservices which has two major challenges when moving to it: deployment of the major services and the communication between the microservices. For deployment, we migrated to Kubernetes which basically empowered us to a smoother deployment and more scalability. For communication, we moved to Kafka. What I really appreciate is that the teams at Tesco are very flexible. You can choose what is the best for that specific project. We don’t have a very strict tech stack that you should only be using this or that technology; you have the autonomy to choose what fits your specific use cases.

Considering just how big of a retailer Tesco is, the process of moving services to the cloud was a learning curve - in a good way

Going from X to 10X to 100X is difficult and resources play a huge part in how we moved. We also want to be sustainable. You can’t tell your customers ‘oh please don’t use our services, we’re moving to the cloud’ - if anything it’s the opposite. You want to create a smooth process to move without disrupting usual business. The initial challenge was how to move from on-premise to cloud smoothly; at one point we only allowed 1% of our customer’s journey to go to the cloud and we then had to increase it, as well as our confidence in this. When we migrated some of our services to the cloud we also realised we should be multi-cloud too, it was a good learning curve for us.

When it comes to storing data, the amount of customers is a help, not a hindrance.

An interesting challenge that is faced by companies with tens of billions of customers is data storage and Tesco is one of those. Some of the journeys and scenarios require the most up-to-date data to be available at any time and very quickly. So consistency, availability and performance at the same time are hard to provide a great solution for this. Usually, there are Consistency, Availability and Tolerance. The challenge is to pick two that fit the best. For most of our journey, Cassandra was a good fit for most of our challenges.

Soft skills are just as important as technical for progression

Another project I worked on was Tesco Clubcard Pay Plus and that was a collaboration between Tesco Stores and Tesco Bank. Whilst by name we are part of the same company, they are separate organisations so one of the challenges was building a very good relationship with the team that we hadn’t met before and this was during the pandemic, so cameras were off, and you weren't sure of their emotions or reactions. For me, I wanted to really improve this so I asked for some leadership training from my line manager. I wanted to build a great relationship between us and the Bank side. I’ve been mentored on how to do this in an efficient and effective way and in the end, we built a really friendly environment where we could all thrive, grow together and achieve the goal. It went well that we had other teams coming up to us, asking us how we did it.

I just wanted to mention that when you're a Senior Software Developer; hard skills are not enough at some point. At some point, you need to develop your soft skills like collaboration, resilience and responsiveness. For me, I’ve worked on my communication skills - it’s important when working on bigger teams across different levels. Whether technical or non-technical. Another thing Tesco taught me was empathy. I thought it was something you’re born with, but I’ve seen it’s an important skill to develop especially when moving to a managerial role so that the whole team can thrive and that well-being, as well as great business practices, go hand in hand.

What advice would you give to those who are thinking to join Tesco?

My first advice is to be more curious about everything - learn from all the things around you. Be curious about technology, what other companies are doing, in how you can improve. As a first step, why not just try to have the phone screening with a recruiter? Have a discussion with a recruitment person from Tesco and see how we handle some of the problems.

They helped me with tips and advice on how to do things better and really supported me as an applicant. The interview went well and I was a bit stressed as it was an interview but the good news was that on my way home they gave me the role, so it was quite an amazing recruitment experience. Four years on I’m now a Software Development Manager at Tesco. I worked in Identity and we’re responsible for all types of authentication and identification for users. We are growing so much, and can't wait to have more talented developers join.

If you're interested in a role with Tesco, then head on over to our platform where you can be matched with them in as little as 3 weeks. It takes just 5 minutes to sign up.